12.初识 jvm

1.jvm:java的虚拟机,运行于操作系统之上,不直接接触硬件。

2.jvm图解:

3.双亲委派机制:可以防止java代码遭受恶意破环,也就是会先加载父类的方法,而父类不存在时候才会调用自身的。比如,自己定义一个java.Lang.String的时候就会出错,因为string类已经存在的了。

4.native interface本地接口(native也是java的关键字)

java语言不能对操作系统进行访问和操作,但是可以调用其他TNI接口来实现。

5.pc寄存器

也就是每个线程所私有的程序计数器,也就是指向下一条指令的

6.main方法是放在栈中,其他的一般方法也是

7.方法区:是程序共享的,保存的都是可以共享的信息,比如常量,静态变量

8.栈区:存局部变量,定义的参数,比如int,char之类的,以及调用现场存在栈区,在函数结束时,系统会自动收回存储单元。

9.堆区:放置new出来的对象或引用,(又分为新生区,养老区)

10.堆的调优

-xms:初始化分配大小,默认为电脑内存的1/64;

-xmx:最大的内存,默认为电脑内存的1/4;

-xx~~~:输出详细的GC处理日志

11.oom异常

这就是堆内存溢出异常,比如不停的给string添加字符串,就会不停的创造新的对象,就会导致堆内存溢出。

12.MAT:一种查看堆内存溢出的插件,分析dump文件。

 

posted @ 2018-03-16 18:00  微尘chq  阅读(166)  评论(0编辑  收藏  举报