目前有这么一个算法问题,需要java 编写:
输入开始时间 例:2023年1月23日 13:30 ;
输入结束时间 例:2023年1月25日 16:30 ;
输出结果 例:{ 20230123 - 8.5小时 ,20230124 - 24小时 ,20230125 - 16.5小时}
大致就是这个意思。
(1)先说说集合吧,又问了hashmap的原理,把与集合有关的都回答了。
(2)JVM区域划分,每一部分再细讲一下。
(3)有哪些垃圾回收
算法,详细说了3个GC算法。(4)类加载的步骤,还有内存回收的过程。
(5)讲一下G1垃圾回收器,这个还需要再往深的学一下。
(6)死锁
(7)讲一下volatile这个关键字,面试官说我讲的有点少。
(8)描述一下什么是乐观锁,悲观锁。
(9)volatile和synchronize的区别。
(10)面向对象的六大原则,这个没有回答出来,只知道单一职责原则和开闭原则。
(11)mysql常见的索引方式。再把每种索引方式讲一下。
(12)事务的四种隔离机制,每种隔离机制分别会引发什么并发问题。
(13)介绍一下MVCC。
(14)说一下你熟悉的设计模式。我讲了单例模式、工厂模式、代理模式,可能讲的有点少。
(15)说说AOP吧。
(16)讲一下Spring中的IOC吧。