jvm类加载机制与使用MAT分析堆内存

本文详细介绍了JVM的类加载机制,包括启动类加载器、扩展类加载器和系统类加载器的工作原理。同时,探讨了如何通过JNI接口调用其他语言来访问操作系统底层。此外,文章重点讲解了使用Eclipse Memory Analyzer (MAT) 工具进行堆内存分析的步骤,包括配置、Histogram查询、对比分析以及如何定位内存泄漏问题。通过对Histogram的对比和GC Root路径分析,帮助开发者快速找到内存泄漏的原因。
摘要由CSDN通过智能技术生成

 

 

jvm通过类加载器,将硬盘上编译好的class文件加载进jvm中。至于它是否可以运行,则有Execution Engine决定

 

类加载器主要有虚拟机自带的加载器和用户自定义加载器。其中启动类加载器主要加载java中的根类,像Object、Scanner等,这些根类加载时,它们的类加载器为NULL;扩展类加载器主要加载java外部的类(这些外部类存储......jdk\jre\lib\ext中),系统加载器主要加载当前APP中的所有类。

(ps:可以将用户自定义的类,作为jar包,放到......jdk\jre\lib\ext中,这样这个类就变成了扩展类,具体操作:选择“hello world.java”,右键点击Export-》选择jarfile-》next-》选择这个jarFile的存放路径-》finsh,最后将这个jar包放到......jdk\jre\lib\ext中。)

运行结果:

 

java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对底层的范文

        打开java的一些抽象类,你会发现其中有很多native的抽象方法。它的作用是融合不同的编程语言为java所用,它的设计初衷是融合c/c++程序,Java诞生的时候是c/C++横行的时候,要想立足,必须有调用C/C++程序,于是就在内存中专门开辟了一块内存区域处理标记Native的代码。它的具体做法是:Nati

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值