一、什么是类的加载
类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。
类加载器并不需要等到某个类被“首...
分类:
编程语言 时间:
2016-06-24 15:40:46
阅读次数:
213
1. JVM运行时内存结构
1.由如下图构成。Runtime Data Area有如下几个区,其中PC程序计数器、虚拟机栈和本地方法栈是线程独享的,堆和方法区是线程共享的。Classload用来加载class文件,执行引擎用来执行程序,本地方法接口调用本地方法库。
2.java stack比较简单,每一个都是一个栈帧,每个栈帧由三部分构成。局部变量区、操作数区和帧数据区。局部变量是...
分类:
编程语言 时间:
2016-06-17 11:13:23
阅读次数:
227
JVM学习笔记之JVM内存管理和JVM垃圾回收的概念,JVM内存结构由堆、栈、本地方法栈、方法区等部分组成,另外JVM分别对新生代下载地址 和旧生代采用不同的垃圾回收机制。 首先来看一下JVM内存结构,它是由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示。 JVM学习笔记 JVM内存管理和JV ...
分类:
编程语言 时间:
2016-06-17 11:06:11
阅读次数:
387
JDK:java开发工具包 JRE:java运行环境 java毕向东 1~4日:path(exe路径);classpath(class运行文件路径) java内存分5区:栈(存变量;变量生命周期完自动释放)、堆(存实例;未被引用的实例被垃圾回收)、方法区、本地方法区、寄存器。 5~6日:javado ...
分类:
其他好文 时间:
2016-06-14 13:58:23
阅读次数:
133
static一般用来修饰成员变量或函数,称为类变量和类方法,类变量存储在方法区。 static一般不能修饰类,但是可以修饰内部类,被修饰的内部类可以直接作为一个普通类来用,不需要创建一个外部类的实例,而普通内部类的引用需要创建一个外部类的实例。 ...
分类:
其他好文 时间:
2016-06-14 01:09:23
阅读次数:
232
类的加载过程指通过一个类的全限定名来获取描述此类的二进制字节流,并将其转化为方法区的数据结构,进而生成一个java.lang.Class对象作为方法区这个类各种数据访问的入口。这个过程通过Java中的类加载器(ClassLoader)来完成。 类装载器是用来把类(class)装载进JVM的。JVM规 ...
分类:
编程语言 时间:
2016-06-13 22:12:31
阅读次数:
369
静态:statcic 用法 : 是一个修饰符,用于修饰成员(成员变量,成员函数) 当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用。。类名.静态成员 static定义的成员变量和类方法都放在 方法区(共有的都放在这,对象的方法也放在这)里(方法区,有称共享区,数据区 ...
分类:
其他好文 时间:
2016-06-12 20:14:08
阅读次数:
146
上一章我们讲到,一个类加载到内存里我们可以操作的部分只有两个,一个是加载部分一个是static{},我相信static{}不用多讲了。
接下来我们就来解析一下ClassLoader即类加载器,他就是用来加载字节码到方法区的类。
当年出现ClassLoader这个东西动态加载类的字节码主要还是为了满足JavaApplet的需求。虽然后来JavaApplet挂掉了,但是ClassLoader这个形...
分类:
其他好文 时间:
2016-06-12 15:28:00
阅读次数:
157
【深入Java虚拟机】之:Java内存区域与内存溢出 内存区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。下面详细阐述各数据区所存 ...
分类:
编程语言 时间:
2016-06-09 13:27:51
阅读次数:
241
点击进入_更多_Java千百问1、运行时常量池是什么运行时常量池(Runtime Constant Pool),它是方法区的一部分。Class文件中除了有类的版本、字段、方法、接口等描述等信息外,还有一项信息是常量池(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后存放到常量池中。了解java内存管理看这里:jvm是如何管理内存的
如图:...
分类:
编程语言 时间:
2016-06-09 08:36:24
阅读次数:
203