1、java可移植,java虚拟机不可移植,不同操作系统下载对应的jdk
2、java虚拟机是一个进程,且是多线程的,整个虚拟机脱离不了操作系统的约束
3、java虚拟机中的内存管理
方法区(permgen )125M 或 258M足够
堆区:由老年区(tenuredgen)和新生区(younggen)组成
新生区(younggen):由eden space、s0(from)、s1(to)组成
4、操作系统的oom(out of memory) killer
5、java 虚拟机的oom
6、32位cpu 进程可寻址虚拟地址空间(内存)4G,2G内核,2G应用程序--windows 系统,/3G
1G内核,3G应用程序--linux系统
7、java虚拟机的垃圾回收(GC)
回收什么--做什么
什么时候回收--什么时候做
通过jvisisualvm查看java虚拟机的内存堆的详情
具体如何回收--具体如何做
流行的java虚拟机是将内存划为多个区
新生代(younggen)一般采用复制算法
老年代:(tenuredgen)一般采用标记-整理或者标记-清理算法
8、java虚拟机时刻面对存在对象的出生和死亡,尽量避免stop the world(Full GC)时候会发生
9、jstat:查看内存垃圾回收的详情,jmap:查看dump文件