P14

  JVM垃圾回收 文档

JAVA与c,C++有很大的不同就是JAVA语言开发者不需要关注内存信息,不会显式的直接操作内存,而是通过JVM虚拟机来实现。

hdb1990 2016-07-13   639   0
JVM   Java开发   Java  
P7

  JVM学习笔记 - JVM实现机理 文档

摘要:JVM作为Java的核心技术,很多朋友想必也有研究。一直都在关注JVM方面的技术,以前看过一些书籍和网上的资料,自己也发了些Blog文章,不过还是没有彻底的了解JVM机制,最近有时间研究了研究,特此写下一篇文章并结合笔者多年实践以揭露JVM实现机理。

卢翠萍 2011-12-28   7454   0
JVM   Java开发  
P6

  JVM工具、参数调优&调试技巧 文档

jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。以下详细介绍各个参数的意义。 jstat -class pid:显示加载class的数量,及所占空间等信息。

polaris 2011-11-12   5074   0
JVM   Java开发  
P74

  JVM 虚拟机详解 文档

深入理解JVM1说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。

seixion 2011-11-08   4537   0
JVM   Java开发  
P19

  基于JVM的异常诊断和性能调优 文档

以前我作为java 开发人员,用的都是sun 的JVM (这也是当今最好用的虚拟机),由于垃圾收集的工作都是交给JVM 做,只要编码的时候注意不要在静态的集合对象中只添加对象,而不删除对象的情况发生,就可以避免内存泄漏,所以自己从没有认真考虑过要将GC 好好学习一下;然而实际的工作表明,不深入的学习GC 的原理,很难解决生产中的问题。 学习开始从理解JVM 的GC 工作原理入手。垃圾收集的过程主要分三个步骤:标记(mark ),清除(sweep ),整理(compact )。标记过程就是看看在JVM 堆中有哪些对象还有用,哪些对象不用了,有用的对象就作个标记,不用的对象就不作标记;对未作标记的对象(即不用的对象)就作第二步清除;当清除完以后,由于有用的对象此时是分散的分布在JVM 堆中,JVM 堆就会有许多堆碎片,因而需要做第三步整理;整理(也有人翻译成“压缩”,实际上最准确的翻译是“使紧凑”)就是将散放在JVM 堆中的有用对象移动到堆底部,削除堆碎片。

justdo2008 2011-08-04   716   0
JVM   Java开发  
P14

  JVM内存模型以及垃圾收集策略解析 文档

Java栈是与每一个线程关联的,JVM在创建每一个线程的时候,会分配一定的栈空间给线程。它主要用来存储线程执行过程中的局部变量,方法的返回值,以及方法调用上下文。栈空间随着线程的终止而释放。StackOverflowError:如果在线程执行的过程中,栈空间不够用,那么JVM就会抛出此异常,这种情况一般是死递归造成的。

buru 2011-07-29   4618   0
Java开发   JVM  
P99

  JVM内存问题最佳实践 文档

选择合适的Java虚拟机, Java内存管理的基本概念,GC次数过多消耗时间过长的原因和症状 内存不足和内存泄漏错误的原因和症状, 诊断、定位和解决内存不足和内存泄漏错误, 使用分析工具解决内存不足和内存泄漏错误, 预防内存不足和内存泄漏, OutOfMemory错误实例。

huafenged 2011-07-06   6014   0
P9

  Java内存堆和栈深入 文档

Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。

xyfwjk 2011-07-04   376   0
JVM   Java开发   Java  
P74

  深入理解JVM 文档

Java技术与Java虚拟机说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:图1  Java四个方面的关系运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件)。最后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码执行。从上图也可以看出Java平台由Java虚拟机和Java应用程序接口搭建,Java语言则是进入这个平台的通道,用Java语言编写并编译的程序可以运行在这个平台上。这个平台的结构如下图所示:在Java平台的结构中,可以看出,Java虚拟机(JVM)处在核心的位置,是程序与底层操作系统和硬件无关的关键。它的下方是移植接口,移植接口由两部分组成:适配器和Java操作系统,其中依赖于平台的部分称为适配器;JVM通过移植接口在具体的平台和操作系统上实现;在JVM的上方是Java的基本类库和扩展类库以及它们的API,利用JavaAPI编写的应用程序(application)和小程序(Javaapplet)可以在任何Java平台上运行而无需考虑底层平台,就是因为有Java虚拟机(JVM)实现了程序与操作系统的分离,从而实现了Java的平台无关性。那么到底什么是Java虚拟机(JVM)呢?通常我们谈论JVM时,我们的意思可能是:对JVM规范的的比较抽象的说明;对JVM的具体实现;在程序运行期间所生成的一个JVM实例。对JVM规范的的抽象说明是一些概念的集合,它们已经在书《TheJavaVirtualMachineSpecification》(《Java虚拟机规范》)中被详细地描述了;对JVM的具体实现要么是软件,要么是软件和硬件的组合,它已经被许多生产厂商所实现,并存在于多种平台之上;运行Java程序的任务由JVM的运行期实例单个承担。在本文中我们所讨论的Java虚拟机(JVM)主要针对第三种情况而言。它可以被看成一个想象中的机器,在实际的计算机上通过软件模拟来实现,有自己想象中的硬件,如处理器、堆栈、寄存器等,还有自己相应的指令系统。JVM在它的生存周期中有一个明确的任务,那就是运行Java程序,因此当Java程序启动的时候,就产生JVM的一个实例;当程序运行结束的时候,该实例也跟着消失了。下面我们从JVM的体系结构和它的运行过程这两个方面来对它进行比较深入的研究。

myth369 2011-06-07   432   0
JVM   Java开发  
P51

  Java内存模型 文档

Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉害很多,该语言针对多种异构平台的平台独立性而使用的多线程技术支持也是具有开拓性的一面,有时候在开发Java同步和线程安全要求很严格的程序时,往往容易混淆的一个概念就是内存模型。究竟什么是内存模型?内存模型描述了程序中各个变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存中取出变量这样的底层细节,对象最终是存储在内存里面的,这点没有错,但是编译器、运行库、处理器或者系统缓存可以有特权在变量指定内存位置存储或者取出变量的值。【JMM】(JavaMemoryModel的缩写)允许编译器和缓存以数据在处理器特定的缓存(或寄存器)和主存之间移动的次序拥有重要的特权,除非程序员使用了final或synchronized明确请求了某些可见性的保证。

jnie007 2011-01-04   6127   0

关键词

最新上传

热门文档