摘要: 编写原则 在JDK1.2之前,在自定义类加载器时,总会去重写loadClass方法,从而实现自定义的类加载类,但是JDK1.2之后已不再建议用户去覆盖loadClass方法,而是建议把自定义的类加载逻辑写在findClass方法中 在编写自定义类加载器时,如果没有太过于复杂的需求,可以直接继承URL 阅读全文
posted @ 2020-04-20 03:14 cao_xiaobo 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 符号引用 符号引用以一组符号来描述所引用的目标。符号引用可以是任何形式的字面量,只要使用时能无歧义地定位到目标即可。符号引用和虚拟机的布局无关。 个人理解:在编译的时候一个每个java类都会被编译成一个class文件,但在编译的时候虚拟机并不知道所引用类的地址,多以就用符号引用来代替,而在这个解析阶 阅读全文
posted @ 2020-04-20 03:06 cao_xiaobo 阅读(796) 评论(0) 推荐(0) 编辑
摘要: 前言 Java类的加载是动态的,它并不会一次性将所有类全部加载后再运行,而是保证程序运行的基础类(像是基类)完全加载到jvm中,至于其他类,则在需要的时候才加载。这当然就是为了节省内存开销。 Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到 阅读全文
posted @ 2020-04-20 03:01 cao_xiaobo 阅读(1307) 评论(0) 推荐(0) 编辑
摘要: 类的卸载:由JVM自带的类加载器所加载的类,在JVM的生命周期中,始终不会被卸载。JVM本身会始终引用这些类加载器,而这些类加载器始终引用它们所加载的类的Class对象。所以说,这些Class对象始终是可触及的。 由用户自定义的类加载器所加载的类是可以被卸载的。 当类被加载,连接和初始化后,它的生命 阅读全文
posted @ 2020-04-20 02:57 cao_xiaobo 阅读(4183) 评论(1) 推荐(1) 编辑
摘要: 类加载器 VM 中有多个类加载器,分饰不同的角色。每个类加载器由它的父加载器加载。bootstrap 加载器除外,它是所有最顶层的类加载器。 Bootstrap 加载器 使用C/C++语言实现的,因为它在 JVM 加载以后的早期阶段就被初始化了。bootstrap 加载器负责载入基础的 Java A 阅读全文
posted @ 2020-04-20 02:51 cao_xiaobo 阅读(216) 评论(1) 推荐(0) 编辑
摘要: 一、为什么要使用类加载器? Java语言里,类加载都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会给java应用程序提供高度的灵活性。例如: 1.编写一个面向接口的应用程序,可能等到运行时再指定其实现的子类; 2.用户可以自定义一个类加载器,让程序在运行时从网络或其他地 阅读全文
posted @ 2020-04-20 02:43 cao_xiaobo 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。tomcat支持当你对这个文件进行修改时,会重新把这个新的文件加载到JVM中。当然这个功能是需要我们进行配置的。 我们可以在server.xml 中的 Host标签下配置一个Context标签,这里的reloadable="true", 阅读全文
posted @ 2020-03-19 19:51 cao_xiaobo 阅读(764) 评论(0) 推荐(0) 编辑
摘要: 1.下载tomcat源码 下载地址:https://archive.apache.org/dist/tomcat/ 我这里下载的是 apache-tomcat-8.0.53-src.zip 2.新建maven工程 我这里创建一个maven工程,名称为 apache-tomcat-8.0.53-src 阅读全文
posted @ 2020-03-17 20:08 cao_xiaobo 阅读(790) 评论(0) 推荐(0) 编辑
摘要: 一、安装配置Ant (1)下载Ant 下载地址:https://ant.apache.org/bindownload.cgi 下载完成后解压即用。 (2)配置Ant环境变量 配置ANT_HOME=F:\java\apache-ant-1.10.7 path中添加:%ANT_HOME%\bin (3) 阅读全文
posted @ 2020-03-17 01:31 cao_xiaobo 阅读(977) 评论(0) 推荐(0) 编辑
摘要: 为了方便快速理解,我还是先不讲原理,直接示例开篇吧。 一、示例 1.定义一个Listener 实现了ApplicationListener 接口 @Component public class MyTestListener implements ApplicationListener{ @Overr 阅读全文
posted @ 2020-03-14 00:18 cao_xiaobo 阅读(369) 评论(0) 推荐(0) 编辑