1.JVM的位置:jvm在操作系统之上,jre中包含了jvm。
2.在java中编写一个文件,一开始是.java文件,经过javac编译后成为Class文件,再去到类加载去,接着到jvm
3.所谓的jvm调优,99%都是在堆里调,方法区是一个特殊的堆,其他区域不会有垃圾
4.new一个对象,对象名在栈里,真是的对象存在堆中
5.native:凡是带了native关键字的,说明java的作用范围达不到了,回去调用c语言的库(1.会进入本地方法栈,2.调用本地方法本地接口 即JNI,JNI的作用:扩展java的使用,融合不同的编程语言为java使用)
6.静态变量、常量、类信息(构造方法、接口定义)、运行时的常量池存在方法区中,但是实例变量存在堆内存中,和方法区无关
7.堆:一个JVM只有一个堆内存,堆内存的大小是可以调节的;GC垃圾回收主要是在伊甸园去和养老区; jdk8以后永久存储区改名为 元空间(在堆中逻辑上存在,物理上不存在)
8.OOM:内存满了,堆内存不够 解决方法:1.堆扩存 2.检查代码是否有死循环等问题
9.