头条java 后台一面凉经

链接:https://www.nowcoder.com/discuss/142537

下午三点视频面:一上来怼jvm和gc

1.讲讲jvm运行时数据库区

https://blog.csdn.net/strawqqhat/article/details/88807835

2.讲讲你知道的垃圾回收算法

https://blog.csdn.net/strawqqhat/article/details/88129909#%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6%E7%AE%97%E6%B3%95

标记清除,复制,标记整理,分代回收。

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缓存一致的,消息队列怎么用的

(一小时左右)

结束 面试官说三天内给消息?

posted @ 2019-03-25 22:47  strawqqhat  阅读(170)  评论(0编辑  收藏  举报
#home h1{ font-size:45px; } body{ background-image: url("放你的背景图链接"); background-position: initial; background-size: cover; background-repeat: no-repeat; background-attachment: fixed; background-origin: initial; background-clip: initial; height:100%; width:100%; } #home{ opacity:0.7; } .wall{ position: fixed; top: 0; left: 0; bottom: 0; right: 0; } div#midground{ background: url("https://i.postimg.cc/PP5GtGtM/midground.png"); z-index: -1; -webkit-animation: cc 200s linear infinite; -moz-animation: cc 200s linear infinite; -o-animation: cc 200s linear infinite; animation: cc 200s linear infinite; } div#foreground{ background: url("https://i.postimg.cc/z3jZZD1B/foreground.png"); z-index: -2; -webkit-animation: cc 253s linear infinite; -o-animation: cc 253s linear infinite; -moz-animation: cc 253s linear infinite; animation: cc 253s linear infinite; } div#top{ background: url("https://i.postimg.cc/PP5GtGtM/midground.png"); z-index: -4; -webkit-animation: da 200s linear infinite; -o-animation: da 200s linear infinite; animation: da 200s linear infinite; } @-webkit-keyframes cc { from{ background-position: 0 0; transform: translateY(10px); } to{ background-position: 600% 0; } } @-o-keyframes cc { from{ background-position: 0 0; transform: translateY(10px); } to{ background-position: 600% 0; } } @-moz-keyframes cc { from{ background-position: 0 0; transform: translateY(10px); } to{ background-position: 600% 0; } } @keyframes cc { 0%{ background-position: 0 0; } 100%{ background-position: 600% 0; } } @keyframes da { 0%{ background-position: 0 0; } 100%{ background-position: 0 600%; } } @-webkit-keyframes da { 0%{ background-position: 0 0; } 100%{ background-position: 0 600%; } } @-moz-keyframes da { 0%{ background-position: 0 0; } 100%{ background-position: 0 600%; } } @-ms-keyframes da { 0%{ background-position: 0 0; } 100%{ background-position: 0 600%; } }