1)静态导入:
import static 语句导入一个类中的某个静态方法或所有静态方法。
2)可变参数:
可变参数特点:只能出现在参数列表的最后。
3)增强for循环:
格式: for(type 变量名:集合变量名){}
增强for循环有局限性,必须有被遍历的对象。就像三元运算符必须有结果一样,一般简单意味有局限性。
4)享元设计模式:
享元设计模式:
享元模式通过共享实现对象的重用。
优点:提高程序效率和性能的模式,会大大的增加程序的运行速度。极大的减少了内存中,对象
的数量,使得相同对象在内存中只保存一份。
5)枚举:
JDK1.5新特性。
枚举的好处:
1),定义常量:
1: public enum TrificLamp{
2: RED,GREEN,YELLOW;
3: }
2)可以设计单利,枚举的每个元素都是其对象;
6)反射:
反射就是将java中的各个成分通过类的形式进行操作。
操作类用Class类,操作方法用Method类,操作成员变量用Filed类,操作构造函数用Constructor类
当成员被私有时,还能通过暴力反射进行访问和操作,filed.setAccessible(true)
数组的反射:
基本类型的一维数组可以被当作Object类型使用,不能当作Object[]类型使用;
具有相同维数和元素类型的数组属于同一个类型,即具有相同的Class实例对象
非基本类型的一维数组,即可以当作Object类型使用也可以当作Object[]类型使用。
Arrays.asList()处理int类型数组和String类型数组的差异。
int用System.out.print()打印的还是地址。而String可以打印对象的属性值。
Array工具类用于完成对数组的反射操作
不能修改HashSet集合中参与了hashCode计算的元素的值,否则就会会出现无法删除该元素的情况,会造成内存泄漏。
例子:
1: public static void main(String[] args) {
2: Set<Person> set = new HashSet<Person>();
3: Person p1 = new Person("张三",20);
4: Person p2 = new Person("李四",21);
5: Person p3 = new Person("王五",22);
6: set.add(p1);
7: set.add(p2);
8: set.add(p3);
9:
10: p3.setAge(2); //修改p3的年龄
11: set.remove(p3); //无法删除
12:
12),反射的作用――>实现框架功能:
工具类和框架的区别:工具类是被用户所调用,而框架则是调用用户提供的类。
7)内省:
1,什么是JavaBean:
JavaBean是一种特殊类,主要用于传递信息,这种Java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。
2,JavaBean的属性:
JavaBean的属性是根据其中的set和get方法来确定的,而不是根据其中的成员变量,去掉set和get后的名称就是属性名。如果剩余部分的第二个字母是小写,则把剩余部分的首字母改成小写。
例子: setName()的属性名->name
isOpen()的属性名->Open
setAGE()的属性名->AGE
getAGE()的属性名->AGE
总之:一个类被当作JavaBean使用时,JavaBean的属性是根据方法名判断出来的。
一个符合JavaBean的特点的类可以当作普通类一样进行使用。但作为javabean处理有好处:
JDK中提供了对JavaBean进行操作的一些API,这套API就称为内省,如果通过getX方法来访问私有
的x,有一定难度,用内省操作JavaBean就变得很方便。 |
|