java文件编辑为.class文件,后jvm加载到内存中
类的生命周期
1.加载–>2.验证(验证class文件格式规范语义)–>3.准备–>4.解析–>5.初始化–>6.使用–>7.卸载
这些是由类的加载器加载的,类的加载器有了三类
1.Bootstrap loader 核心类库加载器,加载JRE_HOME/jre/lib目录下
2.Extension Class Loader拓展类库加载器,加载JRE_HOME/jre/lib/ext目录,JDK拓展包
3.application class loader用户应用程序加载器,可以使用java命令-cp
类的加载器可以通过 java.lang.ClassLoader()来查看是由那种加载器加载的。
类的存储大致可以分为:线程共享部分,线程独占部分
其中方法区是jvm用来存储类的信息、常量、静态变量、编译后的代码等数据。
堆内存存放对象的区域,jvm启动就创建了,可细分为:老年代、新生代(Eden、From Survivor、To Survivor),存放对象的实例,垃圾回收主要是管理堆内存。
虚拟机栈:每个线程都会有一个私有空间, 栈内存默认最大是1M。
本地方法栈:也是 线程独占的空间,本地方法栈是为虚拟机使用Native本地方法而准备的。
程序技术器:记录单签线程执行字节码的位置,存储的是字节码指令地址,如果执行Native方法,则技术器值空。
java类加载机制
最新推荐文章于 2024-03-27 21:17:32 发布