Java运行时数据区的组成
Java运行时数据区可以分为(5个):方法区、虚拟机栈、本地方法区、堆、程序计数器
其中:
线程私有:虚拟机栈、本地方法区、程序计数器
线程共享:方法区、堆
各组成的详细介绍参考资料如下
参考资料1:https://blog.csdn.net/zuzhiang/article/details/118456471
参考资料2:
https://www.jb51.net/article/218556.htm
类加载过程
首先Java源文件通过编译器的javac指令转换为二进制的字节码文件.class,jvm再将class文件加载到内存中,对数据进行校验、转换解析和初始化,这才形成了可以使用的Java类型。(类的加载:将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构)
另外,使用后会进行垃圾回收GC卸载
参考资料1:https://www.cnblogs.com/zhouyi2021/p/14896977.html
参考资料2:https://blog.csdn.net/qq_28938627/article/details/116209608
对GC的理解
个人理解:对程序中不再使用的对象进行垃圾回收。
【复习:C#中的GC只能回收托管资源,對於非托管资源的释放需要实现IDispose接口手动释放】
参考资料1:https://blog.csdn.net/weixin_33172127/article/details/114038977