随笔分类 -  jvm

摘要:作用 程序计数器(PC寄存器)用来存储指向下一条指令的地址,即将要执行的代码。由执行引擎读取下一条指令 特点 它是一块很小的内存空间,几乎可以忽略不计,也是运行最快的存储区域 在JVM规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致 任何时间一个线程只有一个方法 阅读全文
posted @ 2020-09-22 20:26 衰草寒烟 阅读(816) 评论(0) 推荐(0)
摘要:运行时数据区结构概览 运行时数据区由方法区、堆、程序计数器、本地方法栈、虚拟机栈组成。 其中方法区只有Hotspot虚拟机才有,方法区 JDK 7 以前叫做永久代,JDK 8以后叫做元空间。 每个线程:独立包括程序计数器、栈、本地方法栈;线程间共享:堆、堆外内存(永久代或元空间、代码缓存) 阅读全文
posted @ 2020-09-10 18:29 衰草寒烟 阅读(205) 评论(0) 推荐(0)
摘要:在JVM中表示两个class对象是否是同一个类存在两个必要条件: 类的完整类名必须一致,包括包名 加载这个类的ClassLoader(ClassLoader实例对象)必须相同 换句话说,在JVM中,即使这两个类对象(class对象)来源于同一个class文件,被同一个虚拟机加载,但只要加载他们的Cl 阅读全文
posted @ 2020-09-09 16:57 衰草寒烟 阅读(140) 评论(0) 推荐(0)
摘要:Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会对它的class文件加载到内存生成class对象。而且加载某个类的class文件时,Java虚拟机采用的是双亲委派机制,即把请求交给父类处理,它是一种任务委派模式。 工作原理 如果一个类加载器收到类加载请求,他并不会先 阅读全文
posted @ 2020-09-07 14:55 衰草寒烟 阅读(159) 评论(0) 推荐(0)
摘要:Java日常开发过程中,类的加载几乎是由引导类加载器和系统类加载器配合执行,在必要的时候我们还可以自定义类加载器。 为什么要自定义类加载器 隔离加载类 修改类加载的方式 扩展加载源 防止源码泄露 如何实现自定义类加载器 通过继承抽象类java.lang.Classloader ,实现自己的类加载器, 阅读全文
posted @ 2020-09-04 18:28 衰草寒烟 阅读(326) 评论(0) 推荐(0)
摘要:作用 1. 类加载器子系统负责从文件系统或者网络中加载class文件,class文件在文件开头有特定标识 2. ClassLoader只负责class文件的加载,至于它是否可以运行,则是由ExecutionEngine决定 3. 加载的类信息存放于一块称之为方法区的内存空间,除了类信息外,方法区中还 阅读全文
posted @ 2020-09-01 18:31 衰草寒烟 阅读(168) 评论(0) 推荐(0)