JVM-周阳讲解_初始化

JVM-周阳讲解_java虚拟机_02

JVM-周阳讲解_初始化_03

JVM-周阳讲解_java虚拟机_04

JVM-周阳讲解_java_05

JVM-周阳讲解_java虚拟机_06

JVM-周阳讲解_java_07

JVM-周阳讲解_初始化_08

JVM-周阳讲解_java_09

JVM-周阳讲解_java_10

JVM-周阳讲解_java虚拟机_11

 
  1. package com.shi.jvm;

  2.  
  3. public class StackTest {

  4.  
  5. /**

  6. * 递归调用

  7. */

  8. public static void add() {

  9. add();

  10. }

  11.  
  12. /**

  13. * 栈满了异常

  14. * Exception in thread "main" java.lang.StackOverflowError

  15. * @param args

  16. */

  17. public static void main(String[] args) {

  18. add();

  19. }

  20.  
  21. }

JVM-周阳讲解_java_12

JVM-周阳讲解_初始化_13

JVM-周阳讲解_对象创建_14

 
  1. package com.shi.jvm;

  2.  
  3. public class HeapTest {

  4.  
  5. public static void main(String[] args) {

  6.  
  7. /**

  8. * 堆内存异常

  9. * 输出结果:当前最大可用内存多少M : 1724

  10. * Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

  11. * at com.shi.jvm.HeapTest.main(HeapTest.java:8)

  12. */

  13. System.out.println("当前最大可用内存多少M : "+Runtime.getRuntime().maxMemory()/1024/1024);

  14. //创建一个大对象

  15. byte[] b = new byte[1*1024*1024*1725];

  16. System.out.println("大对象创建成功");

  17. }

  18.  
  19. }

JVM-周阳讲解_对象创建_15

JVM-周阳讲解_递归调用_16

JVM-周阳讲解_递归调用_17

JVM-周阳讲解_递归调用_18

JVM-周阳讲解_对象创建_19

JVM-周阳讲解_初始化_20

JVM-周阳讲解_对象创建_21

 

 
  1. package com.shi.jvm;

  2.  
  3. import java.util.Random;

  4. /**

  5. * -Xms1024m -Xmx1024m -XX:+PrintGCDetails

  6. 堆初始化内存,堆最大内存 打印出堆GC回收信息

  7. * @author shiye

  8. *

  9. */

  10. public class HeapSpaceTest {

  11.  
  12.  
  13. public static void main(String[] args) {

  14.  
  15. /**

  16. * 输出: MAX_MEMERY = 1808269312(字节)1724.5MB

  17. TOTAL_MEMERY = 122683392(字节)117.0MB

  18. * @param args

  19. */

  20. // long maxMemory = Runtime.getRuntime().maxMemory();//返回Java虚拟机试图使用的最大内存量

  21. // long totalMemory = Runtime.getRuntime().totalMemory();//返回当前使用的java虚拟机的内存总量

  22. // System.out.println("MAX_MEMERY = " + maxMemory +"(字节)" + (maxMemory/(double)1024/1024) + "MB");

  23. // System.out.println("TOTAL_MEMERY = " + totalMemory +"(字节)" + (totalMemory/(double)1024/1024) + "MB");

  24.  
  25.  
  26. //-Xms8m -Xmx8m -XX:+PrintGCDetails

  27. String str = "www.shiye";

  28. while(true) {

  29. str += str + new Random().nextInt(9999);

  30. }

  31. /**

  32. * 结果: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

  33. */

  34. }

  35. }

JVM-周阳讲解_java虚拟机_22

JVM-周阳讲解_初始化_23

JVM-周阳讲解_java虚拟机_24

JVM-周阳讲解_对象创建_25

JVM-周阳讲解_对象创建_26

JVM-周阳讲解_初始化_27

JVM-周阳讲解_递归调用_28

JVM-周阳讲解_递归调用_29

JVM-周阳讲解_java_30

JVM-周阳讲解_java_31

JVM-周阳讲解_初始化_32

JVM-周阳讲解_java虚拟机_33

JVM-周阳讲解_java虚拟机_34