Java面试题-Java基础(⑲)-反射
1.元注解都有哪些,表示什么含义
@Target用于规范注解书写的位置
@Retention用于规定注解的生效阶段
@Documented被此注解修饰的注解可以生成在帮助文档中
@inherited被此注解修饰的注解 子类可以继承
2.注解中属性的写法,注解中属性支持的数据类我
类名 属性名();
八种基本数据类型,String,Class,枚举及其对应的数组类型
3.注解属性什么情况下可以直接写值
只有一个属性并且名为value
4.如何获取一个Class对象,有哪些方式
1.类名.cass
2.对象名.getClass方法
3.ClassforName("全限定名")
4.类加载器 loadClass("全限定名")
5.根据Class对象调用无参构造创建一个实例(代 码实现)
Class clazz= Class.forName("ClassName");
clazz.newinstance()
6.手写单例模式任意一种
public class HungrySingleton{
private HungeySingleton instance = new Hungrysingleton();
priviate HungrySingleton(){}
public static HungrySingleton(){
return instance
}
}
7.获取一个类对象的所有字段(代码实现)
Class clazz= Class.forName("ClassName");
Field [] fields = clazz.getDeclaredFields();
8.根据名字获获取一个类对象的某个字段,设置 值并且访问(代码实现)
Class clazz = Class.forName("ClassName");
Field field = clazz.getDeclaredField(String fileName);
feld.set(对象,值);
feld.get(对象).sout;
9.反射的概念
在程序运行期间动态的获取类内部的信息,并且访问,