java对象在访问的时候,我们需要通过java虚拟机栈的reference类型的数据去操作具体的对象。由于reference类型在java虚拟机规范中只规定了一个对象的引用,并没有定义这个这个引用应该通过那种方式去定位、访问java堆中的具体对象实例,所以一般的访问方式也是取决与java虚拟机的类型。目前主流的访问方式有通过句柄和直接指针两种方式。1.句柄访问
使用句柄访问方式,java堆将会划分...
分类:
编程语言 时间:
2016-08-08 14:38:23
阅读次数:
186
1.java虚拟机内存模型 1.程序计数器器:很小的一块内存空间,在java中线程是通过抢度的模式来使用cpu的内存空间的,因此每个线程都有一个独立的程序计数器空间,用来记录下一条要运行的指令操作,各个线程互不影响,存放的是指令的字节码的地址,如果是native方法的话,则计数器为空 2.java虚 ...
分类:
其他好文 时间:
2016-08-08 14:15:29
阅读次数:
122
看到这个题目,很多人会觉得我写我的java代码,至于类,JVM爱怎么加载就怎么加载,博主有很长一段时间也是这么认为的。随着编程经验的日积月累,越来越感觉到了解虚拟机相关要领的重要性。闲话不多说,老规矩,先来一段代码吊吊胃口。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 ...
分类:
编程语言 时间:
2016-08-07 20:11:16
阅读次数:
228
public static void main(String[] args)【String args[]】也对 1)public :公共的权限最大,在任何情况下都可以访问。 原因:为了保证java虚拟机在任何情况下都可以访问到main方法。 2)static:静态。静态可以让java虚拟机调用函数的 ...
分类:
编程语言 时间:
2016-08-07 19:57:15
阅读次数:
210
程序计数器(Program Counter Register):是一块较少的内存空间(线程私有的),它可以看作是当前线程所指向的字节码的行号指示器。 Java虚拟机栈(Java Virtual Machine Stacks):与程序计数器一样,它也是线程私有的,它的生命周期与线程相同。虚拟机栈描述的 ...
分类:
其他好文 时间:
2016-08-07 18:41:32
阅读次数:
141
本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。 进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Ja ...
分类:
编程语言 时间:
2016-08-07 15:29:16
阅读次数:
192
简介 Java虚拟机(JVM)是Java应用的运行环境,从一般意义上来讲,JVM是通过规范来定义的一个虚拟的计算机,被设计用来解释执行从Java源码编译而来的字节码。更通俗地说,JVM是指对这个规范的具体实现。这种实现基于严格的指令集和全面的内存模型。另外,JVM也通常被形容为对软件运行时环境的实现 ...
分类:
其他好文 时间:
2016-08-07 13:50:13
阅读次数:
194
Java虚拟机JVM学习04 类的初始化 类的初始化 在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值。 在程序中,静态变量的初始化有两种途径: 1.在静态变量的声明处进行初始化; 2.在静态代码块中进行初始化。 没有经过显式初始化的静态变量将原有的值。 静态变量的声明语句, ...
分类:
编程语言 时间:
2016-08-05 19:45:19
阅读次数:
241
Java虚拟机JVM学习05 类加载器的父委托机制 类加载器 类加载器用来把类加载到Java虚拟机中。 类加载器的类型 有两种类型的类加载器: 1.JVM自带的加载器: 根类加载器(Bootstrap) 扩展类加载器(Extension) 系统类加载器(System) 2.用户自定义的类加载器: j ...
分类:
编程语言 时间:
2016-08-05 19:33:18
阅读次数:
140
初级部分 1,java相关定义 1,JVM,JRE,JDK各是什么含义?之间的关系? 解答: JVM:指java虚拟机,顾名思义就是模拟出来的东西。它的实现具体有,指令集、寄存器、组件文件格式、 栈、垃圾收集、堆内存区。可以把它理解为专门用来执行java程序的机器,也就是说JVM提供了java 执行 ...
分类:
编程语言 时间:
2016-08-03 23:51:22
阅读次数:
319