面试题:【美团】Java 岗第 36/154 道面试题解析_Java
程序员的成长之路
互联网/程序员/成长/职场 

阅读本文大概需要 1.6 分钟。

Java 集合 22 题【 已完结
 

 

JVM 与调优 21 题【进行中

 

题目

 

14、什么是分布式垃圾回收(DGC)?它是如何工作的?

 

▌解析

 

概念:

 

1)Java虚拟机中,一个远程对象不仅会被本地虚拟机内的变量引用,还会被远程引用。

 

2)只有当一个远程对象不受到任何本地引用和远程引用,这个远程对象才会结束生命周期。

 

说明:

 

1)服务端的一个远程对象在3个地方被引用:

 

  • 服务端的一个本地对象持有它的本地引用。
  • 服务端的远程对象已经注册到rmiregistry注册表中,也就是说,rmiregistry注册表持有它的远程引用。
  • 客户端获得远程对象的存根对象,也就是说,客户端持有它的远程引用。

 

2)服务端判断客户端是否持有远程对象引用的方法:

 

  • 当客户端获得一个服务端的远程对象的存根时,就会向服务器发送一条租约(lease)通知,以告诉服务器自己持有了这个远程对象的引用了。
  • 客户端定期地向服务器发送租约通知,以保证服务器始终都知道客户端一直持有着远程对象的引用。
  • 租约是有期限的,如果租约到期了,服务器则认为客户端已经不再持有远程对象的引用了。

 

面试题:【美团】Java 岗第 36/154 道面试题解析_Java_02