摘要:编译器只需面向,生成能理解的代码或字节码文件。源文件经编译器,编译成字节码程序,通过将每一条指令翻译成不同平台机器码,通过特定平台运行。涨见识,字节码执行过程分析。解决办法减少默认栈的容量来换取更多的线程支持。
前言
JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种基于下层的操作系统和硬件平台并利用软件方法来实现的抽象的计算机,可以在上面执行java的字节码程序。
java编译器只需面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译器,编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。
这里就给大家讲一下JVM。
技术大咖带你垂直打击JVM
什么是运行时数据区? 我们一起来分享。
了解JVM底层原理,让你的代码撸得飞起。
搞定内存溢出,涨薪升职。
涨见识,字节码执行过程分析。
直击真相,原理和代码全都有。
测试、效果演示及总结。
JDK: java development kit (Java开发工具包) 编译、反编译、调试等。
JRE: java runtime enviroment (Java运行环境)
JVM: java Virtual Mechinal (Java虚拟机) 一次编写,到处运行!
学jvm的目就是:
提升代码质量、解决项目问题。
面试!面试!还是面试!
JVM是怎么玩的
类加载器:Class字节码文件加载到内存
执行引擎:解析字节码指令,得到执行结果
运行时数据区
JVM运行时数据区线程私有
程序计数器
虚拟机栈
本地方法栈
线程共享
堆
列表项目
方法区
BAT的JVM面试题JVM什么情况下会发生栈内存溢出?
JVM中一次完整的GC流程是怎样的?
GC——垃圾回收
完整意味着有多种情况
程序计数器
指向当前线程正在执行的字节码指令的地址(行号)
栈(Stack)
入口和出口只有一个
入栈
出栈
FILO
先进后出
虚拟机栈
创建一个线程就为线程分配一个虚拟机栈,它又会包含多个栈帧,因为每运行一个方法就创建一个栈帧。
运行时才有数据
栈帧
运行一个线程中的一个方法
1.局部变量表
2.操作数栈
3.动态连接
4.返回地址
演示一段代码的方法的执行过程
代码:
public int calc(){ int a=100; int b=200; int c=300; return(a+b)*c; }虚拟机栈的异常
StackOverFlowError异常
原因:执行的虚拟机栈深度大于虚拟机栈允许的最大深度(方法的递归调用)。
解决办法:增加默认栈的容量。
栈容量 -Xss 默认1M
OutOfMemeoryError异常
原因:多线程环境下虚拟机在扩展栈时无法申请到足够的内存空间。
解决办法:减少默认栈的容量来换取更多的线程支持。
Java堆
Java堆是被所有线程共享的一块内存区域
所有的对象实例以及数组要在堆上分配
元数据区
老版本名称:方法区(永久代)
类信息、常量、编译后的代码信息
直接内存
以上源于一个视频讲解的概述总结,后续将分享后半部分的内容:
可达性分析算法——GC Roots
JVM中的堆
新生代为什么分三个区?
新生代对象的分配和回收
老年代对象的分配和回收
JVM中一次完整的GC流程是怎样的?
**如果有兴趣想了解视频具体内容的可以关注我,加入我的合作群(805685193)即可获取原视频。
还有一些Java架构视频讲解,需要获取Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术视频教程资料,架构思维导图,和BATJ面试题及答案的,都是免费分享的。
关注我,加入我的合作群(805685193)即可获取视频。**
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/11952.html
摘要:编译器只需面向,生成能理解的代码或字节码文件。源文件经编译器,编译成字节码程序,通过将每一条指令翻译成不同平台机器码,通过特定平台运行。涨见识,字节码执行过程分析。解决办法减少默认栈的容量来换取更多的线程支持。 前言 JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种基于下层的操作系统和硬件平台并利用软件方法来实现的抽象的计算机,可以在上面执行java的...
摘要:,黑色的主题风格,很符合。时间复杂度虽然成功,但我明显感觉代码写得不是很优雅。这个是没错的,但缺乏了宏观的视角,会变得片面。但是不重要,关键是这个思想要学习,可以应用到其他地方。求和,大于就返回偶数的位置,否则返回奇数的位置。 前几天做LeetCode上的大数乘法,代码没错,可就是提交不成功,显示SyntaxError: Unexpected token var我把所有代码都注释掉,只...
摘要:起初,项目使用的是,其提供的方法用着比较爽,由于项目的很多数据来自豆瓣的,直接上简单方便,跨域什么的不考虑。跨域问题,上面已经介绍,在不能操控的豆瓣数据上,使用的是。 项目地址 在线演示 不识庐山真面目,只缘身在此山中。 大概一个月前,开源了Vue重构豆瓣移动端的项目,效果还可以,收到了很多小伙伴的反馈,话说是要写一些文章的,但迟迟没有动笔,估计小伙伴们等的花都谢了,拖延症是病,需要治...
摘要:菜鸟教程框架中文手册入门目标使用搭建通过对数据增删查改没了纯粹占行用的拜 后端API入门学习指北 了解一下一下概念. RESTful API标准] 所有的API都遵循[RESTful API标准]. 建议大家都简单了解一下HTTP协议和RESTful API相关资料. 阮一峰:理解RESTful架构 阮一峰:RESTful API 设计指南 RESTful API指南 依赖注入 D...
摘要:菜鸟教程框架中文手册入门目标使用搭建通过对数据增删查改没了纯粹占行用的拜 后端API入门学习指北 了解一下一下概念. RESTful API标准] 所有的API都遵循[RESTful API标准]. 建议大家都简单了解一下HTTP协议和RESTful API相关资料. 阮一峰:理解RESTful架构 阮一峰:RESTful API 设计指南 RESTful API指南 依赖注入 D...
阅读 1830·2021-10-12 10:12
阅读 3029·2019-08-30 15:44
阅读 828·2019-08-30 15:43
阅读 2976·2019-08-30 14:02
阅读 2053·2019-08-30 12:54
阅读 3477·2019-08-26 17:05
阅读 1926·2019-08-26 13:34
阅读 1030·2019-08-26 11:54