所有的初级或中级程序员遇到的面试题不会出这个框架,当然,许多问题是我抄来的,也有自己面试中遇到的。
一、java基础
1、基础
(1)
(2)异常种类。
2、集合
ArrayList删除的原理或过程
https://www.cnblogs.com/huangjinyong/p/9455163.html
HashMap遍历删除
https://zhidao.baidu.com/question/442077920.html
3、IO和网络
- BIO、NIO、AIO的概念
- 什么是长连接和短连接
- Http1.0和2.0相比有什么区别,可参考《Http 2.0》
- Https的基本概念
- 三次握手和四次挥手、为什么挥手需要四次
- 从游览器中输入URL到页面加载的发生了什么?可参考《从输入URL到页面加载发生了什么》
4、线程和进程
(1)
- 说说线程安全问题,什么是线程安全,如何保证线程安全
- 重入锁的概念,重入锁为什么可以防止死锁
- 产生死锁的四个条件(互斥、请求与保持、不剥夺、循环等待)
- 如何检查死锁(通过jConsole检查死锁)
- volatile 实现原理(禁止指令重排、刷新内存)
- synchronized 实现原理(对象监视器)
- synchronized 与 lock 的区别
- AQS同步队列
- CAS无锁的概念、乐观锁和悲观锁
- 常见的原子操作类
- 什么是ABA问题,出现ABA问题JDK是如何解决的
- 乐观锁的业务场景及实现方式
- Java 8并法包下常见的并发类
- 偏向锁、轻量级锁、重量级锁、自旋锁的概念
- 可参考:《Java多线程编程核心技术》
(2)
1、ThreadLocal用过么,原理是什么,用的时候要注意什么
2、Synchronized和Lock的区别
3、synchronized 的原理,什么是自旋锁,偏向锁,轻量级锁,什么叫可重入锁,什么叫公平锁和非公平锁
4、concurrenthashmap具体实现及其原理,jdk8下的改版
5、用过哪些原子类,他们的参数以及原理是什么
6、cas是什么,他会产生什么问题(ABA问题的解决,如加入修改次数、版本号)
7、如果让你实现一个并发安全的链表,你会怎么做
8、简述ConcurrentLinkedQueue和LinkedBlockingQueue的用处和不同之处
9、简述AQS的实现原理
10、countdowlatch和cyclicbarrier的用法,以及相互之间的差别?
11、concurrent包中使用过哪些类?分别说说使用在什么场景?为什么要使用?
12、LockSupport工具
13、Condition接口及其实现原理
14、Fork/Join框架的理解
15、jdk8的parallelStream的理解
16、分段锁的原理,锁力度减小的思考
(3)
5 JVM
类加载的顺序
GC
二、框架
spring
1 springIOC和AOP
2 spring是如何管理事务的
springMVC
1 springMVC原理
mybatis
1 resultType和resultmap区别
2spring和mybatis集成后缓存会怎样?
springBoot
springCloud
Hibernate
三、web
JS
常用的协议有哪些
四、数据库
索引
oracle分页和mysql分页
事务级别
五、linux
linux常用命令
ls
find
cat
mkdir
vi wq
cd
ps -ef | grep 8080