首页 > 编程知识 正文

jvm优化面试题,jvm垃圾回收机制面试题

时间:2023-05-04 07:16:36 阅读:15615 作者:1035

目录1 .什么是父母委托机制? 2 .父母下放机制优势3 .沙盒安全机制

1 .什么是父母委任机制?

父母委任机制机制: (面试)。

1 .如果一个类加载器收到类加载请求,它不是自己先加载,而是委托父类加载器执行该请求。

2 .如果父类加载器中还存在父类加载器,请向上请求,然后依次递归,请求最终到达顶层启动类加载器。 (从这里可以看到,任何类加载请求都将到达启动类加载器。)

3 .如果父类加载器可以完成类加载任务,则返回正常;如果无法完成此加载任务,则委托其子类加载器加载。

如图所示,如果类加载请求到来,则会在启动类加载器之前请求上面; 接下来,引导类加载器将尝试加载。 如果无法加载,它将加载到子加载器扩展类加载器中。 如果扩展类加载器仍然无法加载; 进入下一级系统类加载器。

示例:

因为程序需要使用spi接口,所以必须加载spi类库。 通过父母委托机制,加载spi的请求将到达引导类加载器,spi接口是java的核心api,因此引导类加载器将直接加载。

spi是一个接口,使用其实现类涉及第三方jar包。 下图所示的示例使用jdbc类库,需要加载jdbc.jar。

必须加载第三方jar包,不属于核心api。 在这种情况下,需要系统类加载器才能加载。 此时,将执行反向代理,将引导类加载器委托给扩展类加载器,并将扩展类加载器委托给系统类加载器。 实际上,它是由线程上下文加载器加载的,线程上下文加载器是一种系统类加载器。

在此示例中,可以看到接口是由引导类加载器加载的,具体的实现类是由线程上下文加载器(即系统类加载器)加载的。

2 .父母委托机制的优点1 .避免类的重复加载。 类由父类加载器加载后,不会将加载委托给子类。

2 .保护程序安全。

保护程序安全的示例:

以下示例将直接报告错误。

必须加载ShkStart才能运行main函数。 根据父母的委托机制,加载请求将委托给引导类加载器。 (请记住第1部分的工作原理图。 查看引导装载器时,软件包是java.lang,因此它将加载。

加载直接报告错误。 因为自己定义的类的包名称是java.lang。

package java.lang; //包名称为Java.lang/* * * @ authorshkstart * @ create 2020下午12:00 */publicclasshkstart { publicstaticvoidmain (stion ) ); }3.沙箱安全机构

有关更多JVM文章,请参阅我的JVM专栏。 https://blog.csdn.net/u 011069294/category _ 10113093.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。