1. Heap设定与垃圾回收 Java 内存分为3个区,Young,Old和Permanent。Young保存刚实例化的对象。当该区被填满时,GC会将对象移到Old区。 通常把前两个区域叫做堆区(Heap),Permanent区则负责保存反射对象,Class的m...
分类:
其他好文 时间:
2014-10-15 19:37:32
阅读次数:
201
内存区域 Java虚拟机在执行Java程序的过程中会把他所管理的内存划分为若干个不同的数据区域。Java虚拟机规范将JVM所管理的内存分为以下几个运行时数据区:程序计数器、Java虚拟机栈、本地方法栈、Ja...
分类:
编程语言 时间:
2014-10-15 13:58:11
阅读次数:
217
在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,从而降低了Java程序员的学习难度,避免了像C/C++直接操作内存的危险。但是,也正因为内存管理完全由JVM负责,所以也使Java很多程序员不在关心内存分配,导致很多程序低效,耗内...
分类:
编程语言 时间:
2014-10-14 18:25:19
阅读次数:
290
转至:http://blog.csdn.net/ithomer/article/details/6252552一个优秀Java程序员,必须了解Java内存模型、GC工作原理,以及如何优化GC的性能、与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理...
分类:
编程语言 时间:
2014-10-14 00:33:07
阅读次数:
444
内存模型 (memory model)内存模型描述的是程序中各变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存取出变量这样的低层细节.不同平台间的处理器架构将直接影响内存模型的结构.在C或C++中, 可以利用不同操作平台下的内存模型来编写并发程序. 但是, ...
分类:
编程语言 时间:
2014-10-13 23:26:47
阅读次数:
292
运行mvn命令实际上是执行了Java命令,既然是运行Java,那么运行Java命令可用的参数当然也应该在运行mvn命令时可用。这个时候,MAVEN_OPTS环境变量就能派上用场。 通常需要设置MAVEN_OPTS的值为-Xms128m –Xmx512m, 因为Java默认的最大可用内存往往不能够满足...
分类:
其他好文 时间:
2014-10-10 23:16:24
阅读次数:
295
在继续了解Java内存模型之前,最好先理解Java对象的内存表示。在网上搜了下Java对象内存表示,说得都不够系统和到位。之前看了《Hotspot实战》一书,对JVM如何表示对象这块说得挺好,推荐一下。如果不理解JVM运行时的各种内存区域以及Java调用的过程,那么把Java内存模型理解到位。这个是一个比较大的主题,以后会陆续写一些JVM相关的。这里单把Java对象的内存拿出来聊聊,文中内容都基于...
分类:
编程语言 时间:
2014-10-10 17:01:34
阅读次数:
1965
Tomcat本身不能直接在计算机上运行,需要依赖于操作系统和一个JAVA虚拟机。JAVA程序启动时JVM会分配一个初始内存和最大内存给APP。当APP需要的内存超出内存的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。一、常见的Java内存溢出有以下三种:1.java.lang.OutOfMemor..
分类:
系统相关 时间:
2014-10-10 01:06:14
阅读次数:
222
一、内存溢出类型 1、java.lang.OutOfMemoryError: PermGen space JVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。它 和堆不...
分类:
编程语言 时间:
2014-10-09 17:34:18
阅读次数:
203
Java的并发编程是依赖虚拟机内存模型的三个特性实现的:(1).原子性(Atomicity):原子性是指不可再分的最小操作指令,即单条机器指令,原子性操作任意时刻只能有一个线程,因此是线程安全的。Java内存模型中通过read、load、assign、use、store和write这6个操作保证变量...
分类:
编程语言 时间:
2014-10-09 16:31:07
阅读次数:
247