兄弟连_佟刚_Les01_Java基础加强.pdf
文本预览下载声明
Java基础加强
讲师:佟刚
新浪微博:@_TongGang
JDK 5.0 新特性
• “JDK 5.0” 的一个重要主题就是通过新增一些
特性来简化开发,这些特性包括:
– 静态导入
– 自动装包/拆包
– for-each循环
– 可变参数
– 枚举
– 泛型
– 元数据
• 使用这些特性有助于编写更加清晰,精悍,安
全的代码。
静态导入
• JDK 1.5 增加的静态导入语法用于导入指定类
的某个静态属性值(方法)或全部静态属性值(方
法)
• 静态导入语句使用import static 语句
– 导入指定类的单个静态属性:
import static java.lang.System.out
– 导入指定类全部静态属性
import static java.lang.Math.*
静态导入
• 注意事项:
– 对一个给定的包, 不能用一行语句静态地导入所有类的
类方法和类变量:
import static java.lang.*; // this does not compile!
– 如果一个本地方法, 和一个静态导入的方法有着相同的
名字, 那么本地方法被调用
– 谨慎地使用静态导入. 因为静态导入使得类方法和类变
量的定义位置变得模糊, 所以加大了理解代码的难度.
使用静态导入的原则是: 限制静态导入的使用, 不要在
应用程序中普遍使用静态导入
自动装箱/拆箱
• 自动装箱(autoboxing) :把一个基本数据类型
直接赋给对应的包装类变量, 或者赋给Object
变量
• 自动拆箱:把包装类对象直接赋给一个对应的
基本类型变量
自动装箱/拆箱
• 注意事项:
– 自动拆箱时可能会发生空指针异常
– 自动拆箱时的==: 在自动装箱时对于值从-128--127之间的值, 被
装箱为Integer对象后, 会在内存中被重用. 但如果超过了-128—
127, 被装箱后的Integer对象并不会被重用, 即相当于每次装箱时
都新建了一个Integer对象.
100
Integer a = new Integer(100)
a 0x1001
b 0x1001
for-each循环
• 使用foreach 循环遍历数组和集合元素时, 无须
获得数组和集合长度, 无须根据索引来访问数
组元素和集合元素, forearch 循环自动遍历数
组和集合的每个元素
• 语法格式:
• for(type varName : array | collection){
//varName 自动迭代访问每一个元素
}
• 局限性: 如果要引用数组或者集合的索引, 则
foreach语句无法做到.
for-each循环
• 注意:
– 使用foreach 为数组和集合的元素赋值不能成功:
– 原因在于使用foreach 赋值时相当于中间产生了一个副本,采用new
操作符就等于没有操作数组的元素
arrays[0] null
a 0x1234
可变参数
显示全部