您的位置:首页 > 其它

jvm运行机制,入门

2017-01-11 22:34 274 查看


1.通过java指令启动

2.根据当前路径和系统版本找jvm的配置文件

3.根据配置文件找到jvm.dll文件,为jvm主要实现

4.初始化jvm虚拟机

5.找到main方法运行



方法区:保存装载的类信息:1.类型的常量池(jdk1.7后放入堆中)2.字段方法信息 3.方法字节码。

java栈:线程私有,先进后出,栈里面放的是帧,帧里面放的是一个方法局部变量,常量池的指针,每调用

一次方法创建一个帧,并压栈。

java堆:全局共享。



栈中存放一个局部变量表,表中每一行相当于一个槽位,最多占32个字节,所有Long型要占用两个槽位, 对象引用占用一个槽位。

java没有寄存器,所有参数传递使用寄存器栈。

java栈上分配特点:

1.小对象(几十bytes),由于栈是线程私有,共享对象只能分配到堆上

2.可以自动回收,减轻GC压力

3.大对象无法分配到栈上。



指令重排

a=1,b=2在编译过程中顺序不一定。



保证线程间可见性

1.volatile关键字

2.synchronized关键字

3.final(常量)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: