2_JVM_运行机制
来源:互联网 发布:数据安全管理方案 编辑:程序博客网 时间:2024/06/05 09:00
1.jvm 启动流程
2.jvm基本结构
pc寄存器:
-每个线程拥有一个pc寄存器
-在线程创建时创建
-指向下一条指令的地址
-执行本地方法时,Pc的值为undefined (未定义的)
方法区:
1.保存装载的类信息
-类型的常量
-字段,方法信息
-方法字节码
(jdk6:String等常量反正方法区 jdk7:已经将String等常量移到了)
2.通常和永久区关联在一起
java堆:
-和程序开发密切相关
-应用系统对象都保存在java堆中
-对分代的GC来说,堆也是分代的
-GC的主要工作区间
复制算法
java栈:
-线程私有
-栈由一系列帧组成(因此java栈也叫作帧栈)
-帧保存一个方法的局部变量,操作数据,常量池指针
-每一次方法调用创建一个帧,并压栈
–局部变量表包含参数和局部变量
public static inttest(int a,int b, int c){
returntest(a,b,c);
}
public class Personnel {
private String name;
public Personnel(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void sysoName()
{
System.out.println(name);
}
}
public class TestMain {
public static void main(String[] args) {
Personnel a = new Personnel("testa");
Personnel b = new Personnel("testb");
a.sysoName();
b.sysoName();
}
}
3.内存模型
-每一个线程有一个工作内存和主存独立
-工作内存存放主存中变量的值的拷贝
当数据从主内存复制到工作存储时,必须出现两个动作:第一,由主内存执行的读(read)操作;第二,由工作内存执行的相应的load操作;当数据从工作内存拷贝到主内存时,也出现两个操作:第一个,由工作内存执行的存储(store)操作;第二,由主内存执行的相应的写(write)操作
每一个操作都是原子的,即执行期间不会被中断
对于普通变量,一个线程中更新的值,不能马上反应在其他变量中
如果需要在其他线程中立即可见,需要使用 volatile 关键字
4编译和解释运行的概念
- 2_JVM_运行机制
- 1_JVM_初认识
- 3_jvm_配置参数
- mfc运行机制2
- 2 Spring运行机制
- 2 SSL/TSL 运行机制
- 运行机制
- 2 SparkStreaming运行机制和架构
- 初识JVM-JVM运行机制(2)
- SDE空间索引的内部运行机制2
- MFC框架原理以及消息运行机制2
- OSGI(2)框架的组件运行机制
- SystemC分析(2)Method运行机制分析
- HDFS学习笔记(2)HDFS运行机制
- (2)操作系统运行环境与运行机制
- 读书札记2:第三方逆向物流系统运行机制探讨
- Php底层深度探索(2)---Apache运行机制剖析
- [GEM5学习]2、GEM5模块继承关系和运行机制解析
- 网址收藏
- spring-mvc文件上传
- get方式乱码的处理方式的两种方式
- spring ioc
- 【腾讯TMQ】从wireshark抓包开始学习https
- 2_JVM_运行机制
- 欢迎使用CSDN-markdown编辑器
- java虚拟机和内存管理
- 动态规划_最长公共子序列问题
- Android动画进阶—使用开源动画库nineoldandroids
- AppDelegate中的常用方法使用说明
- linux sensor 驱动之 psensor(proximity-sensor距离传感器)
- RecyclerView系列之三:使用ItemTouchHelper实现RecyclerView的条目交互特效
- 抽象类