摘要:方法区就用来存储了每一个类的结构信息,不同的虚拟机实现是不一样的,有些叫永久代,有些称为元空间 1、类型信息 类型的全限定名 超类的全限定名 直接超接口的全限定名 类型标志(该类是类类型还是接口类型) 类的访问描述符(public、private、default、abstract、final、sta 阅读全文
posted @ 2020-04-20 03:43 cao_xiaobo 阅读(183) 评论(0) 推荐(0) 编辑
摘要:java设计者将内存划分为不同的区域,每一块区域都有它自已的职责,粗略的分工如下:堆区是专门用来存储对象的,方法区是专门用来保存类的结构信息的,虚拟机栈是专门用来执行java方法的,本地方法栈是专门用来执行native方法的,程序计数器是专用记录线程执行字节码所执行的行号记录的。java内存区域统称 阅读全文
posted @ 2020-04-20 03:37 cao_xiaobo 阅读(81) 评论(0) 推荐(0) 编辑
摘要:类加载器并不需要等到某个类被“首次主动使用”时再加载它,JVM规范允许类加载器在预料某个类将要被使用时就预先加载它,如果在预先加载的过程中遇到了.class文件缺失或存在错误,类加载器必须在程序首次主动使用该类时才报告错误(LinkageError错误)如果这个类一直没有被程序主动使用,那么类加载器 阅读全文
posted @ 2020-04-20 03:21 cao_xiaobo 阅读(272) 评论(0) 推荐(0) 编辑
摘要:编写原则 在JDK1.2之前,在自定义类加载器时,总会去重写loadClass方法,从而实现自定义的类加载类,但是JDK1.2之后已不再建议用户去覆盖loadClass方法,而是建议把自定义的类加载逻辑写在findClass方法中 在编写自定义类加载器时,如果没有太过于复杂的需求,可以直接继承URL 阅读全文
posted @ 2020-04-20 03:14 cao_xiaobo 阅读(134) 评论(0) 推荐(0) 编辑
摘要:符号引用 符号引用以一组符号来描述所引用的目标。符号引用可以是任何形式的字面量,只要使用时能无歧义地定位到目标即可。符号引用和虚拟机的布局无关。 个人理解:在编译的时候一个每个java类都会被编译成一个class文件,但在编译的时候虚拟机并不知道所引用类的地址,多以就用符号引用来代替,而在这个解析阶 阅读全文
posted @ 2020-04-20 03:06 cao_xiaobo 阅读(354) 评论(0) 推荐(0) 编辑
摘要:前言 Java类的加载是动态的,它并不会一次性将所有类全部加载后再运行,而是保证程序运行的基础类(像是基类)完全加载到jvm中,至于其他类,则在需要的时候才加载。这当然就是为了节省内存开销。 Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到 阅读全文
posted @ 2020-04-20 03:01 cao_xiaobo 阅读(700) 评论(0) 推荐(0) 编辑
摘要:类的卸载:由JVM自带的类加载器所加载的类,在JVM的生命周期中,始终不会被卸载。JVM本身会始终引用这些类加载器,而这些类加载器始终引用它们所加载的类的Class对象。所以说,这些Class对象始终是可触及的。 由用户自定义的类加载器所加载的类是可以被卸载的。 当类被加载,连接和初始化后,它的生命 阅读全文
posted @ 2020-04-20 02:57 cao_xiaobo 阅读(617) 评论(0) 推荐(0) 编辑
摘要:类加载器 VM 中有多个类加载器,分饰不同的角色。每个类加载器由它的父加载器加载。bootstrap 加载器除外,它是所有最顶层的类加载器。 Bootstrap 加载器 使用C/C++语言实现的,因为它在 JVM 加载以后的早期阶段就被初始化了。bootstrap 加载器负责载入基础的 Java A 阅读全文
posted @ 2020-04-20 02:51 cao_xiaobo 阅读(93) 评论(1) 推荐(0) 编辑
摘要:一、为什么要使用类加载器? Java语言里,类加载都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会给java应用程序提供高度的灵活性。例如: 1.编写一个面向接口的应用程序,可能等到运行时再指定其实现的子类; 2.用户可以自定义一个类加载器,让程序在运行时从网络或其他地 阅读全文
posted @ 2020-04-20 02:43 cao_xiaobo 阅读(152) 评论(0) 推荐(0) 编辑
摘要:热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。tomcat支持当你对这个文件进行修改时,会重新把这个新的文件加载到JVM中。当然这个功能是需要我们进行配置的。 我们可以在server.xml 中的 Host标签下配置一个Context标签,这里的reloadable="true", 阅读全文
posted @ 2020-03-19 19:51 cao_xiaobo 阅读(246) 评论(0) 推荐(0) 编辑