共 9 篇文章 |
|
虽然定义了上面这几个类加载器,但在加载时类加载器会审查一个class类应该由哪个类型的加载器负责加载,它使用的是等级加载机制,是一种双亲委派模型。在收到一个类加载请求时,当前默认的类加载器它不会首先自己来加载这个类,它会委托给自己的父类加载器去加载,父类加载器再委托给父父类加载器,以此类推,直到顶层类加载器,由上到下加载,... 阅7 转0 评0 公众公开 20-05-01 16:06 |
解密Java内存溢出之持久代。类加载是定位,寻找,加载class文件和解析class文件结构的过程。类加载器负责确保加载正确的class文件。Java程序里面每一个class文件需要被同一个类加载加载。当Java虚拟机需要加载定义的一个新class,但是在持久代中没有足够的空间就会抛出‘Java.Lang.OutOfMemoryError: PermGen Space’异常。-XX:MaxPermSize=128... 阅344 转2 评0 公众公开 20-03-20 15:32 |
GC 分为两种:Minor GC、Full GC ( 或称为 Major GC )。对象在Eden Space创建,当Eden Space满了的时候,gc就把所有在Eden Space中的对象扫描一次,把所有有效的对象复制到第一个Survivor Space,同时把无效的对象所占用的空间释放。当Eden Space再次变满了的时候,就启动移动程序把Eden Space中有效的对象复制到第二个Survivor Space,同时,... 阅163 转0 评0 公众公开 20-03-20 14:56 |
java内存模型JMM理解整理什么是JMM.JVM在设计时候考虑到,如果JAVA线程每次读取和写入变量都直接操作主内存,对性能影响比较大,所以每条线程拥有各自的工作内存,工作内存中的变量是主内存中的一份拷贝,线程对变量的读取和写入,直接在工作内存中操作,而不能直接去操作主内存中的变量。可见性:每个工作线程都有自己的工作内存,所以当某个... 阅26 转0 评0 公众公开 20-02-18 17:29 |
Bootstrap类加载器 会先看看rt.jar中有没有这个类,因为并没有这个类,所以这个请求由回到Extension类加载器,它会查看jre/lib/ext目录下有没有这 个类,如果这个类被Extension类加载器找到了,那么它将被加载,而Application类加载器不会加载这个类;可见性的原理是子类的加载器可以看见所有的父类加载器加载的类,而父类加载器看不到子类加载... 阅95 转0 评0 公众公开 19-03-11 17:37 |
类装载方式,有两种 1.隐式装载, 程序在运行过程中当碰到通过new 等方式生成对象时,隐式调用类装载器加载对应的类到jvm中, 2.显式装载, 通过class.forname()等方法,显式加载需要的类 隐式加载与显式加载的区别:两者本质是一样?Java类的加载是动态的,它并不会一次性将所有类全部加载后再运行,而是保证程序运行的基... 阅30 转0 评0 公众公开 19-03-11 17:36 |
JVM运行原理详解1.JVM简析: 作为一名Java使用者,掌握JVM的体系结构也是很有必要的。在JVM 的上方是Java的基本类库和扩展类库以及它们的API, 利用Java API编写的应用程序(application) 和小程序(Java applet) 可以在任何Java平台上运行而无需考虑底层平台, 就是因为有Java虚拟机(JVM)实现了程序与操作系统的分离,从而实现了Java 的平台... 阅15 转0 评0 公众公开 18-10-07 16:20 |