java虚拟机:

JDK ,JRE ,JVM 依次包含关系

java虚拟机:

java虚拟机:

 

Java8中关系如下

 

java虚拟机:

 

Java虚拟机内存管理:

java虚拟机:

java虚拟机:

java虚拟机:

栈满的时候就会报StackOverFlowError.

java虚拟机:

TEST方法不断进栈,导致超过栈的最大值。

java虚拟机:

java虚拟机:

-Xmx -Xms 修改堆内存的大小

java虚拟机:

垃圾回收在方法区比较少,

运行时常量池

 

java虚拟机:

s1,s2 中的内容是一个常量,会放在运行时常量池中。运行时常量池中类似于Stringtable中存放Hashset,以为hashset是无序,不可重复的。所以s1,s2引用的是同一个地址。

java虚拟机:

 

 java虚拟机:

s1 s2 中的abc成为字节码常量,运行的时候也会产生常量?会的,比如s3.intern()。

 

直接内存

NIO :基于通道的,有缓冲区的方式。它可以使用native方法,直接申请堆外内存。不受制于java虚拟机的内存制约。