JAVA内存结构和JAVA内存模型
JAVA内存结构:堆、栈、方法区;
堆:存放所有 new出来的东西(堆空间是所有线程共享,虚拟机气动的时候建立);栈:存放局部变量(线程创建的时候 被创建);方法区:被虚拟机加载的类信息、常量、静态常量等。
类加载系统:负责从文件系统或者网络加载class信息,加载的信息存放在方法区。 直接内存:JAVAnio库允许JAVA程序直接内存,从而提高性能,通常直接内存性能高于JAVA堆。读写频繁的场合可能会考虑使用。 本地方法栈:本地方法栈和JAVA栈类似,最大的不同为本地方法栈用于本地方法调用。JAVA虚拟机允许JAVA直接调用本地方法。 垃圾回收系统:是JAVA的核心。 pc寄存器:每个线程私有的空间。JAVA虚拟机为每个线程创建pc寄存器,在任意时刻一个JAVA线程总是在执行一个方法,这个方法被称为当前方法,如果当前方法不是本地方法,pc寄存器总会执行当前正在被执行的指令,如果是本地方法,则pc寄存器值为underfined,寄存器存放当前执行执行环境指针、程序技术器、操作栈指针、计算的变量指针等信息。 执行引擎:虚拟机的核心组件,负责执行虚拟机的字节码,一般先编译成机器码后执行。
JAVA内存模型:(共享内存模型JMM)定义了一个线程对另一个线程可见。共享变量存放在主内存中,每个线程都有自己的本地内存,当多个线程同时访问一个数据时,可能本地内存没有及时刷新到主内存,所以就会发生线程安全问题。
JAVA内存结构和JAVA内存模型相关推荐
- 区分 JVM 内存结构、 Java 内存模型 以及 Java 对象模型 三个概念
本文由 简悦 SimpRead 转码, 原文地址 https://www.toutiao.com/i6732361325244056072/ 作者:Hollis 来源:公众号Hollis Java 作 ...
- 【转】JVM内存结构 VS Java内存模型 VS Java对象模型
JVM内存结构 我们都知道,Java代码是要运行在虚拟机上的,而虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途. 其中有些区域随着虚拟机进程的启动而 ...
- JVM内存结构 VS Java内存模型 VS Java对象模型
Java作为一种面向对象的,跨平台语言,其对象.内存等一直是比较难的知识点.而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚.比如本文我们要讨论的JVM内存结构.Java内存模型和Java对象 ...
- JVM(一)JVM虚拟机内存结构 和 JAVA内存模型(JMM)
本文转自:浅析java内存模型--JMM(Java Memory Model) - 路易小七 - 博客园,尊重作者,转载请注明出处~ JVM虚拟机内存结构 和 JAVA内存模型 是两个不同的概念 JV ...
- 快速带你分清java内存结构,java内存模型,java对象模型和jvm内存结构!
现如今你是否有这样的感觉,无论生活还是学习,节奏都是非常的快,每天面对海量的知识信息,自己感觉都要hold不住了,每天打开微信公众号,是不是发现有几十条未读,无论是技术文章还是其他类型的文章,我们大多 ...
- JVM之深入理解JVM内存结构(Java内存结构/Java内存区域)、Java内存模型
Java作为一种面向对象的,跨平台语言,其对象.内存等一直是比较难的知识点.而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚.比如本文我们要讨论的JVM内存结构.JAVA内存结构.JAVA内存 ...
- java 堆内存结构_JVM内存结构、Java内存模型和Java对象模型
JVM内存结构 我们都知道,Java代码是要运行在虚拟机上的,而虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途.其中有些区域随着虚拟机进程的启动而存 ...
- ART虚拟机 _ Java对象和类的内存结构,java中级面试题库weixin
当我们想要创建一个java.lang.Class类的实例(类对象)时,以下三种方法可供选择: Class.forName("className") MyClass.class ob ...
- 【Android 逆向】Android 逆向基本概念 ( 软件运行时内存结构 | 文件与内存之间的联系 )
文章目录 一.Android 软件运行时内存结构 二.Android 文件与内存之间的联系 一.Android 软件运行时内存结构 Android 软件运行时内存结构 : 硬件层 : 内存中 , 硬件 ...
- java对象模型是什么_蓝石榴_个人博客_JVM内存结构、Java内存模型、Java对象模型...
JVM内存结构 我们都知道,Java代码是要运行在虚拟机上的,而虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途.其中有些区域随着虚拟机进程的启动而存 ...
最新文章
- http与https的区别,http 1.0与1.1的区别
- Nginx之反向代理、日志格式、集群、缓存、压缩、URl 重写,读写分离配置
- linux怎么查看fastq格式文件,2020-01-11 了解FASTQ格式并处理FASTQ文件
- 完整mes代码(含客户端和server端_200行代码实现基于paxos的kv存储
- if you go to the station early, what will you get
- abb机器人写字程序实例_abb机器人程序实例
- 代码雨代码源复制_p#39;y代码雨怎么做
- Bus Hound 软件实现长时间数据自动保存
- c语言小游戏 flybird Easyx编程 项目源码讲解
- 取消u盘写保护 u盘量产教程(无数尝试后的终极解决办法)
- 使用Map集合来做一个不同姓氏人数的统计 有一个String数组保存着10个人的姓名{“张三“,“李四“,“王二“...} 通过程序设计,把不同姓氏的姓氏和人数保存到Map集合中
- 数据错误循环冗余检查是什么意思_将解耦功能集成到电源中,会发生什么?
- 9.MVC模式 -- 改造源代码
- Netty in Action 中文版 --最贴近原著的翻译
- 《匆匆那年》的你,还记得吗?数学中的那些有(hui)趣(se)的定理(11)——XXX定理
- 计算机网络教学方式探讨论文,高职计算机网络安全课程教学改革探讨
- 30分钟java桌球小游戏_Java桌球小游戏(兴趣制作)
- TotalControl之手机录屏神器
- Web Components使用(一)
- %d,%05d,%-5d,%.5d的区分