一:Java技术体系模块图二:JVM内存区域模型1.方法区也称"永久代” 、“非堆”, 它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法区的大小。运行时常...
分类:
编程语言 时间:
2015-07-23 17:34:53
阅读次数:
139
分几个帖子 跟大家一起学习一下内存分析的方法。这次先来聊聊为什么会发生内存泄漏:我们知道JVM根据generation(代)来进行GC,一共被分为young generation(年轻代)、tenured generation(老年代)、permanent generation(永久代, perm ...
分类:
其他好文 时间:
2015-07-22 12:51:20
阅读次数:
112
JVM内存区域模型
1.方法区
也称"永久代” 、“非堆”, 它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法区的大小。
运行时常量池:是方法区的一部分,Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常...
分类:
编程语言 时间:
2015-07-12 23:21:22
阅读次数:
268
假设你要观察JVM进程消耗的堆内存,通过命令工具jmap或可视化工具jvisualvm.exe。JVM这些参数的默认启动值。假设你想知道JVM内存分配策略,最开始手动设置这些参数。通过JDK统计结果,进行对照,就比較easy理解这些内存分配的理论知识。执行环境是win7 32位操作系统,JDK1.7...
分类:
其他好文 时间:
2015-07-12 20:19:37
阅读次数:
314
方法区永久代,共享。类信息,常量,static变量,JIT编译后的代码。运行时常量池:字面量,符号引用。堆所有对象(新生代,老年代)虚拟机栈线程私有。表示方法执行的内存模型。【局部变量表】本地方法栈程序计数器字节码行号。线程私有。【Objectobj=newObject();】——Objectobj...
分类:
其他好文 时间:
2015-07-08 22:13:07
阅读次数:
138
Class,Method,Field间接调用引入方法。java.lang.invoke包,方法句柄,反射的现代化,去掉套路化代码。【MethodHandler】保存类信息的永久代内存:方法区。方法句柄适用于任何方法签名,而Callable接口只用于无参方法。【MethodType】方法签名类型,不可...
分类:
其他好文 时间:
2015-07-03 23:17:08
阅读次数:
226
项目中遇到的JVM难点——启动OSGi容器时,出现永久代内存不够。内存泄露——OSGi找不到类路径问题。——线程死锁问题。问题一:OSGi类内存问题 其次,从内存用量来看,OSGi允许不同版本的Package同时存在,这是个优点,但是客观上会占用更多内存。例如,一个库可能需要 ASM 3.0,而同....
分类:
其他好文 时间:
2015-07-02 00:52:26
阅读次数:
226
Java GC(garbage collec,垃圾收集,回收)GC是对JVM中的内存进行标记和回收,Sun公司的JDK用的虚拟机都是HotSpot对象化的实例是放在heap堆内存中的,这里讲的分代收集也是指对堆内存的回收GC的分代收集分为:年轻代、老年代、永久代。(方法区是被当做永久代的,不过JDK...
分类:
编程语言 时间:
2015-06-12 06:22:16
阅读次数:
412
/*** 测试使用jdk8中是否仍然可以使用永久代* jvm options* -Xms20m -Xmx20m -Xmn10m -XX:PermSize=10m -XX:MaxPermSize=10m -XX:+PrintGCDetails** 结果运行提示:* Java HotSpot(TM) C...
分类:
其他好文 时间:
2015-06-01 18:23:42
阅读次数:
407
分几个帖子 跟大家一起学习一下内存分析的方法。这次先来聊聊为什么会发生内存泄漏:我们知道JVM根据generation(代)来进行GC,一共被分为young generation(年轻代)、tenured generation(老年代)、permanent generation(永久代, perm ...
分类:
其他好文 时间:
2015-05-20 21:56:39
阅读次数:
156