初识反射

几天来回顾java基础,发现自己对线程、异常和I/O还是处于知道有这么一个概念的层次。于是down了别人的总结,开始学习,收集信息入下:


java1.5新特性
1.java静态导入:import static作用导入某个类的一个或全部静态方法, 调用时直接使用方法名即可
2.可变参数,定义方式如: fun(int a,int ...args ),参数将存储在args数组中
3.自动装箱与拆箱时:如果输入两个值相同的整数类型,且在-128--127之间,两个integer相同
采用的是享元模式(flyweight):如果很多很小的对象,它们有很多相同的属性(内部状态),那么可以把相同的属性变成一个相同的对象,那些不同的属性变成方法的参数(外部状态)
4.枚举:枚举元素是枚举类的子类,即enum A{B,C}生成三个class:A.class ,A$B$.class,A$C$.class,即枚举元素是枚举名对应类的子类
5.反射就是把java类中的各种成分映射成相应的java类。
  Field不是对象身上的值,而是类上的属性,可以根据它获取某个对象上的值
  字节码用==判断是否相对
java执行顺序;
  1.执行父类的静态代码块
  2.执行子类的静态代码块
  3.执行父类的构造方法
  4.执行子类的构造方法
  简言之,在类加载时,静态代码块优先执行,仅仅执行一次

重写的注意事项:
  1.子类抛出的异常不能超过父类的异常
  2..子类的访问控制权限不能低于父类的访问控制权限

如何获得某个类所对应的Class对象
1.通过类的.class方法
2.通过.getClass()方法
3.通过Class类的静态方法forName

通过反射方式调用某个对象的方法的步骤:

1.得到该对象的Class对象
2.通过该Class对象得到该类的构造方法所对应的Constructor对象
3.通过Constructor对象的newInstance方法得到该对象的一个实例
4.通过Class对象得到该方法所对应的Method对象
5.通过该Methdo对象的invoke方法进行调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值