`
tianlijia202
  • 浏览: 78588 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Java中堆内存和栈内存详解

    博客分类:
  • java
 
阅读更多

http://www.cnblogs.com/whgw/archive/2011/09/29/2194997.html

 

http://www.cnblogs.com/lovexinsky/archive/2012/03/08/2384784.html

 

Java内存主要分成以下几块:
堆heap【new出来的空间和数组空间,存放对象、数组,数据不能共享】
本地方法栈native method stack【操作系统的本地方法所需要的空间,存放局部变量、引用】
方法区method area【所有对象数据共享区域,存储静态变量和普通方法、静态方法、常量、字符串常量(严格说存放在常量池,堆和栈都有)等类信息,说白了就是保存类的模板=27楼】
程序寄存器program counter register【速度最快且空间最小的一块区域,由编译器分配,我们对此没有直接的控制权】
注:方法区是一个独立区域,既不属于堆,也不属于栈,在类加载的时候只运行一次。
其实栈stack分为JVM stack(动态链接、方法出口)和native method stack。

分享到:
评论

相关推荐

    Java中堆内存和栈内存详解.doc

    ### Java中堆内存和栈内存详解 #### 一、引言 在Java编程语言中,内存管理是一项核心技能。为了更好地理解和使用Java,了解其内存分配机制至关重要。本文将详细介绍Java中的两种主要内存区域——堆内存(Heap ...

    Java中堆内存和栈内存详解文.pdf

    Java编程语言将内存划分为两种主要区域:栈内存和堆内存。栈内存主要用来存储基本类型(如int、char)的变量和对象的引用,而堆内存则用于存储通过`new`关键字创建的对象和数组。 栈内存的工作方式类似于数据结构中...

    Java中堆内存与栈内存分配浅析

    本文将深入探讨Java中堆内存与栈内存的分配机制,并通过对比分析它们之间的差异,帮助读者更好地掌握Java内存管理的核心概念。 #### 二、堆内存与栈内存概述 ##### 1. 堆内存 堆内存是Java虚拟机(JVM)用于存储...

    Java中栈内存和堆内存详解

    Java中栈内存和堆内存详解,非常容易理解

    详解java堆和栈

    ### 详解Java堆和栈 #### 一、引言 在Java编程中,理解堆(Heap)和栈(Stack)的概念及其区别对于程序员来说至关重要。本文将深入剖析这两个概念,并探讨它们之间的差异以及如何影响程序的运行。 #### 二、Java...

    详解java学习中堆与栈的内容

    在Java学习过程中,堆(Heap)和栈(Stack)是两个非常重要的概念,它们对于理解Java内存管理机制至关重要。很多初学者在接触到这两个概念时往往感到困惑,本文将深入浅出地介绍Java中的堆和栈,帮助大家更好地理解...

    Java中堆和栈的区别

    以下代码片段展示了如何在Java中使用栈和堆内存: ```java String a = "abc"; String b = "abc"; String c = new String("abc"); System.out.println(a == b); // true System.out.println(a.equals(b)); // true ...

    堆和栈详解

    堆和栈是计算机内存管理中的两个重要概念,它们在程序执行过程中起着至关重要的作用。在深入探讨这两个概念之前,我们需要明确一点:堆和栈在内存结构上有着本质的区别。 栈(Stack)是一种线性数据结构,其特点是...

    java 中堆内存和栈内存理解

    Java编程语言将内存分为两种主要区域:堆内存(Heap Memory)和栈内存(Stack Memory),这两部分内存各有其特点和用途。 栈内存主要用于存储程序执行过程中的一些临时数据,包括基本类型变量(如int、float、...

    详解Java的堆内存与栈内存的存储机制

    Java的内存管理主要涉及堆内存和栈内存,它们是Java虚拟机(JVM)内存模型的重要组成部分。堆内存主要用来存储对象实例,而栈内存则用于存储基本类型和对象引用。 1. **堆内存**: - **创建与回收**:当使用`new`...

    Java内存模型详解

    Java内存模型中另一个重要的组成部分是堆(Heap)和栈(Stack)。 - **堆**:用于存储对象实例。每个对象都位于堆上的某个位置,而对象的引用则存储在线程的本地栈中。堆空间由垃圾回收器管理,以释放不再使用的...

    java内存空间详解

    #### 二、栈内存详解 栈内存通常用于存储以下几类数据: - **基本数据类型变量**:如int、double等。 - **对象的引用变量**:虽然存储的是对象的引用,但引用本身是在栈内存中分配的。 - **局部变量**:方法内部...

    详解Java 中程序内存的分析

    本文将深入探讨Java程序在运行时如何使用内存,特别是JVM(Java虚拟机)如何处理栈和堆内存。 首先,栈内存主要负责存储基本数据类型(如int、float、boolean等)以及方法的局部变量。这些变量在方法执行时被创建,...

    Java堆,栈和常量池详解

    在深入探讨Java中的堆、栈以及常量池之前,我们先来简要回顾一下Java内存模型的基本概念。Java程序运行时会使用到不同的内存区域来存储各种类型的数据,这些区域包括:寄存器、虚拟机栈、本地方法栈、Java堆、方法区...

    Java内存模型详解JMM.docx

    Java内存模型(Java Memory Model,JMM)是Java虚拟机(JVM)中的一种内存模型,它描述了程序中各个变量之间的关系,以及在实际计算机系统中将变量存储到内存和从内存中取出变量这样的底层细节。JMM允许编译器和缓存...

    java内存分配详解

    Java程序在运行过程中涉及的内存主要分为两大类:栈内存和堆内存。 1. **栈内存**:主要用于存储局部变量,如基本数据类型变量(int、long、char等)以及对象的引用变量。这些变量在方法调用时创建,当方法结束时就...

Global site tag (gtag.js) - Google Analytics