Java架构师必备技能—JVM系列:不识JVM真面目,只缘身在增删查改中

发布时间:2020-05-24 01:08:10 作者:wx5d9ed7c8443c3
来源:网络 阅读:204

Java架构师必备技能—JVM系列:不识JVM真面目,只缘身在增删查改中cdn.xitu.io/2019/11/12/16e5ea36aa6e617d?w=477&h=178&f=png&s=90057">

前言

JVM是Java的核心和基础,在Java编译器和os平台之间的虚拟处理器。它是一种基于下层的操作系统和硬件平台并利用软件方法来实现的抽象的计算机,可以在上面执行Java的字节码程序。

java编译器只需面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译器,编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。

这里就给大家讲一下JVM。

JVM是什么?

JDK: java development kit (Java开发工具包) 编译、反编译、调试等。

JRE: java runtime enviroment (Java运行环境)

JVM: java Virtual Mechinal (Java虚拟机) 一次编写,到处运行!

Java架构师必备技能—JVM系列:不识JVM真面目,只缘身在增删查改中

学JVM的目就是:

提升代码质量、解决项目问题。

面试!面试!还是面试!

JVM是怎么玩的

类加载器:Class字节码文件加载到内存

执行引擎:解析字节码指令,得到执行结果

运行时数据区

Java架构师必备技能—JVM系列:不识JVM真面目,只缘身在增删查改中

JVM运行时数据区

线程私有

线程共享

Java架构师必备技能—JVM系列:不识JVM真面目,只缘身在增删查改中

BAT的JVM面试题

JVM什么情况下会发生栈内存溢出?

Java架构师必备技能—JVM系列:不识JVM真面目,只缘身在增删查改中

JVM中一次完整的GC流程是怎样的?

程序计数器

指向当前线程正在执行的字节码指令的地址(行号)

栈是什么?

栈(Stack)

FILO

Java架构师必备技能—JVM系列:不识JVM真面目,只缘身在增删查改中

虚拟机栈

虚拟机栈

创建一个线程就为线程分配一个虚拟机栈,它又会包含多个栈帧,因为每运行一个方法就创建一个栈帧。

栈帧

运行一个线程中的一个方法

Java架构师必备技能—JVM系列:不识JVM真面目,只缘身在增删查改中

深入理解虚拟机栈

演示一段代码的方法的执行过程

代码:

public int calc(){
int a=100;
int b=200;
int c=300;
return(a+b)*c;
}

Java架构师必备技能—JVM系列:不识JVM真面目,只缘身在增删查改中

虚拟机栈的异常

StackOverFlowError异常

栈容量 -Xss 默认1M

OutOfMemeoryError异常

Java架构师必备技能—JVM系列:不识JVM真面目,只缘身在增删查改中

JVM中线程共有的内存区域

Java堆

元数据区

直接内存

Java架构师必备技能—JVM系列:不识JVM真面目,只缘身在增删查改中

推荐阅读:
  1. 拿不到想要的offer,只缘身在CV中,关于一些面试小知识
  2. 架构师的必备技能是什么?

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jvm 程序员 java

上一篇:Bootstrap中的datetimepicker(日期控件)用法

下一篇:产权交易所统一数据集市案例

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》