java虚拟机
文章平均质量分 79
lidaweihgy
这个作者很懒,什么都没留下…
展开
-
2.垃圾收集器与内存分配策略
当要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。 在上一节谈到的几个JAVA内存区域中,其中程序计数器、虚拟机栈、本地方法栈三个区域随线程而生,随线程而灭。每个栈桢分配多少内存,在类结构确定下来后就已知的,因此这几个区域的内存分配和回收都具备确定性,所以这几个区别不需要过多考虑回收的问题,因为方法结束或线程转载 2012-06-13 16:39:17 · 986 阅读 · 0 评论 -
6.虚拟机字节码执行引擎
执行引擎在执行JAVA代码的时候可以选择解释执行(通过解释器执行)和编译执行(通过即使编译器产生本地代码执行)两种选择。 栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。每一个方法调用的过程,就对应着一个栈帧转载 2012-06-13 17:26:49 · 1296 阅读 · 0 评论 -
1.JAVA内存区域与内存溢出异常
1,运行时数据区域 根据JAVA虚拟机规范的规定:JAVA虚拟机所管理的内存将会包括以下几个运行时数据区域 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器,通过改变计数器的值来选取下一条需要执行的字节码指令、分支、循环、跳转、异常处理、线程恢复等基础功能。每条线程都需要一个独立的程序计数器,各条线程之转载 2012-06-13 16:08:12 · 393 阅读 · 0 评论 -
4.类文件结构
Class文件是一组以8位字节为基础单位的二进制流,各数据项严格按顺序排列其中,中间没有添加任何分隔符. 根据JAVA虚拟机规范的规定,CLASS文件格式采用一种类似C语言结构体的伪结构来存储,这种伪结构中只有两种数据类型:无符号数和表。 无符号数属于基本的数据类型,以u1,u2,u4,u8来分别表示一个字节,两个字节,四个字节和8个字节的无符号数,无符号数用来描述数字,索引引用,数量值或按转载 2012-06-13 17:15:40 · 300 阅读 · 0 评论 -
3.虚拟机性能监控和故障处理工具
给一个系统问题定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里说的数据包括:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore)、堆转储快照(headdump/hprof)等。经常使用适当的虚拟机监控和分析的工具可以加快我们分析数据和定位解决问题的速度。 JDK的命令行工具 jdk的命令行工具都放置在jdk/bin目录下转载 2012-06-13 16:56:15 · 401 阅读 · 0 评论 -
5.虚拟机类加载机制
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的JAVA类型,这就是虚拟机的类加载机制。 类加载的生命周期包括:加载Loading,验证Verification, 准备Preparation,解析Resolution, 初始化Initialization,使用Using和卸载Unloading. 除解析阶段外,其他几个阶段的转载 2012-06-13 17:12:12 · 523 阅读 · 1 评论