ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
>[info] 1.`private`修饰的方法可以通过反射访问,那么`private`的意义是什么 `private`更多是想表达封装而不是安全,反射是一种更底层的`hack`技术,类似的如 `asm`,`javaassit` 等都可以实现。 >[success]2.`Java`类初始化顺序 1. 初始化类静态变量/静态块(类加载时执行一次); 2. 初始化实例变量,执行构造器构造实例。1,2中如果有父类的话,先执行父类。 >[warning] 3.对方法区和永久区的理解以及它们之间的关系 方法区是`JVM`规范中的一个区域用于存放运行时数据,永久区是`Hotspot`虚拟机(1.8之前)中的一种方法区实现,类似的有`JDK 1.8`引入的元空间。 >[danger] 4.一个`java`文件有3个类,编译后有几个`class`文件 >[info] 5.局部变量使用前需要显式地赋值,否则编译通过不了,为什么这么设计 > 这样设计是一种约束,尽量大程度减少使用者犯错的可能(假使局部变量能够使用默认值,可能总会无意间忘记赋值,进而导致不可预期的情况出现)。 >[success] 6.`ReadWriteLock`读写之间互斥吗 `ReadWriteRock` 读写锁,使用场景可分为读/读、读/写、写/写,除了读和读之间是共享的,其它都是互斥的,接着会讨论下怎样实现互斥锁和同步锁的, 想了解对方对`AQS`,`CAS`的掌握程度,技术学习的深度。 >[warning] 7.`Semaphore`拿到执行权的线程之间是否互斥 `Semaphore`拿到执行权的线程之间是否互斥,`Semaphore`、`CountDownLatch`、`CyclicBarrier`、`Exchanger` 为`Java`并发编程的4个辅助类,面试中常问的`CountDownLatch`和`CyclicBarrier`之间的区别,面试者肯定是经常碰到的,所以问起来意义不大,`Semaphore`问的相对少一些,有些知识点如果没有使用过还是会忽略,`Semaphore`可有多把锁,可允许多个线程同时拥有执行权,这些有执行权的线程如并发访问同一对象,会产生线程安全问题。 >[info] 8.写一个你认为最好的单例模式 >[success] 9.`B`树和`B+`树是解决什么样的问题的,怎样演化过来,之间区别 >[success] 10.写一个生产者消费者模式 >[warning] 11.写一个死锁 >[info] 12.`cpu 100%`怎样定位 >[success] 13.`String a = "ab";` `String b = "a" + "b";` ` a == b` 是否相等,为什么 >[danger] 14.`int a = 1`; 是原子性操作吗 >[warning] 15.可以用for循环直接删除`ArrayList`的特定元素吗?可能会出现什么问题?怎样解决 >[info] 16.新的任务提交到线程池,线程池是怎样处理 >[success] 17.`AQS`和`CAS`原理 >[danger] 18.`synchronized`底层实现原理 >[warning] 19.`volatile`作用,指令重排相关 >[info] 20.`AOP`和`IOC`原理 >[success] 21.`Spring`怎样解决循环依赖的问题 >[danger]22.`dispatchServlet`怎样分发任务的 >[info] 23.`mysq`l给离散度低的字段建立索引会出现什么问题,具体说下原因