530 0

[休闲其它] 理论+实战 构建完整JVM知识体系 [推广有奖]

  • 0关注
  • 22粉丝

等待验证会员

博士生

53%

还不是VIP/贵宾

-

威望
0
论坛币
295 个
通用积分
26.8664
学术水平
6 点
热心指数
6 点
信用等级
6 点
经验
3257 点
帖子
171
精华
0
在线时间
129 小时
注册时间
2018-9-3
最后登录
2021-2-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
理论+实战 构建完整JVM知识体系
网盘地址:https://pan.baidu.com/s/1YGxRInK2CxNOtp-D_Y1xRA 提取码: vkih
备用地址(腾讯微云):https://share.weiyun.com/85gnXLwt 密码:38c4e9

对于Java开发而言,Java虚拟机是开发工作中必须要理解和掌握的知识内容,也是Java面试中面试官常会问到的考点。
在本课程中,我将带你循序渐进的学习JVM:从源码到运行、类加载,再到内存分配和垃圾回收,以及JVM调优的技巧与实战。
整个课程基于JDK13讲解,理论-实战-面试三结合,带你剖析整个JVM知识体系,JVM问题一站解决。


一、首先JVM是什么

JVM它是Java Virtual Machine 的缩写,主要是通过在实际计算机模仿各种计算机功能来实现的,组成部分包括堆、方法区、栈、本地方法栈、程序计算器等部分组成的,其中方法回收堆和方法区是共享区,也就是谁都可以使用,而栈和程序计算器、本地方法栈区是归JVM的。Java能够被称为“一次编译,到处运行”的原因就是Java屏蔽了很多的操作系统平台相关信息,使得Java只需要生成在JVM虚拟机运行的目标代码也就是所说的字节码,就可以在多种平台运行。

二、了解JRE、JVM、JDK三者的关系是什么

JDK是Java程序员常用的开发包、目的就是用来编译和调试Java程序的。JRE是指Java运行环境,也就是我们的写好的程序必须在JRE才能够运行。JVM是Java虚拟机的缩写,是指负责将字节码解释成为特定的机器码进行运行,值得注意的是在运行过程中,Java源程序需要通过编译器编译为.class文件,否则JVM不认识。


三、JVM的实现原理

1,类装载器(ClassLoader)主要负责加载class文件,是否能执行主要取决于execution engine它是负责执行被加载类中包含的指令。有两种类加载器分别为启动类加载器和用户自定义类加载器,然而启动类加载器是JVM实现的一部分,用户自定义类加载器是Java程序一部分。

2,本地方法栈(native method stack)主要作用是登记native方法,然后在execution engine执行的时候加载本地方法库。

3,栈有时我们又叫栈内存,负责Java程序的运行,它是在线程创建时创建的,所以生命周期也是和线程生命周期一致,同时消亡,线程结束了栈也就释放,特别提醒的是栈不存在垃圾回收的问题,因为线程结束栈就是释放了。平时我们写的类变量、引用类型变量、实例方法等等都是在函数的栈内存分配好。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:知识体系 EXECUTION machine java程序员 virtual

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 17:21