谈谈反射机制,动态代理是基于什么原理?
反射机制是java提供的一种基础功能,赋予程序在运行时自省,通过反射,我们可以直接操作类或对象,比如获取某个对象的类定义,获取类声明的类或方法,调用方法或构造对象。甚至可以运行时修改类定义。
动态代理是一种方便运行时动态构建代理、动态处理代理方法调用的机制,很多场景都是利用类似机制做到的,比如用来包装 RPC 调用、面向切面的编程(AOP)。
对比 Hashtable、HashMap、TreeMap 有什么不同?谈谈你对 HashMap 的掌握。
hashtable,hashmap,treeMap都是常见的map实现,是以键值对的形式存储和操作数据的容器类型。
hashTable是早期java类型提供的一个哈希表实现。本身是同步的,但是不支持null键和值,由于同步会导致性能开销,用的就比较少,
Hashmap:主要区别在于,是不同步的,支持null键,null值,
treeMap则是一种基于红黑树的提供顺序访问的map,和hashmap不同,他的get,put,remove之类操作都是O(logn)的时间复杂度。具体顺序可以由Comparator决定。
对比 Vector、ArrayList、LinkedList 有何区别?
如何保证容器是线程安全的?ConcurrentHashMap 如何实现高效地线程安全?
谈谈接口和抽象类有什么区别?
谈谈你知道的设计模式?请手动实现单例模式,Spring 等框架中使用了哪些模式?
synchronized 和 ReentrantLock 有什么区别?有人说 synchronized 最慢,这话靠谱吗?
synchronized 底层如何实现?什么是锁的升级、降级?
一个线程两次调用 start() 方法会出现什么情况?谈谈线程的生命周期和状态转移。
什么情况下 Java 程序会产生死锁?如何定位、修复?
Java 并发包提供了哪些并发工具类?
并发包中的 ConcurrentLinkedQueue 和 LinkedBlockingQueue 有什么区别?
Java 并发类库提供的线程池有哪几种? 分别有什么特点?
AtomicInteger 底层实现原理是什么?如何在自己的产品代码中应用 CAS 操作?
请介绍类加载过程,什么是双亲委派模型?
有哪些方法可以在运行时动态生成一个 Java 类?
谈谈 JVM 内存区域的划分,哪些区域可能发生 OutOfMemoryError?
如何监控和诊断 JVM 堆内和堆外内存使用?
Java 常见的垃圾收集器有哪些?
谈谈你的 GC 调优思路?
Java 内存模型中的 happen-before 是什么?
Java 程序运行在 Docker 等容器环境有哪些新问题?
v