JVM
走在路上_yun
程序猿
展开
-
对象引用及垃圾收集算法
垃圾收集当java实例对象使用过后,垃圾收集器会首先判断该对象是否还“存活”着,若不是,将被垃圾收集器所清理。1.判断一个对象实例是否“已死”其主要有两种算法:引用计数算法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器值减1;任何时刻计数器为0的对象就是不可用的对象,被回收。但java虚拟机并不是通过引用计数算法来判断对象是否存活。根搜索算法通过一系列名原创 2017-02-10 14:41:02 · 272 阅读 · 0 评论 -
虚拟机加载类的过程
类从被加载到内存开始,到卸载出内存为止,其整个生命周期: 加载,验证,准备,解析,初始化,使用,卸载 其中:验证,准备,解析三个阶段又统称为“连接”1.类加载的过程:包括:加载,验证,准备,解析和初始化等5个阶段。1.加载 1)通过一个类的全限定名来获取定义此类的二进制字节流。 2)强这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。 3)在堆中生成代表这个类的jav原创 2017-02-10 15:53:16 · 752 阅读 · 0 评论 -
类加载器
在类加载的过程中,实现加载步骤第一项:通过一个类的全限定名来获取此类的二进制字节流的代码块被称为“类加载器”站在java虚拟机的角度,只存在两种不同的类加载器:1.启动类加载器(Bootstrap ClassLoader)1.由C++实现,是虚拟机自身的一部分,无法被java程序直接调用。 2.负责加载 %JAVA_HOME%\lib目录中或被-Xbootclasspath参数所指定的路径,并且是原创 2017-02-10 16:20:38 · 245 阅读 · 0 评论 -
Tomcat 类加载器结构
1.同一个服务器上的两个web应用程序,其类库相互隔离(同一个类库不同版本相互隔离)。 2.同一个服务器上的两个web应用程序,所使用的java类库可以相互共享【避免方法区过度膨胀】(同一个类库相同版本可以共享)。 3.服务器所使用的类库与应用程序类库相互独立。 4.支持JSP应用的web服务器:都需要支持热替换(HoSwap)。weblogic不支持。Tomcat 中,在cat原创 2017-02-14 08:58:46 · 965 阅读 · 0 评论