专栏首页OSChinaJVM-周阳讲解

JVM-周阳讲解

package com.shi.jvm;

public class StackTest {
	
	/**
	 * 递归调用
	 */
	public static void add() {
		add();
	}

	/**
	 * 	栈满了异常
	 * Exception in thread "main" java.lang.StackOverflowError
	 * @param args
	 */
	public static void main(String[] args) {
		add();
	}

}
package com.shi.jvm;

public class HeapTest {

	public static void main(String[] args) {
		
		/**
		 *   堆内存异常
		 *    输出结果:当前最大可用内存多少M : 1724
		* 	Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
		* 	at com.shi.jvm.HeapTest.main(HeapTest.java:8)
		*/
		System.out.println("当前最大可用内存多少M : "+Runtime.getRuntime().maxMemory()/1024/1024);
		//创建一个大对象
		byte[] b = new byte[1*1024*1024*1725];
		System.out.println("大对象创建成功");
	}

}
package com.shi.jvm;

import java.util.Random;
/**
 *  -Xms1024m -Xmx1024m   -XX:+PrintGCDetails
	堆初始化内存,堆最大内存    打印出堆GC回收信息
 * @author shiye
 *
 */
public class HeapSpaceTest {

	
	public static void main(String[] args) {
		
		/**
		 *    输出:	MAX_MEMERY = 1808269312(字节)1724.5MB
				TOTAL_MEMERY = 122683392(字节)117.0MB
		 * @param args
		 */
//		long maxMemory = Runtime.getRuntime().maxMemory();//返回Java虚拟机试图使用的最大内存量
//		long totalMemory = Runtime.getRuntime().totalMemory();//返回当前使用的java虚拟机的内存总量
//		System.out.println("MAX_MEMERY = " + maxMemory +"(字节)" + (maxMemory/(double)1024/1024) + "MB");
//		System.out.println("TOTAL_MEMERY = " + totalMemory +"(字节)" + (totalMemory/(double)1024/1024) + "MB");
		
		
		//-Xms8m -Xmx8m   -XX:+PrintGCDetails
		String str = "www.shiye";
		while(true) {
			str += str + new Random().nextInt(9999);
		}
		/**
		 * 结果: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
		 */
	}
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 设计模式-装饰者模式

    用户5927264
  • springboot集成mongodb

    用户5927264
  • GateWay全局网管

    API文档地址:https://cloud.spring.io/spring-cloud-gateway/2.2.x/reference/html/#gatew...

    用户5927264
  • 设计模式之中介者模式(mediator模式)引入中介者模式中介者模式的实例中介者模式分析

    大家想象一下有十个人要共同完成一个工作,他们要互相合作和沟通,并且根据对方的通知可能要改变自己的状态,但这通常会带来很多问题,流程过于复杂,使得每个人不仅要专注...

    desperate633
  • 《Java程序设计基础》 第7章手记

    本章主要内容 - 类的私有成员与公共成员 - 方法的重载 - 构造方法 - 类的静态成员 - 对象的应用 本节课知识性内容很多,这里...

    Steve Wang
  • 安卓开发_浅谈ListView之分页列表

    听着music睡
  • 计算虚拟化3-虚机特性

    本期我们继续就计算虚拟化的议题来聊聊虚机特性,虚机与物理机区别在于虚机与物理硬件设备解耦,可根据资源利用情况灵活的迁移、同时只要硬件资源够用可以创...

    ICT售前新说
  • Asp.Net Core 轻松学-正确使用分布式缓存

        本来昨天应该更新的,但是由于各种原因,抱歉,让追这个系列的朋友久等了。上一篇文章 在.Net Core 使用缓存和配置依赖策略 讲的是如何使用本地缓存,...

    梁规晓
  • 传统SpringMVC到Springboot迁移之路

    最近在把公司的老项目迁移到springboot,遇到了很多坑,包括jar包的升级,代码重构,以及全方位的测试。具体过程参照了简书上的一篇文章。

    物流IT圈
  • java:使用匿名类直接new接口

    java中的匿名类有一个倍儿神奇的用法,见下面代码示例: 1 package contract; 2 3 public interface ISay { 4 ...

    菩提树下的杨过

扫码关注云+社区

领取腾讯云代金券