首页 > 代码库 > 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的新特性