链接:https://www.nowcoder.com/discuss/142537
下午三点视频面:一上来怼jvm和gc
1.讲讲jvm运行时数据库区
https://blog.csdn.net/strawqqhat/article/details/88807835
2.讲讲你知道的垃圾回收算法
标记清除,复制,标记整理,分代回收。
3.jvm内存模型jmm 知道的全扯了一遍
4.内存泄漏与内存溢出的区别
https://blog.csdn.net/strawqqhat/article/details/88817163
5.何时会STW,所有垃圾回收器都会有STW吗
答案:都有stw。
包括
1.1 Young GC类算法:Serial Young GC(DefNew)、Parallel Young GC、ParNew GC;
1.2 Full GC类算法:Serial Old GC、PS MarkSweep GC / Parallel Old GC、Full GC for CMS算法、Full GC for G1 GC算法;
1.3 G1 GC算法:Young GC/Mixed GC 是stw的;
2. CMS算法是怎么回事呢?
2.1 CMS(Old)GC算法只在初始标记(initial mark)和再标记(remark)阶段stw一下;
2.2 类似的,G1 GC算法在其标记阶段某几个时段是stop the world的,比如初始标记(initial mark)、再标记(remark)、清理(cleanup)阶段;
6.mysql数据库默认存储引擎,有什么优点
InnoDB 引擎
MySQL 5.5 及以后版本中的默认存储引擎,他的优点如下:
灾难恢复性好
支持事务
使用行级锁
支持外键关联
支持热备份
对于InnoDB引擎中的表,其数据的物理组织形式是簇表(Cluster Table),主键索引和数据是在一起的,数据按主键的顺序物理分布
实现了缓冲管理,不仅能缓冲索引也能缓冲数据,并且会自动创建散列索引以加快数据的获取
支持热备份
MyISAM引擎
特性如下:
不支持事务
使用表级锁,并发性差
主机宕机后,MyISAM表易损坏,灾难恢复性不佳
可以配合锁,实现操作系统下的复制备份、迁移
只缓存索引,数据的缓存是利用操作系统缓冲区来实现的。可能引发过多的系统调用且效率不佳
数据紧凑存储,因此可获得更小的索引和更快的全表扫描性能
MEMORY 存储引擎
提供内存表,也不支持事务和外键。显著提高访问数据的速度,可用于缓存会频繁访问的、可以重构的数据、计算结果、统计值、中间结果。
缺点如下:
使用表级锁,虽然内存访问快,但如果频繁的读写,表级锁会成为瓶颈
只支持固定大小的行。Varchar类型的字段会存储为固定长度的Char类型,浪费空间
不支持TEXT、BLOB字段。当有些查询需要使用到临时表(使用的也是MEMORY存储引擎)时,如果表中有TEXT、BLOB字段,那么会转换为基于磁盘的MyISAM表,严重降低性能
由于内存资源成本昂贵,一般不建议设置过大的内存表,如果内存表满了,可通过清除数据或调整内存表参数来避免报错
服务器重启后数据会丢失,复制维护时需要小心
如果选择合适的引擎?
是否需要事务支持
是否为高并发,InnoDB实现了行锁,这方面的表现大大优于MyISAM
索引,不同存储引擎的索引实现不同
是否需要外键
高效缓冲数据,InnoDB缓冲数据而MyISAM只缓冲了索引
备份,是否需要支持热备份
7.优化数据库的方法,从sql到缓存到cpu到操作系统,知道多少说多少
参考:https://www.cnblogs.com/jpfss/p/7363927.html
8.什么情景下做分表,什么情景下做分库
https://blog.csdn.net/strawqqhat/article/details/88818291
9.linkedList与arrayList区别 适用场景
https://blog.csdn.net/strawqqhat/article/details/88818522
10.array list是如何扩容的
https://blog.csdn.net/zymx14/article/details/78324464
11.String str = new String(“abc”)的操作有几个对象产生
https://blog.csdn.net/strawqqhat/article/details/88818628
12.手撕代码 删除链表中所有重复元素
https://blog.csdn.net/strawqqhat/article/details/88819261
13.怼项目 秒杀模块怎么设计的,如何压测,抗压手段,如何保证数据库与redis缓存一致的,消息队列怎么用的
(一小时左右)
结束 面试官说三天内给消息?