首页 > 代码库 > java强化篇(一)---java 1.5的新特性

java强化篇(一)---java 1.5的新特性

Java1.5的新特性

 

1.     快捷键使用技巧

快捷键的位置:General->keys,设置alt+/键(丁:content a 就会搜索出)进行内容提示时,要注意解除alt+/键原来的绑定关系,直接输入alt+/就可以找到它的绑定关系,删除绑定关系时也可以使用remove binding这个按钮。

1、显示系统提示:ALT+/

2、程序代码自动排版:Ctrl+Shift+F(jsp文件是全部重排,java文件是可以对选定的代码重排)

3、自动汇入所需要的类别:Ctrl+Shift+O(注意和Ctrl+Shift+M区别)

4、查看使用类别的原始码:Ctrl+鼠标左键点击(链接进入)

5、将选取的文字批注起来:Ctrl+/(后期很少用)

6、将选取的文字取消注解:Ctrl+ \

7、视景切换:Ctrl+F8

8、保存所有文件:Ctrl+Shift+S

9、关闭所有文件:Ctrl+Shift+F4

10、跳转到指定行:Ctrl+L(调试的时候很管用)

11、查找下一个:Ctrl+K

12、列出当前文件的结构:Ctrl+F3/Ctrl+O

13、列出类的继承结构:Ctrl+T(对于熟悉陌生的系统类很有用)

14、方法或类的原始码:F3(这个就不用介绍了)

15、方法做在类的方法结构:F4

16、复制选定的代码:Ctrl+Alt+(箭头)

17、当前行插入一行:Ctrl+Shift+Enter

18、将选定字母全部转换成小写字母:Ctrl+Shift+Y

19、将选定字母全部转换成大写字母:Ctrl+Shift+X

20、将选定的换成连接:Ctrl

21、搜索所有文件中,包含的关键字:Ctrl+H(很管用)

22、系统辅助或者代码提示及补充:alt+/(最喜欢这个:))

23、找另外一半括号:ctrl+shift+p

24、重新整理导入的包(只导入需要的包,不需要的会自动去掉):ctrl+shift+m(注意和Ctrl+Shift+O区分)

25、编辑框等窗口最大化:Ctrl + m

26、编辑器的回退,前进,切换:Alt + 左右箭头,Ctrl + F6

27、文件重命名:F2

28、刷新:F5

29. 重构:Ctrl+Shift+R

 

2.     代码模板的设置位置:java->editor->Templates

 

3.     静态导入

import语句可以导入一个类或某个包中的所有类

import static语句导入一个类中的某个静态方法或所有静态方法

语法举例:

import staticjava.lang.Math.sin;

import static java.lang.Math.*;

注意:一个同学曾经的问题:将javac无意改为1.4了,结果静态导入等jdk1.5的特性都报告错误了。

 

4.    可变参数

可变参数的特点:

a)只能出现在参数列表的最后;这个要记住

b)...位于变量类型和变量名之间,前后有无空格都可以;

c)调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。

 

5.    增强for循环

语法:

for ( type 变量名:集合变量名 )  { … }

注意事项:

迭代变量必须在( )中定义!

集合变量可以是数组或实现了Iterable接口的集合类

举例:

      public static int add(intx,int ...args) {

             int sum = x;

             for(int arg:args) {

                    sum += arg;

             }

             return sum;

}

 

6.    基本数据类型的自动拆箱与装箱

自动装箱:

Integer num1 = 12;

自动拆箱:

System.out.println(num1 + 12);

基本数据类型的对象缓存:

Integer num1 = 12;

Integer num2 = 12;           这块相等,<=127都是真的

System.out.println(num1 == num2);

 

Integer num3 = 129;    这块不相等,因为是对象

Integer num4 = 129;

System.out.println(num3 == num4);

 

Integer num5 = Integer.valueOf(12);

Integer num6 = Integer.valueOf(12) ;   这块的道理同上

System.out.println(num5== num6);

注意:自动装箱和拆箱的范围:-128~+127之间。

因为数值范围在:(-128至127)数据类型的对象缓存。

简单类型和封装类型之间的差别:

封装类可以等于null ,避免数字得0时的二义性。

Integer i=null;int ii=i;

会抛出NullException 异常,相当于 intii=i.intValue();

 

享元模式flyweight):有很多小的对象,它们有很多相同的属性,把这些相同的属性变为同一个对象,称为内部状态。 把那些不同的属性变为方法的参数,称为外部状态。

 

7.    枚举

枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标.

枚举就相当于一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法。

枚举元素必须位于枚举体中的最开始部分,枚举元素列表的后要有分号与其他成员分隔。把枚举中的成员方法或变量等放在枚举元素的前面,编译器报告错误。

带构造方法的枚举

构造方法必须定义成私有的(private)

如果有多个构造方法,该如何选择哪个构造方法?

枚举元素MON和MON()的效果一样,都是调用默认的构造方法。

带方法的枚举

定义枚举TrafficLamp

实现普通的next方法

实现抽象的next方法:每个元素分别是由枚举类的子类来生成的实例对象,这些子类采用类似内部类的方式进行定义。

增加上表示时间的构造方法

枚举只有一个成员时,就可以作为一种单例的实现方式。

 

写带有抽象方法的枚举步骤和技巧:

1. enumTrafficLamp{RED,GREEN,YELLOW}

2. enumTrafficLamp{RED,GREEN,YELLOW;public abstract next();}

3.enumTrafficLamp{RED{},GREEN{},YELLOW{};public abstract next();}

4.填充各个{}中的next方法。

 

java强化篇(一)---java 1.5的新特性