一、Java相关
乐观悲观锁的设计,如何保证原子性,解决的问题;
char和double的字节,以及在内存的分布是怎样;
对象内存布局,然后讲下对象的死亡过程?
对象头,详细讲下;
sync原理详细,sync内抛异常会怎样,死锁吗?还是释放掉?怎么排查死锁?死锁会怎样?有没有什么更好的替代方案?
详细讲一下集合,HashSet源码,HashMap源码,如果要线程安全需要怎么做?
多线程是解决什么问题的?线程池解决什么问题?
线程池,如何设计的,里面的参数有多少种,里面的工作队列和线程队列是怎样的结构,如果给你,怎样设计线程池?
AQS原理,ReentranLock源码,设计原理,整体过程。
继续聊多线程源码,sync原理,然后一个场景设计题;
float f = 1.4f;double d = 1.4d; 与 float f =1.5f;double d = 1.5d; 是否为true,内存是怎样的;
split的源码,split("a|b|c");得出多少个数组;
把所有认识熟用的JUC(java.util.concurrent(简称JUC)包)下的类写出来,讲下使用,然后讲下原生的线程操作;
开闭原则,解析工厂方法模式,建造者模式,区别。手撸出来。
讲下JVM的大页模式,JVM内存模型;
什么是敏捷开发,防御性编程,并行编程。Team Leader的思考;
逃逸分析是什么,作用是什么,用途是什么;
怎么认为一个类是线程安全?线程安全的定义是什么?Java有多少个关键字进行同步?为什么这样设计?(聊了一大堆,一堆为什么);
两个线程设计题。记得一个是:t1,t2,t3,让t1,t2执行完才执行t3,原生实现。
写个后缀表达式,为什么要设计后缀表达式,有什么好处?然后写下中缀。
我看你做过性能优化,比如你怎么分析项目