java JVM栈和堆

标签: java 内存
6人阅读 评论(0) 收藏 举报
分类:

JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)

堆区:
1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)
2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身
栈区:
1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中
2.每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。
3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。
方法区:
1.又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。
2.方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量、方法。

查看评论

Java内存模型 —— 深入JVM

-
  • 1970年01月01日 08:00

(jvm-java虚拟机)栈,堆,方法区的关系

很多人虽然会些一些代码,但是并不知道这些数据,代码适怎样运行实现的,那我们就要来看看jvm(也就是java虚拟机)。                                  java虚拟...
  • baidu_25026917
  • baidu_25026917
  • 2017-03-10 14:14:17
  • 734

Java JVM 中 堆,栈,方法区 详解

一 jvm运行时数据区有哪些我们先来看一张图 JVM运行时数据区分类 1. JVM栈 (Java Virtual Machine Stacks) 2. 堆内存 (Heap Memory)...
  • zhangqiluGrubby
  • zhangqiluGrubby
  • 2017-03-01 16:45:51
  • 5921

JVM:堆、栈、方法区

堆中内存划分Java堆是和Java应用程序关系最密切的内存空间,几乎所有的对象都放在其中,并且Java堆完全是自动化管理,通过垃圾收集机制,垃圾对象会自动清理,不需自己去释放。 根据垃圾回收机制的不同...
  • IThelei
  • IThelei
  • 2017-03-13 21:22:00
  • 290

JVM的堆和栈以及GC算法的介绍

JVM就是java虚拟机,我们可以把它理解成一个操作系统,每个不同的平台都有不同的JVM,比如linux系统和windows系统,就是因为这个原因所以java程序就有了一个很突出的特性就是 跨平台性 ...
  • qq_20641565
  • qq_20641565
  • 2017-03-04 17:17:11
  • 2734

细说JVM系列:成员变量分配在栈中还是堆中?

细说JVM系列:成员变量分配在栈中还是堆中?下午时小伙伴问了我一个问题:mAge为啥是在堆里?幸好最近我一直在学习JVM,所以我在思考了一会结合之前的资料给出了我的理由: 因为mAge是类的成员变...
  • a910626
  • a910626
  • 2016-08-31 18:20:11
  • 1628

1.1JVM内存结构——堆、栈、方法区、直接内存、堆和栈区别

一、定义 1、堆:FIFO队列优先,先进先出。jvm只有一个堆区被所有线程所共享!堆存放在二级缓存中,调用对象的速度相对慢一些,生命周期由虚拟机的垃圾回收机制定。2、栈:FILO先进后出,暂存数据的地...
  • qq_31997407
  • qq_31997407
  • 2018-03-24 10:28:31
  • 446

jvm虚拟机运行时内存分析,堆,栈,方法区,程序计数器,本地栈,常量池

**JVM自动内存管理机制** java内存区域与内存溢出异常 概述 : 对于从事C/C++程序开发的开发人员来说,在内存管理领域他们是拥有最高权力的皇帝又是从事最基础工作的劳动人民,即拥有每一...
  • m0_37034294
  • m0_37034294
  • 2017-12-19 17:18:25
  • 856

java虚拟机 jvm java堆 方法区 java栈

java堆是java应用程序最密切的内存空间。几乎所有的对象都存在堆中。java堆完全自动化管理,通过垃圾回收机制,垃圾对象会自动清理,不需要显式释放。 根据java垃圾回收机制的不同,java堆可能...
  • qq_30739519
  • qq_30739519
  • 2016-03-27 21:12:41
  • 2555

JVM的栈、堆和方法区

栈: 1、一个线程有一个栈区,栈与栈之间的数据不共享;         2、用于存基础数据类型和对象的引用; 3、栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。 ...
  • HoldonWithYourGoal
  • HoldonWithYourGoal
  • 2017-02-08 10:41:22
  • 552
    个人资料
    持之以恒
    等级:
    访问量: 2617
    积分: 470
    排名: 11万+
    博客专栏
    文章存档
    最新评论