一面
1.画出项⽬的架构图
2.所处⾃⼰负责的业务模块,其中⽤到了哪些技术点?
3.如何实现最终⼀致性分布式事务?
4.消息最终⼀致性解决⽅案之RabbitMQ实现:
a.实现:发送⽅确认+消息持久化+消费者确认。4.索引的B+树结构是咋样的?
1. B-tree:
B-tree利⽤了磁盘块的特性进⾏构建的树。每个磁盘块⼀个节点,每个
节点包含了很关键字。把树的节点关键字增多后树的层级⽐原来的⼆叉树少
了,减少数据查找的次数和复杂度。
B-tree巧妙利⽤了磁盘预读原理,将⼀个节点的⼤⼩设为等于⼀个⻚
(每⻚为4K),这样每个节点只需要⼀次I/O就可以完全载⼊。
B-tree的数据可以存在任何节点中。
2. B+tree:
B+tree是 B-tree的变种,B+tree数据只存储在叶⼦节点中。这样在B
树的基础上每个节点存储的关键字数更多,树的层级更少所以查询数据更快,所
有指关键字指针都存在叶⼦节点,所以每次查找的次数都相同所以查询速度更稳
定;
5.哪些情况下索引会失效?除了加索引优化查询,还有哪些⽅法?
6.说说⾃⼰了解的设计模式?Spring中⽤到了哪些设计模式?⾃⼰有⽤过哪些设
计模式吗?
7.TCP的三次握⼿四次挥⼿机制?
8.Https原理?
9.Redis的数据类型有哪些?与Memcached的区别?
Redis⽬前⽀持5种数据类型,分别是:
String(字符串)
List(列表)
Hash(字典)
Set(集合)
Sorted Set(有序集合)
区别
1、memcache⽀持k/v类型数据;
2、redis除了缓存k/v类型数据之外,还能缓存list、set、hash等数据结构
的数据;
3.redis的持久化,事务,master/salver这些虽然也是redis的优势,但实际应
⽤中发现这些其实是会托累服务器的性能,⽽我们全部都不能⽤.我们得⾃已做;
memcached以上都不管,我们也得⾃已做;
4.如果需要在服务器端做⼀些聚合的运算,⽤redis;如果只是做缓存,redis虽
然可以,但性能很差.在要求⾼性能的环境下使⽤memcached更合适;
10.消息队列有⽤到吗?具体在项⽬中是怎么⽤的?如何保证消息的可靠传递?
二面
1.说说java集合,每个集合下⾯有哪些实现类,及其数据结构?
2.介绍⼀下红⿊树、⼆叉平衡树。
3. jdk1.8中ConcurrentHashMap size⼤于8时会转化成红⿊树,请问有什么
作⽤,如果通过remove操作,size⼩于8了,会发⽣什么?
4.说说java同步机制,java有哪些锁,每个锁的特性?
5.说说volatile如何保证可⻅性,从cpu层⾯分析。
6. spring加载bean的顺序?
spring容器及bean加载机制源码解
7.哪些对象会被存放到⽼年代?
8.什么时候触发full gc?
(1)调⽤System.gc时,系统建议执⾏Full GC,但是不必然执⾏
(2)⽼年代空间不⾜
(3)⽅法去空间不⾜
(4)通过Minor GC后进⼊⽼年代的平均⼤⼩⼤于⽼年代的可⽤内存
(5)由Eden区、From Space区向To Space区复制时,对象⼤⼩⼤于
To Space可⽤内存,则把该对象转存到⽼年代,且⽼年代的可⽤内存⼩
于该对象⼤⼩
9. jvm中哪些地⽅会出现oom?分别说说oom的可能原因?jvm发⽣oom的四种情
况:
10.我们如何发现oom来⾃jvm中哪个区域?
11.有没有jvm调优经验?调优⽅案有哪些?
1.调优时机:
a. heap内存(⽼年代)持续上涨达到设置的最⼤内存值;
b. Full GC次数频繁;
c. GC停顿时间过⻓(超过1秒);
d.应⽤出现OutOfMemory等内存异常;
e.应⽤中有使⽤本地缓存且占⽤⼤量内存空间;
f.系统吞吐量与响应性能不⾼或下降。
2.调优原则:
a.多数的Java应⽤不需要在服务器上进⾏JVM优化;
b.多数导致GC问题的Java应⽤,都不是因为我们参数设置错误,
⽽是代码问题;
c.在应⽤上线之前,先考虑将机器的JVM参数设置到最优(最适
合);
d.减少创建对象的数量;
e.减少使⽤全局变量和⼤对象;
f. JVM优化是到最后不得已才采⽤的⼿段;
g.在实际使⽤中,分析GC情况优化代码⽐优化JVM参数更好;
3.调优⽬标:
a. GC低停顿;
b. GC低频率;
c.低内存占⽤;
d.⾼吞吐量;
4.调优步骤:
a.分析GC⽇志及dump⽂件,判断是否需要优化,确定瓶颈问题
点;
b.确定jvm调优量化⽬标;
c.确定jvm调优参数(根据历史jvm参数来调整);
d.调优⼀台服务器,对⽐观察调优前后的差异;
e.不断的分析和调整,知道找到合适的jvm参数配置;
f.找到最合适的参数,将这些参数应⽤到所有服务器,并进⾏后续跟踪。
12.平时有没有看过什么源码,请画出来。
13.有没有写过或者看过custom classloader?
了解⼀下即可:
全部评论
(5) 回帖