1.系统默认三个类加载器,每个加载器是负责加载特定位置的类,本身也要被类加载器BootStrap加载 BootStrap ExtClassLoader AppClassLoader 2.Java虚拟机中所有类加载器采用具有父子关系的树形结构进行组织,在实例化每隔类加载器对象时, ...
分类:
其他好文 时间:
2015-03-17 23:14:00
阅读次数:
132
类的生命周期:
在一个类编译完成之后,下一步就需要开始使用类,如果要使用一个类,肯定离不开JVM。在程序执行中JVM通过装载,链接,初始化这3个步骤完成。
类的装载是通过类加载器完成的,加载器将.class文件的二进制文件装入JVM的方法区,并且在堆区创建描述这个类的java.lang.Class对象。用来封装数据。 但是同一个类只会被类装载器装载以前
链接就是把二进制数据组装为可以运行的状...
分类:
编程语言 时间:
2015-03-17 12:25:16
阅读次数:
222
Q:刚才我参加了面试,面试官问我如何写出会发生内存泄露的Java代码。这个问题我一点思路都没有,好囧。A1:通过以下步骤可以很容易产生内存泄露(程序代码不能访问到某些对象,但是它们仍然保存在内存中):应用程序创建一个长时间运行的线程(或者使用线程池,会更快地发生内存泄露)。线程通过某个类加载器(可以...
分类:
编程语言 时间:
2015-03-14 21:21:42
阅读次数:
245
ClassLoader类加载器 常见的类加载器有BootStrapClassLoader<-ExtClassLoader<-AppClassLoader<-用户ClassLoaderBootStrapClassLoader:加载Java自带的核心类;ExtClassLoader加载在/jre/li....
分类:
其他好文 时间:
2015-03-14 16:39:51
阅读次数:
97
java读取src目录下的文件,有几种方法
方法一:
Thread.currentThread().getContextClassLoader().getResourceAsStream(""); //当前线程的类加载器 同一线程不太稳定
方法二:
this.getClass().getResource("/"+path).toURI().getPath();//不会出...
分类:
编程语言 时间:
2015-03-12 15:12:10
阅读次数:
218
听上去很高端,其实一般自定义类加载器不需要用户去实现解析的过程,只要负责实现获取类对应的.class字节流部分就ok了,摘录深入理解Java虚拟机的一段话虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何...
分类:
编程语言 时间:
2015-03-08 21:22:11
阅读次数:
154
一、类加载器
类加载器用于加载Java的字节代码到Java虚拟机中,同时将配置文件等放在classpath目录下。
类加载器读取Java字节码文件并转换成Java.lang.Class类的一个实例,通过该实例的newInstance()方法可以创建该类对象(相当于调用空参数的构造方法)。基本上所有的类加载器都是 java.lang.ClassLoader类的一个实例。
ClassLoader...
分类:
其他好文 时间:
2015-03-08 20:14:33
阅读次数:
338
Java类加载器的作用就是在运行时加载类。Java类加载器基于三个机制:委托、可见性和单一性。委托机制是指将加载一个类的请求交给父类加载器,如果这个父类加载器不能够找到或者加载这个类,那么再加载它。可见性的...
分类:
其他好文 时间:
2015-03-07 08:35:30
阅读次数:
143
1.类加载器 类加载器是当程序运行时要使用某个类,则类加载器就加该类的字节码加载到内存里执行。 Java虚拟机可以安装多个类加载器,系统默认三个主要的类加载器,每个类加载器负责加载不同位置的类 Bootstrap,ExtClassLoader,AppClassLoader。有的类加载器也是Java类...
分类:
编程语言 时间:
2015-03-03 21:59:31
阅读次数:
158
累加载的生命周期:加载、验证、准备、解析、初始化、使用、卸载七个阶段,其中解析很可能在初始化之后(动态绑定),验证、准备和解析统称连接。大部分java程序(程序=数据+算法)都会使用以下三种系统提供的类加载器:启动类加载器:加载lib目录的类库和-Xbootclasspath参数..
分类:
其他好文 时间:
2015-02-28 18:54:30
阅读次数:
114