文档详情

兄弟连_佟刚_Les01_Java基础加强.pdf

发布:2018-06-06约1.13万字共53页下载文档
文本预览下载声明
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 可变参数
显示全部
相似文档