数据存储之栈堆

栈存储的数据有:方法中的参数,随着方法的执行完而消失

堆存储的数据有: new出来的对象,由程序员分配内存

全局区:静态数据和常量

public Class MyTest
{
    int math;
    int  chinese;

   public MyTest(int math,int chinese)
   {
       this.math = math;
       this.chinese = chinese;

   }

   public int  SaySomething()
   {
      int total =this.math + this.chinese;
      return total;
   }

}

public Class Test
{
  static void main()
  {
    int math = 79;//栈
    int chinese =80;//栈
    static  int aa = 40;//全局区

   // myTest 栈   new MyTest(math,chinese)堆
    MyTest myTest = new MyTest(math , chinese);

    int total = myTest.SaySomething();//栈
  }

}

详细介绍http://blog.sina.com.cn/s/blog_8e7c33e9010100e5.html在该文中。

时间: 2024-11-09 09:50:54

数据存储之栈堆的相关文章

iOS数据存储类型 及 堆(heap)和栈(stack)

iOS数据存储类型 及 堆(heap)和栈(stack) 一般认为在c中分为这几个存储区: 1栈 --  由编译器自动分配释放. 2堆 --  一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收. 3全局区(静态存储区)-- 全局变量和静态变量的存储是放在一块区域 ,程序退出后自动释放 .全局区又分为全局初始化区和全局未初始化区.初始化的全局变量和静态变量存放在全局初始化区,未初始化的全局变量和未初始化的静态变量存放在相邻的另一块区域. 4常量区-- 专门放数字/字符常量的地方, 程

Java 数据存储

JAVA在程序运行时,在内存中划分5片空间进行数据的存储,分别是: 寄存器register 最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制 最快的存储区(由编译器根据需求分配,无法从程序中控制) 位于处理器内部 数量有限 常量存储constant storage 存放字符串常量和基本类型常量(public static final) 常量值通常直接存放在程序代码内部 有时在嵌入式系统中,常量本身会和其他部分分割离开,所以在这种情况下,可以选择将其放在ROM中 (ROM,Read

转:内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理][转载]

内存区划分.内存分配.常量存储区.堆.栈.自由存储区.全局区[C++][内存管理][转载] 一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域.- 程序结束释放4.另外还有一个专门放常量的地方.- 程序结束释放                          

内存分配及变量存储位置(堆、栈、方法区常量池、方法区静态区)

转载来源:http://www.cnblogs.com/protected/p/6419217.html 侵删! 程序运行时,有六个地方都可以保存数据: 1. 寄存器:这是最快的保存区域,因为它位于和其他所有保存方式不同的地方:处理器内部.然而,寄存器的数量十分有限,所以寄存器是根据需要由编译器分配.我们对此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何踪迹. 2. 堆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中(new 出来的对象).驻留于常规RAM

ios笔记-静态存储区、堆、栈

1.概念解释 静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.它主要存放静态数据.全局数据和常量. 栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放.栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限. 堆区:亦称动态内存分配.程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负责在适当的时候用free或delete释放内存.动态内存的生存期可以由我们决定,如果我们不释放内存

C语言之程序中内存的来源:栈 堆 数据段

程序在运行的时候,其内存的来源主要通过三种方法:  栈  堆  数据段,总体上来讲栈是一般用来存放小内存的局部变量,堆内存和数据段的属性很像,在使用的的时候,如果这个变量是伴随程序一直存在则使用全局变量,也就是放在数据段,如果一个变量使用完了就没用了,那么就适合用堆内存(先申请,然后释放即可), 一:栈(stack): 1:栈在使用的时候是编译器自动分配内存空间的,不需要程序员的干涉,其次栈的大小是有限的,所以当我们定义的变量需要大片的内存的时候就不适合使用栈, 2:栈存放的是普通变量,栈的在使

变量存储区:堆和栈

最近在看PHP源码解析,涉及到堆栈存储区的知识,而我对于这个却不太清楚,因此,看了一下相关资料,总结一下. 栈 栈,存储函数中的局部变量(临时变量),存储函数地址,栈是后进先出的结构,由CPU管理和优化. 使用栈存储变量的优势在于:你不用再管理内存了,不必手动分配内存或释放它,此外,由于CPU相关的优化,读取写入的效率也很高. 关于栈需要注意的一点是:存储在栈上的变量的大小是有限制的,而堆却不是. 堆 堆是计算机内存的一块区域,不会自动为你管理内存,也不是由CPU严格管理的.它是一个更自由的内存

我的全栈之路-Java基础之数据存储

我的全栈之路-Java基础之数据存储 我的全栈之路 2.1 标识符 标识符是在程序开发时给包,类.接口.注解,变量,方法命名的字符序列. 标识符在命名时需要遵守相关的规则和规范: 标识符的命名规则: 标识符不能是Java的关键字和保留字,关键字是Java中被赋予赋予特殊含义的单词,例如public static void等等.保留字是现有Java版本尚未使用,但是未来的Java版本可能会做关键字使用的单词,例如goto,const.但是可以包含关键字,保留字. 标识符可以由字母.数字.下划线组成

Java的运行时数据存储机制

原文地址:http://yanwushu.sinaapp.com/java_data_storage/ Java程序在运行时需要为一系列的值或者对象分配内存,这些值都存在什么地方?用什么样的数据结构存储?这些数据结构有什么特点?本文试图说明此命题的皮毛之皮毛. 概念 对于Java,有六个不同的.用于数据存储的概念,他们是: 1.     寄存器( register),是最快的存储区,位于处理器内部.因为寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配.程序员无法使用Java代码使用寄存器