深圳某小公司:Java反射 && 动态代理

深圳某小公司:Java反射 && 动态代理_第1张图片

深圳某小公司:Java反射 && 动态代理_第2张图片

深圳某小公司:Java反射 && 动态代理_第3张图片

深圳某小公司:Java反射 && 动态代理_第4张图片

深圳某小公司:Java反射 && 动态代理_第5张图片

深圳某小公司:Java反射 && 动态代理_第6张图片

深圳某小公司:Java反射 && 动态代理_第7张图片

深圳某小公司:Java反射 && 动态代理_第8张图片

// 抽象类,定义泛型
public abstract class BaseDao<T> {
     
    public BaseDao(){
     
        Class clazz = this.getClass();
        ParameterizedType  pt = (ParameterizedType) clazz.getGenericSuperclass(); 
        clazz = (Class) pt.getActualTypeArguments()[0];
        System.out.println(clazz);
    }
}

// 实现类
public class UserDao extends BaseDao<User> {
     
    public static void main(String[] args) {
     
        BaseDao<User> userDao = new UserDao();

    }
}
// 执行结果输出
class com.entity.User

深圳某小公司:Java反射 && 动态代理_第9张图片

深圳某小公司:Java反射 && 动态代理_第10张图片

深圳某小公司:Java反射 && 动态代理_第11张图片

深圳某小公司:Java反射 && 动态代理_第12张图片

过了一天,面试官看大家三连了。又给我补充了道题:都说反射会影响性能,有什么方式可以减低它的性能影响吗?

答案:可以使用缓存把反射的元数据存储起来,下一次使用的时候就可以直接从内存获取了。尽可能使用高性能的反射框架(都帮你封装好了,不用自己实现)

欢迎搜索【Java3y】来聊聊Java面试

【对线面试官】系列 一周两篇持续更新中!

你可能感兴趣的:(对线面试官,java,反射,面试,jvm,leetcode)