JDK 5.0新特性
来源:互联网 发布:怎样解析域名 编辑:程序博客网 时间:2024/05/01 06:06
JDK5.0新特性中主要包含以下方面:
1.泛型(Generics) 2.增强的for 循环 3.自动装包与自动拆包
4.枚举(Enum) 5.静态导入(static import) 6.可变参数
7.Printf格式输出 8.IO流输入(Scanner) 9.注解(Annotation) 注解是非常重要的一个新特性
-------------
使用泛型的意义是: 放进去之后(set()方法),再取出来(get()方法),就不用再进行类型转换了
下面举一个例子:
package com.test.jdk;
//这个表示泛型类型通配声明
@SuppressWarnings("unchecked")
public class GenericTest<T> {
private T foo;
public T getFoo() { return foo; }
public void setFoo(T foo) { this.foo = foo; }
public static void main(String[] args) {
GenericTest<? extends List> ge = null; //这里ge是一个引用,也就是内存中一块地址,它不是对象
ge = new GenericTest<ArrayList>(); //此时 ge 是一个对象
ge = new GenericTest<LinkedList>();
GenericTest<? super List> ge2 = null; //这里super 表示List的上一层
ge2 = new GenericTest<Object>();
GenericTest<String> ge3 = new GenericTest<String>();
ge3.setFoo("hello world");
GenericTest<?> ge4 = ge3; //将ge3赋给ge4,这个问号表示ge4可以指向任何的Object类型的对象
System.out.println(ge4.getFoo()); //取得
ge4.setFoo(null); //移除
System.out.println(ge4.getFoo());
//ge4.setFoo("welcome"); //这种写法编译都通不过,不能增加类型
} }
结果:输出 hello world ,null
GenericFoo<? extends List> foo = null;
这个问号表示只有GenericFoo后面的<>中的类符合 List 接口,才可以用 foo对象
简单的说,实例化类型持有者时,它必須是实现List的类别或其子类别,
要定义这样一个名称,您可以使用 ‘?’ 通配字元,并使用“extends”关键字限定类型持有者的型态
枚举:
枚举与类相似,但在定义枚举时,里面的实例是确定的,在声明后,不能再改变。
类可以有多个实例,可以通过 new 方法来产生
枚举可以看作是一种特殊的类,它也有构造方法,也可以在枚举里面定义属性,方法等
定义枚举本质上就是在定义一个类别,只不过很多细节由编译器完成了,所以在某些程度上,enum关键字的作用就像是class或interface
枚举的实例都是 public static final 类型
枚举的作用(这个非常重要):主要是确定里面的实例的数量和名字
注解Annotation:
JDK 注解共有7类:
Override, SuppressWarnings, Deprecated,Retention,Target,Documented,Inherited
注解(Annotation):是一种注释语法,用来对程序进行一些配置或操作
以下是JDK内置的三个Annotation
如@Override 重写
@SuppressWarnings("unused") 压制警告信息
@Deprecated 表示过时的方法,属于捣乱的注解
也可以自定义注解
Annotation的作用范围@Retention:
@SOURCE 表示在源代码范围内起作用 如@Override
@CLASS 表示在Class文件范围内起作用
@RUNTIME 表示在运行时起作用
如果要在代码中通过反射取得Annotation 中设置的属性,必须将范围设置为RUNTIME
设置Annotation使用位置: @Target
只能在Annotation中出现:public static final ElementType ANNOTATION_TYPE
只能在构造方法中出现: public static final ElementType CONSTRUCTOR
本地变量上使用: public static final ElementType LOCAL_VARIABLE
只能在方法上使用: public static final ElementType METHOD
在参数声明上使用: public static final ElementType PARAMETER
在包的声明上使用: public static final ElementType PACKAGE
只能在类或接口上使用: public static final ElementType TYPE
文档注释中出现Annotation: @Documented
继承类中同时继承Annotation:@Inherited
- JDK 5.0新特性
- JDK 5.0新特性
- JDK 5.0 新特性
- Annotation JDK 5.0的一个新特性
- JDK 1.5(5.0)的新特性
- 赵雅智_Java JDK 5.0 新特性
- Java基础加强-JDK 5.0 新特性
- Java(02)-JDK 5.0 新特性
- JDK的新特性
- JDK 7 新特性
- JDK 1.6 新特性
- jdk新特性研究
- JDK 新特性
- jdk新特性资料
- JDK 6.0 新特性
- JDK新特性3
- jdk 1.7新特性
- JDK 1.5新特性
- JSTL之c标签
- jfreechart出现ChartDeleter没有序列化问题导致session信息丢失的解决方法
- delphi笔试题(一)
- 移动商务移动订单、流程管理解决方案
- RO段、RW段和ZI段
- JDK 5.0新特性
- Apache2.2 服务无法启动【转】
- Linux常用命令大全
- 僵尸进程的原因
- 在linux下安装和配置Apache+PHP
- iPhone Application Programming Guide - Graphics and Drawing
- [WPF] BitmapEffects Issue
- 几种coldfusion服务器的配置
- 【vc】【多媒体编程应用】MCI编程之 mciSendCommand 和mciSendString