JVM虚拟机学习

JVM 的学习内容:

1.java代码的执行  
		java源码通过编译器生成 .class 文件,也就是字节码文件,字节码文件通过jvm解释器,编译成特定机器上的机器码,每一种平台的解释器是不同的,但是虚拟机的实现是相同的(这也是java可以跨平台执行的原因)
2.内存的管理  
		jvm内存:
				线程私有:
						程序计数器:用于存储虚拟机字节码指令地址
						虚拟机栈:java方法执行过程中,都会创建一个栈帧,用于存储局部变量表,操作数栈,动态链接,方法出口等信息
						本地方法栈:为native方法服务
				线程共享:		
						方法区(永久代):
								用于存储被jvm加载的类信息,常量,静态变量信息
								运行时常量池也是方法区的一部分:用于存储编译期生成的各种字面量和符号引用
						堆(对象和数组):
								新生代: eden:新对象出生地
												from survivor:上一次gc幸存者,下一次gc被扫描者
												to survivor: 保留了上一次MinorGC过程的幸存者
								老年代:
				直接内存:不受gc管理								
												
		java8和元数据:在java8当中,永久代被移除,被元数据区取代,元空间不在虚拟机中,而是使用本地内存,类的元数据放入native memory,字符串池和类的静态变量放入堆内存当中								
						
				jvm gc:
						如何确定垃圾:引用计数法,可达性分析
						分代收集:根据各个区的特点进行回收
								新生代:大批对象可回收,采用复制算法
								老年代:少量对象可回收,采用标记整理算法
						gc垃圾收集器:
								serial:	单线程,复制算法,垃圾收集的过程中,必须暂停其他的工作线程
								parNew: 多线程,复制算法	,垃圾收集的过程中,必须暂停其他的工作线程
								parallel Scavenge:多线程,复制算法,高效,高效的表现在于高吞吐量,吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间))
								serial old(老代垃圾收集器): 单线程,标记整理算法
								GMS(老代垃圾收集器):多线程,标记清除算法,最短的垃圾收集停顿时间可以为交互比较高的程序提高用户体验
								G1:与CMS相比,采用标记整理算法
	
	补充知识点:
			java的四种引用:
					1.强引用:Object a=new 对象,赋值给一个变量a,a这个变量引用就是强引用,如果被强引用变量引用的时候,它处于可达状态,是不能被gc回收的
					2.软引用 :软引用需要用 SoftReference 类来实现,当系统内存不足时,会被回收
					3.弱引用:弱引用需要用WeakReference 类来实现,只要垃圾机制运行,他就会被回收
					4.虚引用:虚引用需要PhantomReference类来实现,它不能单独使用,必须和引用队列联合使用。虚 引用的主要作用是跟踪对象被垃圾回收的状态。 
			类加载的过程:
					1.加载:生成这个类的对象在内存中,作为方法区这个类的各种数据的入口
					2.验证:确保class文件信息符合jvm要求
					3.准备:为类变量分配内存并设初始值
					4.解析:将常量池的符号引用替换为直接引用
					5.初始化:执行类的构造器的client方法
			类的构造器:
					1.启动类加载器(bootstrap classloader):负责加载JAVA_HOME\lib 目录中,通过-xbootclasspath	参数指定路径中的
					2.扩展类加载器(extension classloader): JAVA_HOME\lib\ext 目录中的,通过java.ext.dirs 系统变量指定路径类的
					3.应用程序类加载器(Application ClassLoader):用于加载classpath的类库
					

3.线程资源同步和交互机制
		jvm后台运行的线程:
				虚拟机线程:等到jvm到达安全点操作出现(当前堆的修改无法进行),如线程暂停,线程偏向锁解除
				周期性线程:负责定时器事件
				gc线程
				编译器线程:运行时将字节码动态的编译成平台运行的机器码
				信号分发器线程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值