`

JDK 5.0 新特性

 
阅读更多

JDK 5.0 新特性:

1. 静态导入

静态导入语法用于导入指定类的某个静态属性值(方法)或全部静态属性值(方法)

例如:

导入指定类的单个静态属性

import static java.lang.System.out

导入指定类全部静态属性

import static java.lang.Math.*

2. 自动装包/拆包

自动装箱:把一个基本数据类型直接赋给对应的包装类变量, 或者赋给 Object 变量。

自动拆箱:把包装类对象直接赋给一个对应的基本类型变量。

 

自动装箱:Integer num = 12;
自动拆箱:Int num = new Integer(12);
基本Boolean/Byte/Integer(数值范围:-128至127)数据类型的对象缓存:
Integer num1 = 12;
Integer num2 = 12;
System.out.println(num1 == num2);结果为true
Integer num3 = 129;
Integer num4 = 129;
System.out.println(num3 == num4);结果为false
因为数值范围在:(-128至127)数据类型的对象缓存。
简单类型和封装类型之间的差别
封装类可以等于null ,避免数字得0时的二义性。
Integer i=null;
int ii=i; 会抛出NullException 异常。
相当于 int ii=i.intValue();

 

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

3. for-each循环

使用 foreach 循环遍历数组和集合元素时, 无须获得数组和集合长度, 无须根据索引来访问数组元素和集合元素, forearch 循环自动遍历数组和集合的每个元素。

for(type varName : array | collection){ }

4. 可变参数

若在定义方法时, 在最后一个形参的类型后增加三点(), 则表明该形参可以接受多个参数值, 多个参数值被当成数组传入。

可变形参只能处于形参列表的最后, 所以一个方法最多只能有一个长度可变的形参。

调用包含一个可变形参的方法时, 可以为该形参传入多个参数或一个数组。

5. 枚举

在某些情况下, 一个类的对象是有限而且固定的(例如:季节类) 这种实例有限而且固定的类, Java 中被称为枚举类。

手动实现枚举类:

private 构造器。

把这个类的所有可能实例都使用 public static final 修饰。

提供一个静态方法根据给定的特定参数返回相应的实例。

6. 泛型

Java的泛型就是创建一个用类型作为参数的类。

7. 元数据

描述数据及其环境的数据。

类加载器:

类加载器负责将 .class 文件(可能在磁盘上, 也可能在网络上) 加载到内存中, 并为之生成对应的 java.lang.Class 对象。

JVM 启动时,会形成由三个类加载器组成的初始类加载器层次结构:

传智播客《听讲笔记》之Java基础加强 - 曼佳 - 十步两粒

Annotation(注释)

Annotation其实就是代码里的特殊标记,这些标记可以在编译,类加载, 运行时被读取,并执行相应的处理。通过使用 Annotation,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。

Annotation 可以像修饰符一样被使用,可用于修饰包,类,构造器,方法,成员变量,参数,局部变量的声明,这些信息被保存在 Annotation 的“name=value”对中。

Annotation 能被用来为程序元素(类,方法,成员变量等) 设置元数据。

使用 Annotation 时要在其前面增加 @ 符号,并把该 Annotation 当成一个修饰符使用。用于修饰它支持的程序元素。

三个基本的 Annotation

1. @Override:限定重写父类方法,该注释只能用于方法。

2. @Deprecated:用于表示某个程序元素(类,方法等)已过时。

3. @SuppressWarnings:抑制编译器警告。

自定义Annotation:

1. 定义新的 Annotation 类型使用 @interface 关键字。

2. Annotation 的成员变量在 Annotation 定义中以无参数方法的形式来声明。其方法名和返回值定义了该成员的名字和类型。

3. 可以在定义 Annotation 的成员变量时为其指定初始值,指定成员变量的初始值可使用 default 关键字。

4. 没有成员定义的 Annotation 称为标记,包含成员变量的 Annotation 称为元数据 Annotation

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics