ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

浅谈java虚拟机|系列1|架构细节

2019-06-23 09:00:24  阅读:193  来源: 互联网

标签:java 浅谈 虚拟机 动态分配 JVM class 运行 加载


今天我们继续谈谈JVM架构。

今天主要讲讲JVM运行时,

先来一个图:

上篇文章,我们知道,JVM运行时,简单来说就是把class文件翻译成操作系统相关的机器码(或汇编语言),然后通过调用操作系统函数来完成程序运行的一个组件。

从详细方面来说,它又分为以下几个部分:

1.class文件加载系统(类加载器)

2.运行时数据区

3.执行引擎

首先,我们来看类加载器。类加载器主要的工作有:

简单来说,它主要的工作就是加载并初始化class文件。

再看看运行时数据 区,它主要是对内存的一个抽象,它主要分两块:堆(heap)和栈(stack)。当然还有程序计数器,这个以后再说。

什么是堆?

堆,简单来说,就是动态分配对象数据的区域,比如我们java程序里,用new关键词构造一个对象,那这个对象的数据就要在堆里面动态分配。

因为,这块要动态分配内存,就会涉及内存的回收,也就是GC,即垃圾回收。(下节会讲,先按下不表)

堆,打个比方,就像是

 

标签:java,浅谈,虚拟机,动态分配,JVM,class,运行,加载
来源: https://www.cnblogs.com/gyc567/p/11071802.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有