深圳转转 Java 一、二面 2021.9.15(已意向书)
1、自我介绍
2、介绍一下项目?
3、Spring的两个核心。说一下
4、AOP主要用到的Java的哪些技术呢?
5、MySQL的索引有哪些了解?
6、主键索引和普通索引有什么区别?
7、事务的隔离级别有哪些?
8、不同的隔离级别解决了哪些问题?
9、可重复读有没有解决这个幻读的问题?
10、可重复读如何解决不可重复读的一个问题?
11、ACID四个特性有了解过吗?
12、怎么保证这ACID四个特性?
13、MVCC有没有起到作用?
14、介绍一下集合
15、HashMap是线程安全的还是线程不安全的?
16、HashMap线程不安全会出现什么问题?
17、有没有了解过线程安全的HashMap?
18、ConcurrentHashMap怎么保证线程安全?
19、有没有实际用过多线程的东西?
20、线程的创建有哪几种方式?
21、Thread类和Runable接口的最大区别是什么?
可复用。
继承和接口
22、线程池最核心的是哪些?
23、线程池的执行顺序是怎么样的呢?
24、运行的时候,核心线程数能不能修改?(可以修改)
25、JVM的内存结构?
26、对象在哪个区?
27、Class文件在哪个地方存?
28、垃圾回收会发生在哪几个区域?
29、OOM会发生在哪个区域?
30、虚拟机栈会不会溢出?
31、GC算法有没有了解过?
32、怎么确定一个对象是垃圾?
33、哪些对象可以做为CG Root?
34、Java有哪些锁?
35、有没有除了Synchronize和ReentrantLock之外还有没有可以上锁的?
36、volatile怎么理解?
37、类加载器有哪些?
38、双亲委派模型。
39、怎么打破双亲委派模型?(面试的时候答了不会)(面试官告诉我说Tomcat有)
这边附上一篇网上的博客。https://www.jianshu.com/p/9b2d43c9a09a
每个Tomcat的webappClassLoader加载自己的目录下的class文件,不会传递给父类加载器。
tomcat之所以造了一堆自己的classloader,大致是出于下面三类目的:
-
一个web容器可能需要部署两个应用程序,
-
不同的应用程序可能会依赖同一个第三方类库的不同版本,不能要求同一个类库在同一个服务器只有一份,因此要保证每个应用程序的类库都是独立的,保证相互隔离。
-
-
web容器也有自己依赖的类库,不能于应用程序的类库混淆。基于安全考虑,应该让容器的类库和程序的类库隔离开来。
- web容器要支持jsp的热部署。
40、类加载的过程,Class文件
41、有没有自己使用过算法。
42、有哪些排序?
43、快排的原理。时间复杂度,最坏情况。
44、TCP连接和断开。
45、三次握手过程
46、 TCP连接CloseWati和TimeWait状态
47、网络的拥塞控制有没有了解过?
48、输入一个网址的调用流程。
49、有没有了解过HTTPS
50、HTTPS的加密算法是哪些?
51、你感觉你比较擅长哪方面?
52、有没有刷过题?
53、你觉得动态规划的关键是什么?
54、反问环节。
1、自我介绍
2、介绍一下项目
3、数据库索引
4、单核情况下,多线程为什么会比单线程的情况下去使用情况会更好?(面试官提醒后,会了)
5、TCP协议了解吗?
6、HTTP长连接还是短连接?
7、 服务端主动发起关闭还是客户端主动发起关闭TCP?(答了客户端,面试官不满意)
8、心跳机制说一下?(几乎没答对)
9、单例模式说一下。
10、线程安全的单例模式是怎么样的?
11、那为什么要使用volatile呢?
12、为什么要使用双段锁呢?
13、算法题:8个人乒乓球比赛,A赢B,B赢C,可以默认A赢C。那么最少比赛多少次可以获得冠亚季军(当时没想出来,心态崩了。)
14、你怎么学习技术?
15、你觉得什么最重要?
16、你在团队开发的项目里面学到了什么?
17、反问。