虚拟机执行子系统 一、类文件结构 1.魔数和class版本 1.magic-魔数:0xCAFEBABE;4字节 2.minor_version:次版本,丶之后的数字;2字节 3.major_version:主版本,丶之前的数字;2字节 2.常量池 1.constant_pool_count:常量池常 ...
分类:
编程语言 时间:
2017-08-11 22:04:33
阅读次数:
272
1、运行时数据区域划分 2、程序计数器 作用:可以看做是当前线程所执行的字节码的行号指示器。 解释:字节码指示器就是通过改变程序计数器的值来指定下一条需要执行的指令。分支,循环等 基础功能就是依赖程序计数器来完成的。 说明:由于java虚拟机的多线程是通过轮流切换并分配处理器执行时间来完成,一个处理 ...
分类:
编程语言 时间:
2017-08-11 21:12:10
阅读次数:
260
Java虚拟机全称:java virtual machine;是Java开发语言中,用来运行Java字节码文件的平台;通俗的讲,就是一个程序。它提供对Java字节码的解释及运行,从而使Java语言能独立于各个系统平台。Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区 ...
分类:
编程语言 时间:
2017-08-11 19:00:10
阅读次数:
165
JVM栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;JVM堆解决的是数据存储的问题,即数据怎么放、放在哪儿,另外JVM堆中存的是对象。JVM栈中存的是基本数据类型和JVM堆中对象的引用。 JVM基础概念:JVM堆与JVM栈 数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用 ...
分类:
其他好文 时间:
2017-08-11 17:24:57
阅读次数:
271
1、程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器都只会执行一条线程中的指令。为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计 ...
分类:
编程语言 时间:
2017-08-11 10:46:46
阅读次数:
231
1. 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 J ...
分类:
其他好文 时间:
2017-08-10 22:30:18
阅读次数:
149
深入理解Java虚拟机1 走进Java2 Java内存区域与内存溢出异常3 垃圾收集器与内存分配策略4 虚拟机性能监控与故障处理工具5 调优案例分析和实战6 类文件结构7 虚拟机类加载机制8 虚拟机字节码执行引擎9 类加载及执行子系统的案例与实战10 早期编译期优化11 晚期运行期优化12 Java ...
分类:
移动开发 时间:
2017-08-10 22:21:44
阅读次数:
140
1.什么是类加载把描述类的数据从class(这里的class不仅仅只class文件,任何方式都可以,比如说jar包,反射等)文件加载到内存,并对数据进行校验,转换解析和初始换,最终形成可以被虚拟机直接说使用的java类型。2.java虚拟机中类加载的全过程加载(这个加载指的是类加载的一..
分类:
其他好文 时间:
2017-08-10 18:10:36
阅读次数:
133
Android技术总结2Java部分 Java虚拟机jvm分区,GC(基本上后续所有地方面试都问了,基础中的基础)虚拟机栈 线程私有 描述Java方法执行的内存模型 每个方法在执行的同时都会创建一个栈帧 用于存储局部变量表、操作数栈、动态链接、方法出口等信息每一个方法从调用直至执行完成的过程,就对应 ...
分类:
移动开发 时间:
2017-08-10 17:04:58
阅读次数:
158
1、java内存模型:java代码是运行在java虚拟机之上的,由java虚拟机通过解释执行(解释器)或编译执行(即时编译器)来完成。故java内存模型也就是指java虚拟机的运行时模型。 从图中可知,内存分为两类:共享数据区和线程私有。 (1)线程私有区 a、程序计数器:一块较小的内存空间,可以看 ...
分类:
编程语言 时间:
2017-08-10 16:56:27
阅读次数:
134