Java高级特性学习笔记

2014-11-24 09:04:40 ? 作者: ? 浏览: 0

基本数据类型的装箱和拆箱


Integer iobj=3;//装箱 相当于编译器自动完成 Integer i=new Integer(3);


System.out.println(iobj+12);//拆箱 自动转化基本数据类型的过程


享元模式:就是有很多小的对象或方法,它们有很多相同的东西,那么我们就可以把相同的变成一个对象,并


将哪些不同的东西变成外部的属性,作为方法的参数输入。


枚举:关键字是enum,可以看着是特殊的class, 可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口,不能有public的构造函数,所有的方法都必须放在元素列表之后


但可以定义private的构造函数


注意的是:所有枚举值都是public , static , final的。


eg://含抽象法的枚举


public enum TrafficLamp{


RED(20){


public TrafficLamp nextLamp(){


return GREEN;


}


}


,


GREEN(20){


public TrafficLamp nextLamp(){


return YELLOW;


}


},


YELLOW(15){


public TrafficLamp nextLamp(){


return RED;


}


}


;


public abstract TrafficLamp nextLamp();


private int time;


private TrafficLamp(int time){this.time=time;};


}


--------------------------------------------------------------------------


语言里的动态:一般指程序运行时,容许改变程序结构或变量类型,这种语言称为动态语言


Reflection,意思是“反射、映像、倒影”,在java中指的是我们可以在运行时加载、探知、使用编译期间完全未知的classes.


即:java程序可以加载运行一个运行时才得知名称的class,获悉其完整的构造,并生成其对象实体、或对其fields设值、


或唤起其methodsl.


反射的基石:Class类,用来表达Java程序运行时的classes和interfaces,也用来表达enum/array/private Java types(8个基本类)/关键词void。


当一个class被加载,或当加载器(class loader)的defineClass()被JVM调用,JVM便自动产生一个Class object.


java程序中的各个java类属于同一类事物,描述这类事物的java类名就是Class


字节码就是Class的实例对象


获得字节码的3种方法


pl.getClass();//pl指对象


Class.forName("类名")//做反射主要用这种


Class cls=Person.class//得到Person实例的字节码


Class cls1=字节码1;


Class cls2=字节码2;


数组类型的Class实例对象:Class.isArray():


总之:只要是在源程序中出现的类型,都有自己的Class实例对象。


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: