Java面试题-Java基础(⑲)-反射

138 阅读1分钟

Java面试题-Java基础(⑲)-反射

Java面试题专栏---点击进入学习

640 (9).png

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.反射的概念

在程序运行期间动态的获取类内部的信息,并且访问,