类加载器 1.1 类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。 加载 就是指将class文件读入内存,并为之创建一个Class对象。 任何类被使用时系统都会建立一个Class对象 连接 验证 是否有正确的内部结构,并和其他类 ...
分类:
编程语言 时间:
2019-04-03 23:53:14
阅读次数:
197
这个问题的核心是classloader 上图中 启动类加载器,扩展类加载器,应用程序类加载器是 jvm 自带的类加载器. comm catalina shared webapp 是tomcat 扩展的加载器,他们分别加载 /common/*、/server/*、/shared/* WebAppCla ...
分类:
移动开发 时间:
2019-04-03 22:16:33
阅读次数:
413
一、类和类加载器 a) 类加载器的作用:将class文件加载到JVM的方法区,并且在方法区中创建一个java.lang.Class对象作为外界访问这个类的接口。 b) 类和类加载器的关系:比较两个类是否相等,只有当这两个类由同一个类加载器加载才有意义;否则,即使同一个class文件被不同的类加载器加 ...
分类:
其他好文 时间:
2019-03-31 18:12:36
阅读次数:
153
勿在流沙筑高台,出来混迟早要还的。 做一个积极的人 编码、改bug、提升自己 我有一个乐园,面向编程,春暖花开! 上一篇分析了ClassLoader的类加载相关的核心源码,也简单介绍了ClassLoader的设计思想,读源码相对来说是比较枯燥的,还是这个是必须要走的过程,学习源码中的一些思想,一些精 ...
分类:
编程语言 时间:
2019-03-29 00:57:06
阅读次数:
161
勿在流沙筑高台,出来混迟早要还的。 做一个积极的人 编码、改bug、提升自己 我有一个乐园,面向编程,春暖花开! 上一篇介绍虚拟机类加载机制,讲解了类加载机制中的三个阶段,分别是:加载、连接(验证、准备、解析)、初始化 ,知道了类加载的机制。下面我们就要知道类到底是通过什么方式加载到内存中的,也就是 ...
分类:
编程语言 时间:
2019-03-26 01:19:52
阅读次数:
217
双亲委派模型工作过程是:如果一个类加载器收到类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器完成。每个类加载器都是如此,只有当父加载器在自己的搜索范围内找不到指定的类时(即ClassNotFoundException),子加载器才会尝试自己去加载。 从源码(jdk1.8) ...
分类:
其他好文 时间:
2019-03-22 16:53:05
阅读次数:
132
1、Spring AOP 的基本概述 AOP(Aspect Oriented Programing)面向切面编程,AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码(性能监视、事务管理、安全检查、缓存)。Spring AOP使用纯Java实现,不需要专门的编译过程和类加载器,在运行期通过代理方 ...
分类:
编程语言 时间:
2019-03-20 20:51:53
阅读次数:
159
垃圾收集 程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭;这几个区域的内存分配和回收都具备稳定性,不需要过多的考虑回收的问题。而Java堆和方法区则不一样。 Java堆中存储了几乎所有的对象实例,垃圾收集器进行对堆的回收之前,需要判断这些对象是否还存活 一。判断对象是否存活 判断对象 ...
分类:
编程语言 时间:
2019-03-16 16:53:16
阅读次数:
193
1、说到谈谈类加载器,不得不说就是类加载器的双亲委派机制。 不同的classloader加载类的方式和加载路径都不一样,各自管理自己的范围 这个过程就是在每种classload中找出是否已经加载过将要加载的类。逐个检查,找到已加载过的就返回。这个过程,明显是用递归去实现。 为什么要使用双亲委派机制去 ...
分类:
其他好文 时间:
2019-03-15 17:13:08
阅读次数:
164
https://cloud.tencent.com/developer/ask/28683 getResourceAsStream()通过classname的类加载器加载文件。如果类来自JAR文件,那么就会从JAR文件中加载资源。 FileInputStream用于从文件系统读取文件。 https: ...
分类:
其他好文 时间:
2019-03-13 15:00:18
阅读次数:
181