0507华为od二面

只记录自己没回答上的问题
1、ZGC的缺点:
1)只是适用于32位系统
2)最大只是支持4TB内存容量
3)最糟糕的情况下吞吐量会下降15%,这都不是事至于吞吐量,通过扩容分分钟解决
4)分代的原因:不同对象的生命周期不相同,可能会扫描整个堆

2、双亲委派的优点
避免类的重复加载
安全性考虑:
Java 核心类库(如 java.lang 包下的类)都是由启动类加载器加载的,其他的类都是由其它类加载器加载的。这样,我们就可以保证 Java 核心类库的安全性,因为不同的应用程序无法改变这些类的实现。另外,也可以在类加载过程中做一些安全性检查。
模块化开发:
在实际应用中,我们经常需要在一个程序中使用多个第三方库,这些库可能会存在同名类。如果使用了双亲委派机制,就可以保证不同的类加载器只会加载自己的类,从而避免了类名冲突的问题。

3、static
volatile的实现原理
4、数据分区了解过吗

5、delete的时候会改索引吗
表中记录被删除后,索引中对应的键值不会被删除(即所占用空间不会释放),而只是加上删除标记。
如果以后有新的键值(一个或多个)加进这个数据块,则块中标记删除的键值都会清除。注意索引中键值的删除与事务提交没有关系。
update语句相当于先delete再insert,实验步骤与结果与上面相同。

6、线程池中阻塞队列的实现有了解过吗
在这里插入图片描述
阻塞队列(BlockingQueue)是一个支持两个附加操作的队列,
这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。
阻塞队列在实现上,主要是利用了Condition和Lock的等待通知模式。

7、dubbo底层通信协议是什么
dubbo底层使用Netty这样的NIO框架,是基于TCP协议传输的,配合以Hession序列化完成RPC通信。

上一篇:Maven的使用


下一篇:nginx--tcp负载均衡-redis负载均衡