在一个类编译完成之后,下一步就需要开始使用类,如果要使用一个类,肯定离不开JVM。在程序执行中JVM通过装载,链接,初始化这3个步骤完成。类的装载是通过类加载器完成的,加载器将.class文件的二进制文件装入JVM的方法区,并且在堆区创建描述这个类的java.lang.Class对象。用来封装数据。...
分类:
编程语言 时间:
2014-05-18 19:36:27
阅读次数:
350
java虚拟机规范规定的java虚拟机内存其实就是java虚拟机运行时数据区,其架构如下:
' v:shapes="_x0000_i1029">
其中方法区和堆是由所有线程共享的数据区。
Java虚拟机栈,本地方法栈和程序计数器是线程隔离的数据区。
Java官方定义:http://www.98ki.com/servlet/HomeServlet?method=get&id=53...
分类:
编程语言 时间:
2014-05-18 18:20:57
阅读次数:
420
转载自http://blog.csdn.net/cutesource/article/details/5906705JVM内存组成结构JVM栈由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示:1)堆所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新...
分类:
编程语言 时间:
2014-05-11 17:17:27
阅读次数:
275
第一章 内存分配
1. 内存区域。
方法区和堆(线程共享),程序计数器 , VM栈 和 本地方法栈(线程隔离)。
1) java虚拟机栈:线程私有。描述的是java方法执行的内存模型:栈帧,用户存储 局部变量表,操作数栈,动态链接,方法出口等信息。
局部变量表在编译时即可完全确定!如果线程请求的栈深度大于 规定的深度,StackOverflowErro...
分类:
其他好文 时间:
2014-05-10 04:47:01
阅读次数:
275
(一)java 静态代码块
静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的.
静态方法在类加载的时候 就已经加载 可以用类...
分类:
编程语言 时间:
2014-05-09 19:16:19
阅读次数:
295
1.1
方法区:方法区是系统分配的一个内存逻辑区域,是JVM在装载类文件时,用于存储类型信息的(类的描述信息)。方法区存放的信息包括:
1.1.1类的基本信息:每个类的全限定名每个类的直接超类的全限定名(可约束类型转换)该类是类还是接口该类型的访问修饰符直接超接口的全限定名的有序列表 ...
分类:
编程语言 时间:
2014-05-01 04:44:12
阅读次数:
363