第一篇:Java个人总结参考
1、Java中取消指针运算防止了内存泄露的可能性。Java中的引用其实就是指针。JAVA语言不支持C++友元方法或友类。
2、编写完java源代码后,首先将其编译为一种中间状态字的字节码,然后Java虚拟机上的解释器来解释执行,“一次编程,到处运行”,Java是文本文件,编辑代码。
3、Window系统对于DOS命令中字符大小写不敏感;Java编译器和解释器对大小写敏感;保存源文件时,文件名一定要和源文件中公开类的类名一致。
4、习惯上,变量名以小写字母开头,类名以大写字母开头,常量名中所有的字符均大写。
5、final常量:初始化后不再重新赋值,在类继承时不允许子类覆盖。
6、类实例化就成为对象。
7、类继承:继承父类的属性和方法(关键字extends)
定义抽象类:关键字abstract
类声明:P62
类成员:P63
8、Java接口中声明了一组抽象方法,它构成了实现该接口的不同类共同遵守的约定。在类的定义中可以用关键字implements来指定其实现的接口。
9、Java接口与类的重要区别:Java接口中不存在构建器。
10、包的作用(P105);Java中类的访问控制符(P77);操作符优先级(P38)
11、包的命名:网络域名的逆序
包的使用:关键字import
12、异常处理(P119.120.125):FileNotFoundException:代表文件未找到;SQLException:代表有关JDBC的异常;NullPointerException:表示试图引用null对象的方法或属性;IndexOutOfBoundException:表示数组越界的异常。
13、框架的默认关闭程序:f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
14、setIconImage用于设定框架的图标;setLocation用于设定框架在屏幕上的位置。
15、取得框架的内容窗格:Container contentPane=f.getContnetPane();
16、面板的默认布局管理器是FlowLayout。setBownds(x,y,w,h)设置x,y坐标以及宽和高
17、内容窗格的默认布局管理器是边框布局(BorderLayout)
18、网格布局(GridLayout)将容器划分为大小相同的网格。
19、网格袋布局(GridBagLayout)是最灵活,也是最复杂的布局管理器。20、对话框 P180
showMessageDialog:消息对话框
showInputDialog:输入对话框
showConfirmDialog:确认对话框
showOptionDialog:选项对话框
21、类File有三种常用构建器:
File(String fileName)
File(String directory ,String fileName)File(File directory ,String fileName)
22、位于java.io包中的类包含两组独立的类层次结构:一个用于读取字节,成为字节流;一个用于读写字符,称为字符流。区别在于它们处理数据的方式,字节流按字节(一个8位组)来处理。字节流(P243)字符流(P245)
23、System.in 表示系统标准输入流,指向键盘输入;System.out 表示系统标准输出流,指向屏幕输出;System.err 表示系统标准错误输出流,指向屏幕输出;
24、文件的读写工作包括三个步骤:①、打开文件输入流或输出流;②、文件读或写操作;③、关闭文件输入流或输出流;
25、定制线程类:①、继承线程类Thread;②、实现Runnable接口;
#约定俗成的命名规则#
1、类名首字母必须大写
2、方法和属性必须小写
3、由多个单词组成的类名或方法必须采用驼峰标识
如:类名:StudentAdmin 方法或属性:studentName
*Equal 匹配
*equalIgnoreCase 匹配时忽略大小写 *Indexof 包含
*getMetaDate 获取元数据 *精度转换
*面向对象三大特性:封装、继承、多态 *界面逻辑、业务逻辑、数据逻辑 *三层架构总结:
1、开发人员可以只关注整个结构中的其中某一层
2、可以很容易用新的实现来替换原有层次的实现
3、可以降低层与层之间的依赖
4、有利于标准化
5、利于各层逻辑的复用
第二篇:java培训个人总结
java培训个人总结
学习总结
java语言是一种跨平台的高级语言,无论是网络世界和桌面应用程序,还是分布式应用环境和嵌入式应用都可以看到java的身影。显然java语言依然保持着旺盛的生命力,这也使得众多的从业人员开始学习java语言。
java技术入门 使读者对java语言有个初步的了解,为后面的深入学习奠定基础;面向对象技术是需要读者认真学习和体会的,第三篇编程提高篇 详细讲述了java语言的高级主题,即读者进阶学习的必备内容;java分布式计算技术的内容,如果读者对web编程感兴趣,相信本篇可以满足您的需求。为了
说明java语言的应用,《java完全自学手册》最后一篇介绍了一个实例,通过该程序从无到有的过程使读者知道如何使用java语言编写应用程序。
刚开始头绪有点乱,尤其是看了thinking in java第四版前面后,你知道那感觉,啃啃不下去,实例每个都看的似懂非懂,一两个还行,多了就慌了,更何况他的内容也看不太懂,虽然硬着头皮往后走,但走到第三章就觉得不能再这样了。上网找,一个视频教学,孙鑫老师的那个视频,老师讲的细致,各种小细节都不放过,开始还认真的一句一句听,后来也觉得有些东西用的时候查书google就好了到没必要听讲的时候弄懂。但好在孙鑫老师讲的大致还是沿袭中国人能懂的语言,比起thinking in java来说,确实是听懂了。所以到了lession4以后,我就大量使用快进了。讲下自学心得,给准备学习的朋友理个大概框架,尤其是有一点asp一类语言基础的,就更合适了:
基础,java编写的时候,用记事本或者编译工具,把java语言写出来,然后用javac 编译写好的语言文件把它编译成 class文件,class文件就是机器最终执行的文件。前面涉及到要配置java目录、classpath目录几个工作,很多讲座要在这里花上一两堂课,我看用不着,你就记着查google百度把path和classpath设好,就ok可以开始用了。
java以class为基本单位,一个class实现一个基本功能或者模块或者接口,一个java文件里面你可以编写多个class,但一编译就会变成多个class文件,跟你分开写效果是一样的。class里面如果包含main方法,就是机器最后执行的class,java就是用class这个概念把各种功能模块化,当你把一个一个功能都写好或者系统本身就有这个功能的class的时候,你就直接调用现成的class,就不用额外再去写了,就省心。比如有个class他能把这个三个数字按照我们设定好的方式组成一个矩形,当我们下次
要用这个矩形的时候,就不用再重复写三个数字到矩形的过程,只要把三个数字交给写好的那个class让他组合成矩形,我们把矩形拿过来用就好了;比如有个class他能把每个学生各门成绩都加总,我们要做学生总分排名的时候,只需要调用这个现成class把成绩给他加总,我们不再去写成绩如和加总的过程,直接使用加总结果排名就可以了。也就是,很多功能、模块,系统有的用系统的,别人有公用的拿别人的用,自己以前有写过的用自己以前写过的,只有这三个都没有的,才需要自己动手去写,这样一排除下来,还真的就没多少需要我们自己写的了,所以才说java比较省事。
class有分属性,公开的就是写完谁都能用,还有默认的,还有保护的,还有私有的,因为class可以模块化,所以才有这个属性,有些写完谁都能用,有些写完必须要放在一个目录下才能用,有些写完就不能给外面用了。具体
适用范围用到的时候查google。
方法,class里面跟class同名的叫做构造方法,如果没有写,意思系统会隐含了一个构造方法,写了自然就没有隐含的了。方法里面就可以进行各种具体的操作,比如定义变量,比如输出结果,比如判断,比如实例化对象等等。main方法是系统找到会运行的方法,写方法就跟其他编程比如以前我用的asp差不多,形式有点不同意思差不多,特别点的就是所谓的面向对象,除了实例化对象这一点稍微理解一下,其他方法内部的编写跟asp差不太多,你比如说 dim x,这是asp,不用声明类型,到了java就是 int x;其实asp里面也可以声明类型,dim x as int;还有比如 x=x+5;asp里面就是没有那个最后的;而已,比如for循环、while这些也都差不多,还有print跟response.write也感觉差不多,就是输出字符嘛,大同小异。java里面你就理解下实例化对象;再理解下怎么把现有的class弄进来使用;其他就
跟其他编程差不多了,我以前只学过asp,不过做了十年asp算是理解比较深,原以为java输入真正编程软件应该比asp难很多,最后发现除了上面两点外,其他技术范围基本没有超出asp的技术范围只是形式格式略有不同而已。
i.o里面有输入输出需要的一些东西,他可以把外面进来的东西转换成合适的格式,也可以把我们程序内的内容以合适的格式输出,例如读取文件、写入文件,读取数据、写入数据,读取网络、写入网络,都会用到io。
网络依赖tcp/ip协议,和sockets接口,服务器端调用sockets的服务器端方法,打开监听,一旦有东西传过来他就自动开始工作了,我们用io方法获得传来的内容分析、判断,然后产生相应操作;sockets客户端也类似,只要指定了服务器ip地址和那个对应的端口号,就能链接到服务器,然后用io方法发送返回信息。
窗口部分,有相关的windows包,导入后,只需要定义窗口尺寸、位置等,按钮、文本等等也都有对应的现成的给你引用,只要一一设定好就有了,还有一些窗口固有的组件比如最小化、关闭,关联上相应的功能就可以了。
大概就学了这么多,我估计基本概念都理解了,还差一个跟数据库的交互的概念,估计也不复杂,剩下的我预计就是用别人现成源码过来修改试验,进一步体会代码了。看来java确实如外面介绍的那样,并不算复杂,还没有用jbuilder一类的软件,用了后说不定更容易。
学编程这段日子里,由无知,到心头渐渐明朗,走过很多弯路,曾因jvm机制问题驻足不前,也曾因数据结构而苦恼不已,更因提前结束的大学生活而后悔良久。只是,静下来,看代码,体会其中的思想,慢慢地,一些东西,曾经的不明白,如今也清晰起来。只要坚持,那片广袤的天地已为你留出一片天地。学编程,基
础最重要,不要贪快,一步一步,把那些知识点弄的明明白白,然后看api文档,另外网上看一些源代码,体会其中的一些编程思想,csdn论坛也是个很好的学习地方。等基础好了,就可以学一些框架了,也就是所谓的j2ee,主要用来开发web的技术。如此看来,学习java并不难,只是要一点一点,走的实实在在。工作当中,这是我对学习java的一些个人体会!
李沛
2014.7.28
第三篇:Java个人总结(仅供参考)
第一章
(1)了解J2SE、J2EE、J2ME
J2SE(Java 2 Standard Edition):标准版
主要目的是为台式机和工作站提供一个开发和运行的平台。包括标
准的Java 2 SDK、工具、运行时环境和API,用Java程序设计语
言编写、部署和运行Applet和应用程序的开发人员,是桌面开发
和低端商务应用的解决方案。
J2EE(Java 2 Enterprise Edition):企业版
主要目的是为企业计算提供一个应用服务器的运行和开发平台。
J2EE本身是一个开放的标准,任何软件厂商都可以推出自己的符
合J2EE标准的产品,通过基于标准化模块组件和一整套的相关服
务能够自动处理应用程序行为的许多细节,从而大大简化了多层企
业应用程序的构造和部署。
IBM、Oracle、BEA、HP等29家已经推出了自己的产品,其中尤
以BEA公司的WebLogic产品和IBM公司的WebSphare最为著名。
J2ME(Java 2 Micro Edition):小型版
主要是面向消费电子产品,为消费电子产品提供一个Java的运行
平台,使得Java程序能够在手机、机顶盒、PDA等产品上运行包
含高度优化的Java运行时环境,致力于电子消费产品和嵌入式设
备的解决方案。
(2)掌握Java环境变量的配置
SDK平台提供的Java编译器(javac.exe)和Java解释器(java.exe)位于
Java安装目录的bin文件夹中,为了能在任何目录中使用编译器和解释器,应在系统特性中设置Path。对于Windows2000、Windows2003、Windows XP,用鼠标右键点击“我的电脑”,弹出菜单,然后选择属性,弹出“系统特性”对话框,再单击该对话框中的高级选项,然后点击按钮“环境变量”,添加如下的系统环境变量
第二章
(1)掌握Java的输入输出:
输入:Scanner类
输出:System.out类
Scanner scanner = new Scanner(System.in);
System.out.print(“请输入分数: ”);
int score = scanner.nextInt();
NumberFormat.getNumberInstance();// 数字格式
NumberFormat.getPercentInstance();// 百分比格式
NumberFormat.getCurrencyInstance();// 货币格式,这跟系统区域有关
(2)掌握数组(静态、动态两种方法初始化数组)
静态初始化int intArray[]={1,2,3,4};String stringArray[]={“abc”, “How”, “you”};
动态初始化 简单类型的数组int intArray[];intArray = new int[5];
复合类型的数组String stringArray[ ];String stringArray = new
String[3];
stringArray[0]= new String(“How”);stringArray[1]= new1
String(“are”);
stringArray[2]= new String(“you”);
二维数组静态int intArray[ ][ ]={{1,2},{2,3},{3,4,5}};
二维动态String s[ ][ ] = new String[2][ ];s[0]= new String[2];s[1]= new String[2];
s[0][0]= new String(“Good”);s[0][1]= new String(“Luck”);
s[1][0]= new String(“to”);s[1][1]= new String(“You”);
该部分为重点内容:
会出对程序题
会出针对数组的编程题(52页)
第三章 面向对象基础(重点)
(1)理解面向对象的基本特征(问答题)
封装
封装性就是把对象的属性和服务结合成一个独立的单位,并尽可能隐蔽对象的内部细节,包含两个含义:
1把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。
2信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界〔或者说形成一道屏障,只保留有限的对外接口使之与外部发生联系。
继承
特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。例如,轮船、客轮;人、大人。一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务,这称为多继承。在Java 语言中,通常我们称一般类为父类(superclass,超类),特殊类为子类(subclass)。 多态
对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或服务在一般类及其各个特殊类中具有不同的语义。例如:“几何图形”的“绘图”方法,“椭圆”和“多边形”都是“几何图”的子类,其“绘图”方法功能不同。
(2)掌握类的定义与使用
定义类、方法、字段
掌握类的定义中的各修饰符:public、private、protected、final、abstract
等
局部变量和成员变量的不同点(问答题)
1变量定义部分所定义的变量称为类的成员变量,在方法体中定义的变量和方法的参数被称为局部变量。成员变量在整个类内都有效,局部变量只在定义它的方法内有效。成员变量在整个类内都有效,局部变量只在定义它的方法内有效。
2成员变量又分为实例成员变量(简称实例变量)和类变量(也称静态变量),如果成员变量的类型前面加上关键字static,这样的成员变量称为类变量或静态变量。
3如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,也就是说,这个成员变量在这个方法内暂时失效。
成员变量和局部变量的共同之处
1成员变量和局部变量的类型都可以是Java中的任何一种数据类型,包括基本类型:整型、浮点型、字符型;引用类型:数组类型、对象。
2成员变量和局部变量的名字都必须符合标识符规定,名字如果使用拉丁字母,首写字母小写;如果多个单词组成,从第2个单词开始的其他单词的首写字母使用大写。
理解静态变量、静态成员变量、静态方法
类变量仅在生成第一个对象时分配内存,所有实例对象共享同一个类变
量,每个实例对象对类变量的改变都会影响到其它的实例对象。类变量可通过类名直接访问,无需先生成一个实例对象,也可以通过实例对象访问类变量。
但类方法不能访问实例变量,只能访问类变量。类方法可以由类名直接调用,也可由实例对象进行调用。类方法中不能使用this或super关键字。 理解对象的生成包括对象的声明、实例化和初始化三个步骤。一般格式为:
类名 对象名 =new 类名([参数]);
理解对象变量和对象关系
理解实例变量和类变量的关系
理解方法调用中的参数传递
当方法被调用时,如果方法有参数,参数必须要实例化,即参数变量必须有具体的值。在Java中,方法的所以参数都是“传值”的,也就是说,方法中的参数变量的值是调用者指定的值的副本。例如,如果向方法的int类型参数x传递一个值,那么参数x得到的值是传递值的副本。方法如果改变参数的值,不会影响向参数“传值”的变量的值
理解this关键字
理解包和import
包是将一些类聚集在一起的一个实体,是Java语言中有效管理类的一个机制。
package tom;
在编写程序时,除了自己编写类外,还经常需要使用Java提供的许多类,这些类可能在不同的包中,使用import语句可以引入包中的类。
import java.awt.*;
第四章(继承、超类和子类)(编程———老师上课讲的课件)
(1)理解override(覆盖)overloa(重载)
方法重载是指在一个类中用同一个名字定义多个方法,每个方法的参数必须不同,或者是参数的个数不同,或者是参数类型不同。
覆盖override,是指派生类中存在重新定义的函数,其函数名、参数列、返回值类型必须同父类中的相对应被覆盖的函数严格一致,覆盖函数和 被覆盖函数只有函数体(花括号中的部分)不同,当派生类对象调用子 类中该同名函数时会自动调用子类中的覆盖版本,而不是父类中的被覆
盖函数版本,这种机制就叫做覆盖
(2)理解super关键字
(3)理解抽象类、抽象方法
Java语言中,用abstract 关键字来修饰一个类时,这个类叫做抽象类,用abstract 关键字来修饰一个方法时,这个方法叫做抽象方法
abstract class abstractClass{ …} //抽象类
abstract returnType abstractMethod([paramlist])//抽象方法
抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。
在抽象类中的成员方法可以包括一般方法和抽象方法。抽象方法就是以
abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的方法仍然是abstract的。
(4)理解接口的概念及使用
(5)理解内部类
内部类是在一个类的内部嵌套定义的类,它可以是其它类的成员,也可以在一个语句块的内部定义,还可以在表达式内部匿名定义。
(6)理解匿名内部类
匿名类是一种特殊的内部类,它是在一个表达式内部包含一个完整的类定义。当一个内部类的类声名只是在创建此类对象时用了一次,而且要产生的新类需继承于一个已有的父类或实现一个接口,才能考虑用匿名类。由于匿名类本身无名,因此它也就不存在构造方法,它需要显示地调用一个无参的父类的构造方法,并且重写父类的方法。
(7)掌握定时器类
该部分一定出编程题:围绕继承、接口
第五章
(1)掌握StringBuffer、Math类
可变字符串构造器,如频繁的修改字符串值,可以使用StringBuffer。Math类是final的,不能被继承,类中的方法和属性全部是静态,不允
许在类的部创建Math类的对象。因此,只能使用Math类的方法而不
能对其作任何更改。
第八章(重点)
(1)掌握访问文件的流程
(2)掌握字节流
FileInputStream FileOutputStream
(3)随机存取文件RandomAccessFile(191)
(4)文本流
第九章(重点)
(1)理解异常处理机制
(2)异常的分类:Error,Exception(运行时异常,非运行时异常)
(3)如何处理异常(问答)
(1)捕获异常:
当Java运行环境得到一个异常对象时,它将会沿着方法的调用栈逐层回 溯,寻找处理这一异常的代码。找到能够处理这种类型的异常的方法后,运行环境把当前异常对象交给这个方法进行处理,这一过程称为捕获
(catch)异常。这是积极的异常处理机制。如果Java运行环境找不到可 以捕获异常的方法,则运行环境将终止,相应的Java程序也将退出。
(2)声明抛弃异常:
如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明 抛弃(throws)异常。这是一种消极的异常处理机制。
(4)定义自己的异常(编程)(211)
@理解对象的生成包括对象的声明、实例化和初始化三个步骤。一般格式为:
类名 对象名 =new
类名([参数]);
第四篇:IT行业Java程序员个人总结
个人工作总结
时间一晃而过,转眼间到公司已经5个月了。这是我人生中弥足珍贵的一段经历。在这段时间里各级领导在工作上给予了我极大的帮助,在生活上给予了我极大的关心。在对公司各级领导肃然起敬的同时,也为我有机会成为公司的一份子而自豪。
在这5个月的时间里,在领导和同事们的悉心关怀和指导下,通过自身的努力,各方面均取得了一定的进步,现将我的工作情况作如下汇报。
一、通过培训学习和日常工作积累使我对公司有了一定的新的认识。
在7月份我来到了XXX公司-郑州分公司参加招聘,经过几轮面试和笔试,终于能够有幸加入了XXX这个大家庭,在我进入公司时我拿到的第一份资料就是公司介绍和新员工入职说明,当时只是觉得公司很正规,很强大。在和人事、部门领导交流后,感觉公司很亲切,很温馨。公司的理念在平时的工作以及项目开发时体现的淋漓尽致,本人对公司的理念非常认同。现在公司在XX行业起到了举足轻重的地位,今后还将更加辉煌。
二、遵守各项规章制度,认真工作,端正态度,使自己素养不断得到提高。
爱岗敬业的职业道德素质是每一项工作顺利开展并最终取得成功的保障。在这5个多月的时间里,我能遵守公司的各项规章制度,兢兢业业做好本职业工作,5个多月来从未迟到早退,用满腔热情积极、认真地完成好每一项任务,认真履行岗位职责,平时生活中团结同事、不断提升自己的团队合作精神。在这5个月的时间里让我认识到:一种积极豁达的心态、一种良好的习惯、一份计划并按时完成竟是如此重要,并最终决定一个的人成败。让我对自己的人生有了进一步的认识,渴望有所突破的我,将会在以后的工作和生活中时时提醒自己,以便自己以后的人生道路越走越精彩。
三、认真学习岗位职能,工作能力得到了一定的提高。在进入公司以来,一直参与到XXX项目的集成和开发。通过完成上述工作,使我认识到一个称职的开发人员应当具有良好的语言表达能力、扎实的技术能力、较强的逻辑处理能力、灵活的应变问题能力、有效的对外联系能力。在参与项目开发的过程中,发现很多看似简单的工作,其实里面还有很多技巧。
四、不足和需改进方面。
虽然加入公司这个大家庭已经5个多月,对开发技术掌握的还不是很深,对发现问题的处理还不是很全面。随着对公司和工作的进一步熟悉,我也希望能够在今后的工作中更加迅速的提升自己的业务能力以及技术能力,我觉得多做一些工作更能体现自己的人生价值。“业精于勤而荒于嬉”,在以后的工作中我要不断学习业务知识,通过多看、多问、多学、多练来不断的提高自己的各项业务技能。学无止境,时代的发展瞬息万变,各种学科知识日新月异。我将坚持不懈地努力学习各种知识,并用于实践。
在今后工作中,要努力做好开发人员的本职工作,注重工作态度,把自己的工作创造性做好做扎实,为项目的开发以及公司的发展贡献自己的力量。
五、工作计划
暂时做出以下几点规划:
1、要提高工作的主动性,做事干脆果断,不拖泥带水;
2、工作要注重实效、注重结果,一切工作围绕着目标的完成;
3、要提高大局观,是否能让其他人的工作更顺畅作为衡量工作的标尺;
4、把握一切机会提高专业能力,加强平时知识总结工作;
5、虚心请教比我做的优秀的其他同事,向他们学习技术或经验。其实作为一个新员工,所有的地方都是需要学习的,多听、多看、多想、多做、多沟通,向每一个员工学习他们身上的优秀工作习惯,丰富的专业技能,配合着实际工作不断的进步,不论在什么环境下,我都相信这两点:一是三人行必有我师,二是天道酬勤。
展望临近的XXX年,我会更加努力、工作上认真负责,再接再厉,更上一层楼。相信自己会完成新的任务,能迎接新的挑战。XXX 2014.12.25
第五篇:Java个人实习总结
作为就业培训,项目的好坏对培训质量的影响十分大,常常是决定性的作用。这篇文章是关于在学习JAVA软件开发时练习项目的总结,简单总结为以下几点:
1、项目一定要全新的项目,不能是以前做过的
2、项目一定要企业真实项目,不能是精简以后的,不能脱离实际应用系统
3、在开发时要和企业的开发保持一致
4、在做项目的时候不应该有参考代码
长话短说就是以上几点,如果你想要更多的了解,可以继续往后看。
一:项目的地位
因为参加就业培训的学员很多都是有一定的计算机基础,大部分都具备一定的编程基础,尤其是在校或者是刚毕业的学生,多少都有一些基础。
他们欠缺的主要是两点:
(1)不能全面系统的、深入的掌握某种技术,也就是会的挺多,但都是皮毛,不能满足就业的需要。
(2)没有任何实际的开发经验,完全是想象中学习,考试还行,一到实际开发和应用就歇菜了。
解决的方法就是通过项目练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,从而弥补这些不足,尽快达到企业的实际要求。
二:如何选择项目
项目既然那么重要,肯定不能随随便便找项目,那么究竟如何来选择呢?根据Java的研究和实践经验总结,选择项目的时候要注意以下方面:
1:项目不能太大,也不能太小
这个要根据项目练习的阶段,练习的时间,练习的目标来判断。不能太大,太大了做不完,也不能太小,太小了没有意义,达不到练习的目的。
2:项目不能脱离实际应用系统
项 目应该是实际的系统,或者是实际系统的简化和抽象,不能够是没有实战意义的教学性或者是纯练习性的项目。因为培训的时间有限,必须让学员尽快地融入到实际 项目的开发当中去。任何人接受和掌握一个东西都需要时间去适应,需要重复几次才能够真正掌握,所以每个项目都必须跟实际应用挂钩。
3:项目应能覆盖所学的主要知识点
学以致用,学完的知识点需要到应用中使用,才能够真正理解和掌握,再说了,软件开发是一个动手能力要求很高的行业,什么算会了,那就是能够做出来,写出代码来,把问题解决了,你就算会了。
4:最后综合项目一定要是实际应用系统
学 员经过这个项目的练习,就要走上实际的工作岗位了,如果这个系统还达不到实际应用系统的标准,学员练习过后也还是达不到企业实际的需要,那么这个培训应该 说质量就不高了。理想的状况是这个项目就是实际项目,到时候学员就业到另外一个公司,不过是换个地方干活而已,完全没有技能上的问题。
三:Java怎么选择项目
这个不是靠想象,而是根据实际的情况一步一步分析出来的(呵呵要卖弄一下:这也算是逻辑思维),当然这里只是讨论方法,不涉及具体的项目案例。
我们可以采用倒推的方式来分析:
(1)最终的项目一定是真实的项目,也就是要把学员训练到能够独立开发实际应用,通常我们还不能选最简单的项目,因为学员的吸收还要有一个折扣,所以最终的项目应该选实际项目中中等难度的项目(2)最终项目定下来过后,开始分解这个项目,看看为了达到完成这个项目需要哪些技术和知识点,以及每部分知识点的深度,然后定出每个分阶段的任务
(3)然后开始选择分阶段的项目,分阶段的项目应该比刚才分析出来的分阶段任务稍稍复杂点,这样才能达到训练的目标。定下分阶段项目后,同样去分解,定出为了完成他所需要的各部分知识点和深度。
(4)然后是选择上课期间的演示项目,演示的项目是为了做分阶段项目服务的,可以认为是分阶段项目的分阶段项目
(5)最终把要求掌握的知识点和要求掌握的深度,分散到日常教学和练习中。
好了,把上面的分析用正向描述就是:
日常教学和练习中学习和掌握的知识 ==〉演示项目 ==〉分阶段项目 ==〉综合项目 ==〉胜任企业实际开发需要。
附注:有了好的项目还要有好的训练方法(这个另外立文讨论),最最基本和重要的一条就是:绝对要指导学生亲自动手做,而不是看和听,所以尽量不要选择有现成代码的项目,演示用的项目也最好不配发代码,让学生能够跟着做出来才是真的掌握了。
上面阐述了Java对项目的态度和基本选择方法,这里再把其中几个重要的、与众不同的特点阐述如下:
1:真项目
项 目一定要真实,要是企业实际应用的,不能是教学性的项目,否则会脱离实达不到项目实训的效果。还有一个一定要是最新的项目,企业的要求也是在不断变化的,应用技术的方向和层次也在不断变化,这些都体现在最新项目的要求上,旧项目所要求的技术和层次很可能已经过时了,根本达不到训练的目的。
Java的做法是:没有固定项目,每个班做项目之前会从企业获取最新的项目需求,然后经过挑选和精心设计,以保证既能训练技术,又能得到实际的开发经验。这样实现了跟企业的同步,企业做什么,我们就学什么,然后也跟着做什么。
2:真流程
开发的流程也要跟企业的实际开发保持一致。从项目立项开始,到需求分析、概要设计、详细设计、编码、测试的各个环节,都要完全按照真实的开发流程来做。
Java的主力老师都是实战出身,在Java开发方面都至少有七年以上的开发经验,同时具备多年的项目管理经验,所以能够完全按照企业开发的流程来训练学生。
3:真环境
开发的环境也要跟企业一样,包括常用的开发工具、开发平台、应用服务器、常用插件、测试工具、项目管理工具、项目管理文档等等。
Java的做法是:构建跟企业完全一样的环境,然后跟企业开发一样,分团队开发。老师就相当于项目经理,一个班分成多个小组,每个组有自己的Team Leader,大家分工合作,共同完成项目。
4:真开发
这是Java最与众不同的一点,Java深知:软件是做出来的,而不是听出来或者看出来的,企业需要能实际开发的人员,而不是只听过、看过但不能做的人。所以Java十分强调:项目一定要让学生动手写出来。
Java的做法是:老师做为项目经理,带领着大家一起去做需求分析、概要设计、数据结构设计、接口设计、重要业务流程的分析设计等,然后由学生们分团队进行开发,实现整个项目。这里有几个与众不同:
(1):现场带领学生一起做分析和设计,而不是预先做好了来讲讲。因为需要学生学习的是分析设计的过程和方法,而不是已经做好的结果。(2):Java选用的项目基本都是企业最新的项目,很多都是Java的学生和企业在同期开发,所以是不配发源代码的。这样也断绝了学生的依赖思想,认认真真去开发。可能有同学会问:为什么不选择有源代码的项目呢,那样还可以参考学习啊!
这 是一个典型的误区:觉得通过看人家的代码能够加快自己的学习。这个方法对有经验的人来讲是对的,但是对于还在学习期间,没有经验的学员来讲,就是一个认识 的误区了。因为你也许能看懂代码的语法,但根本看不懂代码背后的含义,看不懂代码的设计,看不懂为什么要这么实现,看不懂代码所体现的思想,其实,看了跟 没看没有多大区别。
事实上,Java界最不缺的就是代码了,那么多开源软件,小到一个工具,到企业级ERP都有开源的,而且很多都是大师级的 作品,说实话比你参考的那些代码质量高多了,但是又有多少人能真正看明白呢,原因就在于达不到那个水平,看不懂代码背后所体现的设计和思想以及为什么要这 么做,效果也就不好了。当然不排除有这样的高人是能够完全能理解和掌握这些大师级作品的,但估计不会是刚开始学习Java开发的学生,所以Java根据多年的培训经验,友情提 示:在初学阶段,看一千遍,听一千遍,都不如自己动手写一遍所达到的学习效果。自己能写出来的功能才是你真正掌握的功能,而不是你看得代码或者是听老师讲 的,就算讲过看过,但是自己做不出来,那都不算会。Java的主力老师都是实战出身,在Java开发方面都至少有七年以上的开发经验,同时具备多年的项目管理经验,所以能够完全按照企业开发的流程来训练学生。