技术一面
- 自我介绍。
- 进程与线程的区别,进程间如何通信,线程间如何通信?
- jvm内存模型,垃圾回收。
- 内存寻址的方式。
- 线程的生命周期。
- 事物的四个特性,事物的隔离级别。
- mysql 有哪几种锁?乐观锁和悲观锁的区别?
- mysql 索引的实现,索引文件保存在哪?使用b+树的优势?
- 何时建立索引,索引在什么情况下会失效?
- 如何得到线程安全的HashMap?ConcurrentHashMap与HashMap的区别?
- Redis 使用过哪几种数据类型?
- TCP 的三次握手和四次挥手。
- java中有哪些锁?Synchronized 与 lock的区别?
- try{}catch{}finally{} 的执行顺序,如果try{}finally{}中都有return语句,会执行哪个
return? - final 可以修饰哪些(类,变量,方法)? 分别有什么作用?
- http 请求有哪些类型?get与post的区别?
- 对linux了不了解?使用过的IDE?对java之外的技术了解哪些?
技术二面
- 自我介绍。
- 使用过多线程编程吗?
- 创建线程的几种方式?继承Thread与实现Runable接口的区别?
- 如何解决多线程安全问题?
- volatile 是否可以保证原子性?volatile如何实现可见性?
- 创建对象的几种方式?
- 支持多线程的数据结构?HashMap 是否线程安全,如何得到线程安全的HashMap?
ConcurrentHashMap的实现原理? - 假设有1亿条数据,找出最大或最小的前50条。如果使用堆排序,找出最大的前50个,应
该建立大顶堆还是小顶堆? - 有什么想问的?