java面试题---反射相关

1、java反射创建对象的效率高,还是new创建对象效率高?

new创建对象的效率高,通过反射时,先通过class获取类资源,在使用类加载器创建,过程比较繁琐,效率低。

2、java反射的作用?

java反射是在运行时,对于任意一个类,都能够知道这个类全部的属性或方法;对于任意一个对象,都能够动态的调用他的方法。在java中,只有给定一个类的全类名,就能够通过反射机制获取这个类全部的信息。

3、java中应用反射的例子?

jdbc

4、反射的实现方法?

1、class.forName()

2、类名.class

3、对象名的getClass()

4、对于基本类型的包装类,可以调用其Type属性

5、java反射机制中可能用到的类?

class、 ,Method、 Field 、 Contructor

6、反射机制的优缺点?

优点:

1、能够在运行时动态获取类的实例,提高灵活度

2、能够与动态编译结合

缺点:

1、性能较低

2、安全性相对较低,破坏了类的封装性。

7、反射的缺点中有一点是性能较低,如何改进?

1、通过setAccessible(true) 来关闭jdk的安全检查机制来提高速度

2、多次创建一个类的实例时,使用缓存

3、使用reflectASM工具类,通过字节码生成的方法提高反射的速度

8、利用反射动态创建对象实例的方法。?

1、获取类的class对象,调用class对象的newInstance方法

2、获取类的class对象,在获取类的指定constructor对象,最后调用constructor的newInstance方法

//获取 Person 类的 Class 对象 
Class clazz=Class.forName("reflection.Person"); 
//使用.newInstane 方法创建对象 
Person p=(Person) clazz.newInstance(); 
//获取构造方法并创建对象 Constructor c=clazz.getDeclaredConstructor(String.class,String.class,int.class); 
//创建对象并设置属性
Person p1=(Person) c.newInstance("李四","男",20);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值