您现在的位置是:首页 > 文章详情

Java程序员:不识Jvm真面目,只缘身在增删查改中

日期:2019-01-09点击:415

前言

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

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

这里就给大家讲一下JVM。

技术大咖带你垂直打击JVM

什么是运行时数据区? 我们一起来分享。

了解JVM底层原理,让你的代码撸得飞起。

搞定内存溢出,涨薪升职。

涨见识,字节码执行过程分析。

直击真相,原理和代码全都有。

测试、效果演示及总结。

JVM是什么?

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

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

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

img_d1f497d4f87f12c7813fb5d58300d1c2.png

学jvm的目就是:

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

面试!面试!还是面试!

JVM是怎么玩的

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

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

运行时数据区

img_8262a86ad0679f119b29823d8679133e.png

JVM运行时数据区

线程私有

程序计数器

虚拟机栈

本地方法栈

线程共享

方法区

img_89ba0d68425d40263599e86104de5bc8.png

BAT的JVM面试题

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

img_464e43edf979922ced41ea7729beecc7.png

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

GC——垃圾回收

完整意味着有多种情况

程序计数器

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

栈是什么?

栈(Stack)

入口和出口只有一个

入栈

出栈

FILO

先进后出

img_df9da5c0332b9bdc1e28d022d8a357eb.png

虚拟机栈

虚拟机栈

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

运行时才有数据

栈帧

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

局部变量表

操作数栈

动态连接

返回地址

img_d93305fbfe2050615776429a5c8dceab.png

深入理解虚拟机栈

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

代码:

public int calc(){

int a=100;

int b=200;

int c=300;

return(a+b)*c;

}

img_ae6021154f3de57429950b98ededb19f.png

虚拟机栈的异常

StackOverFlowError异常

原因:执行的虚拟机栈深度大于虚拟机栈允许的最大深度(方法的递归调用)。

解决办法:增加默认栈的容量。

栈容量 -Xss 默认1M

OutOfMemeoryError异常

原因:多线程环境下虚拟机在扩展栈时无法申请到足够的内存空间。

解决办法:减少默认栈的容量来换取更多的线程支持。

img_da277025e1644b5c8ed7a13faf1a14d9.png

JVM中线程共有的内存区域

Java堆

Java堆是被所有线程共享的一块内存区域

所有的对象实例以及数组要在堆上分配

元数据区

老版本名称:方法区(永久代)

类信息、常量、编译后的代码信息

直接内存

img_eab50d633f8a2c0b92e3524b6a457e3b.png

以上源于一个视频讲解的概述总结,后续将分享后半部分的内容:

可达性分析算法——GC Roots

JVM中的堆

新生代为什么分三个区?

新生代对象的分配和回收

老年代对象的分配和回收

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

如果有兴趣想了解视频具体内容的可以关注我,加一下我的合作群:805685193 可获取原视频

还有一些Java架构视频讲解,需要获取Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术视频教程资料,架构思维导图,和BATJ面试题及答案的,都是免费分享的。

原文链接:https://yq.aliyun.com/articles/688419
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章