要点目录
一、泛型
1、泛型可以使程序的操作更加安全,可以避免发生类转换异常。
2、在程序中如果使用类时没有指定泛型,则泛型将被擦除掉,将使用
Object
接收参数。
3、可以使用通配符“
?
”接收全部的泛型类型对象。
4、通过
<?extends类>
可以设置泛型的上限,通过<?super类>
可以设置泛型的下限。
5、泛型方法可以定义在泛型类中,也可以定义在普通类中。
6、泛型可以在接口中定义,实现泛型接口的子类要指明具体的泛型类型。
7、泛型可以嵌套使用。
8、在程序中定义没有方法的接口,这样的接口一般称为标识接口。
二、常用类库
1、在一个字符串内容需要频繁修改时,使用
StringBuffer
可以提升操作性能,因为StringBuffer
内容可以改变,而String内容不可以改变。
2、
StringBuffer类
中提供了大量的字符串操作方法,如增加、替换、插入等。
3、
Runtime
表示运行时在一个JVM中只存在一个Runtime,所以如果要想取得 Runtime类的对象,直接使用Runtime类中提供的静态方法getRuntime()
即可。
4、国际化程序实现的基本原理为:所有的语言信息以
key—>value
的形式保存在资源文件之中,程序通过key
找到相应的value
,根据其所设置国家的Locale
对象不同,找到的资源文件也不同。要想实现国际化必须依靠Locale
、ResourceBundle
两个类共同完成。
5、
System类是系统类
,可以取得系统的相关信息,使用System.gc()
方法可以强制性地进行垃圾的收集操作,调用此方法实际上就是调用了Runtime类中的gc()
方法。
6、
Format类
为格式化操作类,主要的3个子类是MessageFormat
、NumberFormat
、DateFormat
。
7、使用
Date类
可以方便地取得时间,但取得的时间格式不符合地域的风格,所以可以使用SimpleDateFomat类
进行日期的格式化操作。
8、处理大数字可以使用
Biglnteger
和BigDecimal
类,当需要精确小数点操作位数时应使用BigDecimaI
类。
9、通过
Random类
可以取得指定范围的随机数字。
10、如果一个类的对象要被克隆,则此对象所在的类必须实现
Cloneable
接口。
11、要对一组对象进行排序,则必须使用比较器,比较器接口
Comparable
中定义了compareTo()
的比较方法,用来设置比较规则。
12、正则表达式是开发中最常使用的一种验证方法,String类中的
replaceAll()
、split()
、matches()
方法都对正则有所支持。
13、可以使用
Time
和TimeTask
类完成系统的定时操作。
三、枚举
1、在程序中可以使用一个枚举来指定对象的取值范围。
2、在Java中使用
enum
关键字定义一个枚举类,每一个枚举类都是继承Enum类
。
3、在枚举中可以通过
values()
方法取得枚举中的全部内容。
4、在枚举类中可以定义构造方法,但在设置枚举范围时必须显式地调用构造方法。
5、所有的枚举类都可以直接使用
Comparable
进行排序,因为Enum类
实现了Comparable
接口。
6、Java类集中提供枚举的支持类是
EnumMap
、EnumSet
。
四、Java反射机制
1、
Class类
是反射机制操作的源头。
2、Class类的对象有3种实例化方式:
(1)通过Object类中的getClass()
方法。
(2)通过“类.class
”的形式。
(3)通过Class.forName()
方法,此种方式最为常用。
3、可以通过Class类中的
newInstance()
方法进行对象的实例化操作,但是要求类中必须存在无参构造方法,如果类中没有无参构造,则必须使用Constructor类
完成对象的实例化操作。
4、可以通过反射取得一个类所继承的父类、实现的接口、类中的全部构造方法、全部普通方法及全部属性。
5、使用反射机制可以通过
Method
调用类中的方法,也可以直接操作类中的属性。
6、动态代理可以解决开发中代理类过多的问题,提供统一的代理功能实现。
7、在程序的开发中使用反射机制并结合属性文件,可以达到程序代码与配置文件相分离的目的。