您的位置:首页 > 编程语言 > Java开发

黑马程序员_JDK1.5新特性_总结

2012-08-12 10:21 323 查看
------- android培训java培训、期待与您交流! ----------

静态导入

import static语句导入一个类中的某个静态方法或所有静态方法。



JDK1.5以后调用静态方法前面不用加类名直接用import static xxx 导入即可。

可变参数

一个方法接受的参数个数不固定

可变参数的特点:

1.int... args 只能出现在参数列表的最后,只能作为最后一个参数。

2....位于变量类型和变量名之间,前后有无空格都可以。

3.调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。



增强for循环

1.迭代变量必须在( )中定义

2.集合变量可以是数组或实现了Iterable接口的集合类



局限性

有时需要在迭代期间访问迭代器或下标,需要对迭代器调用一个方法,但是当使用增强的for循环时,迭代器对我们来说是看不到的.因此,我们只能使用JDK1.5之前版本的迭代方法。

基本数据类型的自动拆箱与装箱



自动装箱:

Integer num1 = 12;

自动拆箱:

System.out.println(num1 + 12);

另:

享元模式:有很多小的对象,他们有很多共同的属性,因此将他们变成一个对象,不同的属性变成方法的参数.

不同的属性称之为外部状态,相同的属性称之为内部的状态。

享元模式作用在需要同一个对象多次出现的情况下.不必多次开辟空间,新建对象.
枚举

枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。

1.枚举就相当于一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法。

2.构造方法必须定义成私有的

3.每个元素分别用一个公有的静态成员变量表示

4.可以有若干公有方法或抽象方法。

5.枚举元素必须位于枚举体中的最开始部分,枚举元素列表的后要有分号与其他成员分隔。把枚举中的成员方法或变量等放在枚举元素的前面,编译器报告错误。

6.枚举只有一个成员时,就可以作为一种单例的实现方式。

枚举是一种特殊的类,其中的每个元素都是该类的一个实例对象。



另:单例模式

单例模式是为了保证一个类在内存中只有一个对象.

1.在单例模式中构造方法是私有的,这样就保证了其他类无法创建本类对象。

2.为了让其他类可以访问本类对象,在本类中添加了一个公共方法(getInstance()),并将此方法设为静态的,通过这个方法其他类可以使用本类对象,而不需要创建。

应用场景:比如读取配置文件的对象,只需要一个,对数据库进行增删改的对象也应保证只有一个,还有游戏中起中央控制器作用的类,也应只有一个。

单例模式的两种形态:饿汉式和懒汉式

饿汉式:



懒汉式:



注解

1.注解的作用:告诉编译器,向它传达一种信息。

2.注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记,以后,javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事。标记可以加在包,类,字段,方法,方法的参数以及局部变量上。

一个注解的生命周期有三个阶段:

RetetionPolicy.SOURCE、RetetionPolicy.CLASS、RetetionPolicy.RUNTIME;分别对应:java源文件-->class文件-->内存中的字节码。

注解的应用结构图为:



//元注解

@Retention(RetentionPolicy.RUNTIME)

@Target({ElementType.METHOD,ElementType.TYPE})

@Target 表示该注解用于什么地方,可能的 ElemenetType 参数包括:

ElemenetType.CONSTRUCTOR 构造器声明

ElemenetType.FIELD 域声明(包括 enum 实例)

ElemenetType.LOCAL_VARIABLE 局部变量声明

ElemenetType.METHOD 方法声明

ElemenetType.PACKAGE 包声明

ElemenetType.PARAMETER 参数声明

ElemenetType.TYPE 类,接口(包括注解类型)或enum声明

@Retention 表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括:

RetentionPolicy.SOURCE 注解将被编译器丢弃

RetentionPolicy.CLASS 注解在class文件中可用,但会被VM丢弃

RetentionPolicy.RUNTIME VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。

@Override 表示当前方法是覆盖父类的方法。

@Deprecated 表示当前元素是过时的。

@SuppressWarnings表示关闭一些不当的编译器警告信息。

自己编写注解举例:







泛型

参见黑马程序员_JDk1.5新特性之_泛型

----------------------- android培训java培训、java学习型技术博客、期待与您交流! ----------------------
详情请查看:http://edu.csdn.net/heima
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: