记录一些面试中回答不完整或者回答不上来的问题。鞭策自己学海无涯。
Java语言基础
- 什么是反射?
- 你对泛型了解多少?
- 抽象类和接口有什么区别?
- finally和try里都return,会发生什么?
- Java的整型有哪几种?
Java集合类
- 介绍一下集合类的继承和实现体系
- 哪些集合类是线程安全的
- HashTable为什么不是线程安全的?会出现什么问题?为什么?
- ConcurrentHashTable是怎么实现线程安全的?
- list和set的区别以及使用场景。
- TreeMap/
Java并发与多线程
-
Java创建线程有几种方式?
-
线程有哪几种状态?状态之间如何转化?
answer to 1、2 -
Synchronize和reentranceLock的区别?
-
synchronize的实现机制与锁升级+COW
-
线程池有哪些构造函数,分别有哪些参数
JVM
- JVM的分区
- Jvm的垃圾回收机制:分代,复制清除,标记清除
- JVM的垃圾识别算法:引用计数,root可达性判断
- new一个对象发生了什么
网络
- 计网TCP怎么保证传输的可靠性?
- 网络调试除了ping还会用到什么命令?
- 打开浏览器,输入url,敲回车,发生了什么
- Tcp的三次握手建立和四次挥手断开(Tcp是双工,收和发两种能力是分开和独立的,要同时考虑)
- 计算机网络的两种分层抽象,每层有哪些协议?
数据库
- 熟悉MySQL的什么存储引擎?
- 数据库为什么选用B+树作为索引数据结构?
- 数据库的隔离级别有哪些?在每个隔离级别会有什么样的问题?MySQL的默认隔离级别是什么?
- 有100w
数据结构与算法
- 赛马问题+TopN问题除了堆还有什么解决方法
- 两颗玻璃珠测试极限质量
- 背包问题7讲 + 硬币问题
- 哈夫曼树
- 二分图
- 判断图是否有环
- 判断图的连通分量个数
- 哪些排序是稳定的?要求能手撕所有排序算法
设计模式(都要求能手撕)
- 单例模式
- 建造者模式
- 责任链模式
- 工厂模式