一、类加载器原理
JVM将class文件字节码文件加载到内存中, 并将这些静态数据转换成方法区中的运行时数据结构,在堆中生成一个代表这个类的java.lang.Class
对象,作为方法区类数据的访问入口。
二、类缓存
标准的Java SE类加载器可以按要求查找类,但一旦某个类被加载到类加载器中,它将维持加载(缓存)一段时间。不过,JVM垃圾收集器可以回收这些Class过象。
三...
分类:
其他好文 时间:
2015-07-17 19:00:15
阅读次数:
124
了解类加载全过程,有助于了解JVM运行过程,以及更深入了解java动态性(解热部署,动态加载),提高程序灵活性。类加载全过程:JVM将class文件字节码文件加载到内存中,并对数据进行校验解析和初始化,最终形成可以直接使用的java类型的过程。
加载将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区中的运行时数据结构,在堆中生成一个代表这个类的java.lang.Class对象,...
分类:
其他好文 时间:
2015-07-16 20:11:28
阅读次数:
286
1.JVM内存模型2.JVM类加载机制 3.HDFS架构图 4.HDFS读写数据 5.Secondary NameNode 的意义所在6.MapReduce架构7.MapReduce过程7...
分类:
编程语言 时间:
2015-07-11 21:19:14
阅读次数:
187
众所周知,当访问一个类的变量或方法的时候,如果没有初始化该类,就会先去初始化一个类
但是,当这个类的变量为final的时候,就不一定了
请看下面的例子
package com.lala.shop;
import java.util.Random;
public class App
{
public static void main(String[] args...
分类:
其他好文 时间:
2015-06-27 16:35:32
阅读次数:
123
JVM全称是java Virtual Machine(java虚拟机),JVM屏蔽了与各个计算机平台相关的软件和硬件差异。
在接下来的日子里,通过写博客的形式学习JVM,让自己更懂得Java!
本系列文章是对《深入分析javaweb技术内幕》和《深入理解java虚拟机》的总结,欢迎大家一起吐槽,一起进步。
《JVM解读》第一篇:JVM体系结构
《JVM解读》第二篇:JVM类加载器ClassL...
分类:
编程语言 时间:
2015-06-26 23:49:48
阅读次数:
161
ClassLoader类加载器负责将类加载进入JVM中。
ClassLoader的作用
(1)加载class文件进入JVM
(2)审查每个类应该由谁加载,采用双亲委托机制
(3)将class字节码重新解析成JVM要求的对象格式
ClassLoader结构分析
protected final Class defineClass(byte[] b, int off, int len)thr...
分类:
其他好文 时间:
2015-06-26 19:51:48
阅读次数:
132
作为一个程序员,仅仅知道怎么用是远远不够的。起码,你需要知道为什么可以这么用,即我们所谓底层的东西。
那到底什么是底层呢?我觉得这不能一概而论。以我现在的知识水平而言:对于Web开发者,TCP/IP、HTTP等等协议可能就是底层;对于C、C++程序员,内存、指针等等可能就是底层的东西。那对于Java开发者,你的Java代码运行所在的JVM可能就是你所需要去了解、理解的东西。
我会在接下...
分类:
其他好文 时间:
2015-06-26 13:33:13
阅读次数:
160
学习自周志明老师的《深入理解Java虚拟机》第二版类的加载时机如上图所示: 类从被加载到虚拟机内存中开始,直到卸载出内存为止,它的整个生命周期包括了: 加载、验证、准备、解析、初始化、使用和卸载 这7个阶段。其中, 验证、准备和解析这三个部分统称为连接(linking) 。 其中,加载、验证、准.....
分类:
其他好文 时间:
2015-05-25 21:54:46
阅读次数:
97
总结下类加载机制相关的知识图谱。
类加载机制,包括三大步骤。
1.装载load 。目的是生成类加载实例id
2.链接 ,检测字节码格式以及内部调用匹配情况。静态变量初始化
3.初始化。主要是类加载器加载类的顺序。
对于自定义类加载,开发者完成自己的实现。
bootstrap负责rt.jar类加载,rt是java规范定义的接口与实现。
extension扩展jre中的jar。
s...
分类:
其他好文 时间:
2015-05-15 17:43:39
阅读次数:
168
JVM的类加载是通过ClassLoader及其子类来完成的,类的层次关系和加载顺序可以由下图来描述:1)Bootstrap ClassLoader /启动类加载器$JAVA_HOME中jre/lib/rt.jar里所有的class,由C++实现,不是ClassLoader子类2)Extension ...
分类:
编程语言 时间:
2015-05-09 13:13:07
阅读次数:
192