JDK1.5的新特性 03

来源:互联网 发布:手机无法安装软件 编辑:程序博客网 时间:2024/06/03 20:32

 摘要:

1,编程等级:面向对象,面向接口,面向框架
2,Class为Reflect奠定基础,而Reflect为框架奠定基础:反射的作用——实现框架功能
3,如何加载class文件?
    A.路径:配置文件
    B.工具:类加载器
          a.默认加载方式:
          b.自定义加载器:    
4,反射应用——内省:java.beans.Introspector
5,属性管理set/get: javabean   java.beans.Beans
           A.书写格式
           B.直接操作工具:java.beans.PropertyDescriptor
                      a.public Method getWriteMethod()
                      b.public void setWriteMethod(Method writeMethod) throws IntrospectionException
           C.间接操作工具:public interface BeanInfo
                      a.PropertyDescriptor[] getPropertyDescriptors()
                      b.for(PropertyDescriptor : PropertyDescriptors[])        
           D.BeanUtils工具包:commons-beanutils.jar
6,重要新特性:注解 public interface Annotation
          
           实现类:
           A.压制警告:public @interface SuppressWarnings
           B.方法过时:public @interface Deprecated
           C.复写方法:public @interface Override
          
 
          
 笔记:
 
27,框架的概念及用反射技术开发框架的原理
        反射的应用---开发框架
    需求:能否在半成品的基础上开发产品?效率高!
    思路:配置文件,键值对,键是固定的,值是可变的; ----> 属性集合
    Properties
   
28,用类加载器的方式管理资源和配置文件
    需求:能否对路径进行智能化管理?
    InputStream ips = new FileInputStream("config.properties");
   
    javaweb.getRealPath

29,IntroSpector--->JavaBean-->特殊的Java类
   
class Person{//就是一个JavaBean类
    private int x;
    public int getAge(){
        return x;
    }
    public void setAge(int age){
        this.x = age;
    }
}
    //JavaBean 的属性,首字母大小写与第二个字母大小写一致;
    gettime()  time
    setTime()  time
    getCPU()   CPU

30,对JavaBean的简单内省操作
    需求:更简单地操作get/set方法。
    技术:属性描述对象。java.beans.PropertyDescriptor
    基础:反射,Class类与Method类
                                    

31,对JavaBean的复杂内省操作(早期的做法,不是最棒的方法,但也是有效的方法。)
    需求:已知对象,和对象的属性名,当不知道对象属性的读取方法名和设置方法名,如何简单读取和设置属性??
    思路:无法直接调用对象的成员方法进行属性读取和设置,那就通过JavaBean智能反射读取和设置方法,完成读取和设置。
    技术:java.Beans.PropertyDescriptor    getReadMethod(<?>),    getWriteMethod(<?>);
 技巧:重构抽取方法,把代码进一步封装,简单化;
 

32,BeanUtill
    Map集合之间的转换
   
    思想:学新技术的意义,新技术是老技术的补充和优化。java7的新特性
    PropertyUtill

反射:
    字节码类--成员变量类
            --成员方法类
            --成员方法类
            --修饰符类
面向对象:
    通过类名字符串,静态建立字节码对象
    字节码对象,可以获取成员变量对象
                    成员变量对象可以获取:变量名,数据类型,数值,哈希值;
              
                可以获取成员方法对象
                    成员方法对象可以获取:方法名,返回值类型,方法注解,哈希;
              
                可以获取构造方法对象
                    构造方法对象可以建立获取判断:建立新实例,构造方法名,构造方法描述,
                            参数是否可变,是否同步函数;
                           
    思路:在开发中,面向对象,找对象,事情与谁相关就找谁去完成。
                拿到对象有两种方法:静态获取;
                                    new建立;                                   


33, 注解是JDK1.5的新特性,最重要的新特性,比枚举还重要,因为基于注解开发,是必须的。
    每个注解都是一个类的对象。
    过时注解:@Deprecated  弃用
    覆盖注解:@Override
    禁止警告:@SuppressWarnings
  
    注解是类的成分,也可以通过反射获取。
                   
34,注解的定义与反射调用
    注解、枚举都是特殊的类           
    元注解,元,元素;注解中的注解;
    元数据,数据的数据
    元信息,信息的信息
   
    注解的三个生命周期:.java  .class  内存中字节码       
    Type:Class
          Interface
          Enume
          @XXX
35,为注释增加各种属性
    需求:为注释增加更为丰富的属性,一边适应多元化的操作需求。

总结:需求决定JDK新技术
      需求决定程序设计
      学习学的是思考力和理解力;
      思考力:我怎么解决这个新问题?
      理解力:他为什么这样解决问题?