模拟面试01

目录

1.JVM内存模型

2.CMS和G1有没有了解过,它们有什么区别

3.谈谈你对垃圾回收机制的了解,什么时候发生垃圾回收,回收过程

4.对于数据的一致性是怎么保证的

5. Redis集群有没有了解过,主从和选举是怎么样子的

6.看你们公司使用的是MySQL,你们使用的是哪种存储引擎,为

什么?MyISAM和InnoDB的区别

7.索引的底层数据结构是什么,为什么选择这种数据结构

8.SQL优化,怎么判断需要优化,从哪些方面着手优化

9.手写代码:设计一个分布式自增id生成服务


1.JVM内存模型

JVM 内存分为线程私有区和线程共享区
线程私有区   程序计数器 虚拟机栈 本地方法区
线程共享区   堆 方法区

2.CMS和G1有没有了解过,它们有什么区别

算法不同

  • CMS收集器是使用“标记-清除”算法进行的垃圾回收,容易产生内存碎片
  • G1收集器使用的是“标记-整理”算法,进行了空间整合,降低了内存空间碎片。

收集区域不同

  • CMS收集器是老年代的收集器,可以配合新生代的Serial和ParNew收集器一起使用;
  • G1收集器收集范围是老年代和新生代,不需要结合其他收集器使用;

 STW的时间

  • CMS收集器以最小的停顿时间为目标的收集器;
  • G1收集器可预测垃圾回收的停顿时间

3.谈谈你对垃圾回收机制的了解,什么时候发生垃圾回收,回收过程

什么是垃圾回收机制 、在系统运行过程中,会产生一些无用的对象,这些对象占据着一定的内存,如果不对这些对象清理回收无用对象的内存,可能会导致内存的耗尽,所以垃圾回收机制回收的是内存。同时GC回收的是堆区和方法区的内存。

当对象对当前使用这个对象的应用程序变得不可触及的时候,这个对象就可以被回收了.

垃圾回收不会发生在永久代,如果永久代满了或者是超过了临界值,会触发完全垃圾回收(Full GC)。如果你仔细查看垃圾收集器的输出信息,就会发现永久代也是被回收的。这就是为什么正确的永久代大小对避免Full GC是非常重要的原因。

判断对象是否可以被回收?

  • 引用计数器法:为每个对象创建一个引用计数,有对象引用时计数器 +1,引用被释放时计数 -1,当计数器为 0 时就可以被回收。它有一个缺点不能解决循环引用的问题;
  • 可达性分析算法:从 GC Roots 开始向下搜索,搜索所走过的路径称为引用链。当一个对象到 GC Roots 没有任何引用链相连时,则证明此对象是可以被回收的。
1. ⾸先把字节码⽂件内容加载到⽅法区
2. 然后再根据类信息在堆区创建对象
3. 对象⾸先会分配在堆区中年轻代的Eden区,经过⼀次Minor GC后,对象如果存活,就会进⼊
Suvivor 区。在后续的每次Minor GC中,如果对象⼀直存活,就会在 Suvivor 区来回拷⻉,每移动
⼀次,年龄加1
4. 当年龄超过15后,对象依然存活,对象就会进⼊⽼年代
5. 如果经过Full GC,被标记为垃圾对象,那么就会被GC线程清理掉

4.对于数据的一致性是怎么保证的

5. Redis集群有没有了解过,主从和选举是怎么样子的

6.看你们公司使用的是MySQL,你们使用的是哪种存储引擎,为

什么?MyISAM和InnoDB的区别

7.索引的底层数据结构是什么,为什么选择这种数据结构

索引数据结构选择B+树

漫画:什么是B-树?
漫画:什么是B+树?
 

B树的特点:
1. 节点排序
2. ⼀个节点了可以存多个元素,多个元素也排序了
B+树的特点:
1. 拥有B树的特点
2. 叶⼦节点之间有指针
3. ⾮叶⼦节点上的元素在叶⼦节点上都冗余了,也就是叶⼦节点中存储了所有的元素,并且排好顺序
Mysql索引使⽤的是B+树,因为索引是⽤来加快查询的,⽽B+树通过对数据进⾏排序所以是可以提⾼查 询速度的,然后通过⼀个节点中可以存储多个元素,从⽽可以使得B+树的⾼度不会太⾼,在Mysql中⼀ 个Innodb⻚就是⼀个B+树节点,⼀个Innodb⻚默认16kb,所以⼀般情况下⼀颗两层的B+树可以存2000 万⾏左右的数据,然后通过利⽤B+树叶⼦节点存储了所有数据并且进⾏了排序,并且叶⼦节点之间有指 针,可以很好的⽀持全表扫描,范围查找等SQL语句。

8.SQL优化,怎么判断需要优化,从哪些方面着手优化

9.手写代码:设计一个分布式自增id生成服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值