public class TestJVM {

    // 运行时数据区【方法区、堆、程序计数器、虚拟机栈、本地方法栈】
private static int _1M = 1024 * 1024; public static void main(String[] args) {
byte[] alloc1, alloc2, alloc3, alloc4, alloc5, alloc6, alloc7, alloc8;
alloc1 = new byte[1 * _1M];
alloc2 = new byte[2 * _1M];
alloc3 = new byte[3 * _1M];
alloc4 = new byte[4 * _1M];
alloc5 = new byte[5 * _1M];
alloc6 = new byte[6 * _1M]; alloc2 = null;
alloc7 = new byte[7 * _1M]; } // 命令1:
// -verbose:gc -Xms30M -Xmx30M -Xmn10M -XX:+PrintGCDetails
// -XX:SurvivorRatio=8 -XX:+HeapDumpOnOutOfMemoryError // 命令2:
// -verbose:gc -Xms30M -Xmx30M -XX:+PrintGCDetails
// -XX:NewRatio=2 -XX:SurvivorRatio=8 -XX:+HeapDumpOnOutOfMemoryError // -verbose:gc 打印垃圾收集器的执行日志
// -Xms30M 最小堆的大小
// -Xmx30M 最大堆的大小
// -Xmn10M 年轻代大小
// -XX:NewRatio=2 JVM堆中的新生代与老年代的大小比例为1:2
// -XX:SurvivorRatio=8 设置Eden与Survivor的大小比例,默认8:1 // 根据以上参数得知改程序的虚拟机堆大小为30M,年轻代为10M,老年代为20M,
// 其中年轻代中Eden=8M,From Survivor=To Survivor=1M // 备注:
// 运行时内存与垃圾回收介绍:http://www.cnblogs.com/God-froest/p/jvm_1_3.html
// 参数介绍:http://blog.csdn.net/shenzhen_liubin/article/details/7207236
// OOM的样例:http://blog.csdn.net/cutesource/article/details/8244250
}

参考资料:

《深入理解Java虚拟机》笔记

JVM基础学习的更多相关文章

  1. JVM基础学习(一):JVM内存模型

    在Java进阶知识的学习中,JVM都是避不过去的一关,我个人对于JVM的理解其实就是相当于在操作系统的外层再加了一层中间层,从来屏蔽了具体硬件之间的不同实现,使得Java实现了最重要的特性:一次编译, ...

  2. JVM基础学习(二):内存分配策略与垃圾收集技术

    Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来 垃圾收集概述 Java内存模型中的堆和方法区是垃圾收集技术所需要关注的终点,因为其他的区域会跟 ...

  3. JVM基础学习之类的加载、链接和初始化

    本文我们一起讨论Java类的加载.链接和初始化. Java字节代码的表现形式是字节数组(byte[]),而Java类在JVM中的表现形式是 java.lang.Class类 的对象.一个Java类从字 ...

  4. JVM基础学习之基本概念、可见性与同步

    开发高性能并发应用不是一件容易的事情.这类应用的例子包括高性能Web服务器.游戏服务器和搜索引擎爬虫等.这样的应用可能需要同时处理成千上万个请求.对于这样的应用,一般采用多线程或事件驱动的 架构 .对 ...

  5. JVM基础:深入学习JVM堆与JVM栈

    转自:http://developer.51cto.com/art/201009/227812.htm JVM栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;JVM堆解决的是数据存储的问题, ...

  6. JVM快速学习

    最近开始了全面的JAVA生态环境学习,因此,JVM的学习是必不可少的一个环节.和.NET的CLR一样,一起的JAVA应用均跑在JVM虚拟机上,不过相对我们只能干看看的CLR,JVM有很大的灵活性,可以 ...

  7. JVM 基础知识

    JVM 基础知识(GC) 2013-12-10 00:16 3190人阅读 评论(1) 收藏 举报 分类: Java(49) 目录(?)[+] 几年前写过一篇关于JVM调优的文章,前段时间拿出来看了看 ...

  8. java 笔记(1)-—— JVM基础,内存数据,内存释放,垃圾回收,即时编译技术JIT,高精度类型

    1.java中5个存放数据的地方: (1).寄存器(Registers):位于CPU内部,是速度最快的存储区,但是数量和容量有限.在java中不能直接操作寄存器. (2).栈(Stack):栈位于通用 ...

  9. JVM基础系列第14讲:JVM参数之GC日志配置

    说到 Java 虚拟机,不得不提的就是 Java 虚拟机的 GC(Garbage Collection)日志.而对于 GC 日志,我们不仅要学会看懂,而且要学会如何设置对应的 GC 日志参数.今天就让 ...

随机推荐

  1. Linux下的vi编辑器与gcc工具的使用

    最近在网上找了些视频,自学了一点Linux环境下,C编程的方法. 注 vi与vim是有区别的,vim打开的源码文件其中的关键字是有颜色的. vi编辑器有3种模式,命令行模式,插入模式,底行模式. 如果 ...

  2. gcc常用选项

    gcc选项:    -c         只编译,不链接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件.    -std=     指 ...

  3. C#操作系统日志

    系统日志可以帮助我们分析操作系统的安全与否,也可以帮助我们将一些不好调试的信息显示出来. C#操作系统日志主要是通过EventLog类来实现的. 一 图解 打开事件查看器,其中与EventLog类对应 ...

  4. MongoDB的分组统计 group

    mongodb中的分组聚合用$group,而且处理的最大数据量为100M如果超出需要写入到磁盘,使用格式如下: { $group: { _id: <expression>, <fie ...

  5. WCF完全解析读书笔记第2章地址

    1. 使用同一个绑定对象实现地址跨终结点共享 2. 地址报头帮助辅助寻址 3. 使用端口共享为多个服务使用相同端口 4. WCF终结点地址分为逻辑地址和物理地址, 客户端使用ClientViaBeha ...

  6. Lucene 3.0

    http://www.cnblogs.com/forfuture1978/archive/2010/02/22/1671487.html http://www.cnblogs.com/jiekzou/ ...

  7. printf的格式控制的完整格式

    printf的格式控制的完整格式:%  -  0  m.n  l或h  格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少.②-:有-表示左对齐输出,如省略表示右对齐输出 ...

  8. awk中文手册

    1. 前言 有关本手册 : 这是一本awk学习指引, 其重点着重于 : l        awk 适于解决哪些问题 ? l        awk 常见的解题模式为何 ? 为使读者快速掌握awk解题的模 ...

  9. python学习小结8:I/O

    文件I/O是Python中最重要的技术之一,在Python中对文件进行I/O操作是非常简单的. 打印到屏幕上 >>> print "python is really a g ...

  10. bnuoj 33647 Angry Grammar Nazi(字符串)

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=33647 [题意]:字符串匹配,暴力配就行了 [题解]:截出单词,然后进行匹配就行了 [code]: ...