看图了解JVM
JVM使用的区域由两大部分组成:
单个线程独立的区域
多个线程公共的区域
公共区域又包含两部分:
相对静态的区域(永久代),包含常量、方法、属性、代码等
相对动态的区域(堆),包含创建的对象
线程独立区域可以理解为线程在执行代码时的上下文,会从公共区域读取数据,也会保存数据到其中的堆
通常的执行过程:
当线程需要一个类时,使用加载器将字节码加载到方法区,然后会依照被加载的代码执行。执行类的方法前,会在栈中新建一个栈帧,作为上下文来执行方法。执行过程中可能从常量池、堆中读取需要的数据,执行完毕后数据可能同步到前一个方法的栈帧,也可能同步到堆。
更抽象的概括JVM所使用的区域:
执行的依据(位于永久代的类、方法、常量信息),数据本身(位于堆的对象),执行过程中的上下文(每个线程执行时的临时部分)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
了解Node.js-to-Angular 套件组件
Node.js-to-Angular套件最常见的,并且我们相信也是最好的版本是包括MongoDB、Express、Angular和Node.js 的Node.js-to-Angular 套件。 在Node.js-to-Angular 套件中,Node.js 提供了开发的基础平台。后端服务和服务器端脚本都是用Node.js 编写的。MongoDB 提供了网站的数据存储,但通过一个MongoDB驱动Node.js 模块进行访问。Web 服务器是通过Express 定义的,这也是一个Node.js 的模块。 在浏览器中的视图使用Angular 框架定义和控制。Angular 是一个MVC 框架,在该框架中的模型由JSON 或JavaScript 对象组成,视图是HTML/CSS,而控制器由AngularJavaScript 组成。 上图提供了一个基本的图示,它显示Node.js-to-Angular 套件是如何适合基本的网站/Web 应用模型的。以下各节描述每种技术,以及它们被选为Node.js-to-Angular 套件的一个组成部分的原因。 1 Node.js Node.js 是一个基于...
- 下一篇
Scala Symbol笔记
Symbol This class provides a simple way to get unique objects for equal strings. Since symbols are interned, they can be compared using reference equality. symbols可以作为一种快速比较字符串的方式,如果字符串的值相同,则返回的symbol变量具有相同的引用地址。Symbol内部维护了一个字符串池。 object SymbolDemo { def main(args: Array[String]): Unit = { val s = 'nihao val n = 'nihao // return true println(s == n) } } Compare to Java 在Java中创建String实例有两种方式:1、直接给一个变量赋值;2、用new关键创建String对象;(下文记作:方式1 和 方式2) 方式1 我们都知道 “方式1” 每次都会创建一个新变量(所以for循环内拼接字符串不建议用 “+” 操作符,因为每次...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,CentOS7官方镜像安装Oracle11G
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Red5直播服务器,属于Java语言的直播服务器
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7