JVM
羯殇
这个作者很懒,什么都没留下…
展开
-
JVM双亲委派
JVM双亲委派机制:类加载:类加载时线程互斥,所以可以通过内部类进行创建类加载原理:向上加载向下委派当类进行加载时,会寻找他的父类(递归),寻找到最高的父类时向下委派加载,直到不可向下委派为止。约基础的类由约上层的加载器进行加载,但是如果基础类有调用回用户类->线程上下文类加载器1、防止类重复加载无意义消耗资源。2、防止核心类被用户类篡改加载。双亲委派机制三次破坏:第一次:版本问题,双亲委派机制在JDK1.2引入。但类加载器和抽象类CLassLoader在JDK1.0就已经存在,面原创 2022-04-11 13:22:47 · 407 阅读 · 0 评论 -
JVM加载
加载:预加载:当系统被启用时直接加载需要的资源到内存中懒加载:双重检查锁,通过双重判断进行检查是否需要创建实例,如果实例是null,第二次检查为同步锁->原因:当前实例是null,而在JVM中new和赋值是异步行为类加载器:类加载器:通过一个类的全限定名(绝对路径)来获取这个类的二进制字节流类加载器作用:将编译后的class文件加载到内存中类加载器分类:启动类加载器:加载java的基础类,但由于涉及虚拟机本地实现细节(属于虚拟机实现的一部分),所以不允许被直接引用URL[] urls原创 2022-04-11 13:22:15 · 110 阅读 · 0 评论 -
Java类加载器
类加载器:类加载器:通过一个类的全限定名(绝对路径)来获取这个类的二进制字节流类加载器作用:将编译后的class文件加载到内存中类加载器分类:启动类加载器:加载java的基础类,但由于涉及虚拟机本地实现细节(属于虚拟机实现的一部分),所以不允许被直接引用URL[] urls = sun.misc.Launcher.getBootstrapClassPath().getURLs();扩展类加载器:加载jre/lib/ext扩展的jar包,可以直接被使用URL[] urls = ((URLClas原创 2022-04-04 01:52:00 · 462 阅读 · 0 评论 -
Java类加载
加载:预加载:当系统被启用时直接加载需要的资源到内存中懒加载:双重检查锁,通过双重判断进行检查是否需要创建实例,如果实例是null,第二次检查为同步锁->原因:当前实例是null,而在JVM中new和赋值是异步行为类记载过程:装载(Load)通过全限定名获取类的字节流,将字节流转换为方法区运行的数据结构,再通过JVM堆生成class对象去访问数据链接(Link)文件格式验证:class文件格式元数据验证:Java代码规范字节码验证:字节码语义符号引用验证:解析正常执行初始化(In原创 2022-04-04 01:51:26 · 767 阅读 · 0 评论