精华内容
下载资源
问答
  • 静态变量存储在哪个区

    万次阅读 2019-06-26 22:40:35
    静态变量存储在__ A 全局 B 堆 C 栈 D 常量 参考答案:A 知识点 内存到底分几个? 1、栈(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。 2、堆(heap) — 一般由程序员...
    静态变量存储在__区 
    A 全局区 
    B 堆 
    C 栈 
    D 常量区
    

    参考答案:A


    知识点

    内存到底分几个区?

    1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。

    2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由os回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。

    3、全局区(静态区)(static)—全局变量静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后有系统释放。

    4、文字常量区 — 常量字符串就是放在这里的。 程序结束后由系统释放。

    5、程序代码区 — 存放函数体的二进制代码

    展开全文
  • 主要介绍了Java static(静态变量)和私有化功能与用法,结合具体实例形式分析了Java static(静态变量)和私有化的相关概念、原理、使用方法及操作注意事项,需要的朋友可以参考下
  • 静态局部变量保存在全局数据,而不是保存在栈中,每次的值保持到下一次调用,直到下次赋新值。该变量在全局数据区内分配内存;静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行...
  • java中静态变量在内存中的位置

    千次阅读 2019-09-10 14:11:16
    java程序内存中的存储分配情况:一、堆: 1.存储的全部是对象,每个对象...1.每个线程包含一个栈,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放中 2.每个栈中的数据(原始类型...

    java程序在内存中的存储分配情况:

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

     

     

    二、内存分区
    而内存分为四个区:stack segment,heap segment,data segment,code segment;
    stack 区存放函数参数和局部变量;heap  区存放对象;data  区存放static 的变量或者字符串常量; code  区存放类中的方法;
    因此,静态变量是存放在data区的 !

    展开全文
  • 静态变量随着类的加载而存在,随着类的消失而消失(类不消失一直存在(不考虑回收机制),生命周期长) 2,调用方式不同。 成员变量只能被对象调用 静态变量可以被对象调用,还可以被类名调用(建议使用类名...

    1,两个变量的生命周期不同。

         成员变量随着对象的创建而存在,随着对象的回收而释放

         静态变量随着类的加载而存在,随着类的消失而消失(类不消失一直存在(不考虑回收机制),生命周期长)

    2,调用方式不同。

         成员变量只能被对象调用

         静态变量可以被对象调用,还可以被类名调用(建议使用类名调用,便于区分)

    3,别名不同。

         成员变量也称为实例变量

         静态变量也称为类变量

    4,数据存储位置不同。

         成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据。

         静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据

    展开全文
  • 静态存储区与全局变量

    千次阅读 2019-03-20 21:55:00
    静态变量存储在静态/静态全局/静态存储,因为内存区域分5个:堆,栈,字符常量,静态,代码。 这个内存区域有什么特点?我们知道栈的特点是 :变量的申请与释放都是由操作系统帮我们管理的,...

    接下来说存储类说明符的第二个知识点——静态变量,它包括三种:全局变量/外部变量,静态全局变量,静态局部变量

    非常重要!工作中必用。接近于底层的一个理解。

    特点:

    静态变量存储在静态区/静态全局区/静态存储区,因为内存区域分5个区:堆区,栈区,字符常量区,静态区,代码区。

     

    这个内存区域有什么特点?我们知道栈区的特点是 :变量的申请与释放都是由操作系统帮我们管理的,而且变量的生命周期在它的作用域结束的时候,就放掉了。

    静态存储区的特点:

    1 静态存储区的变量/我们申请的空间 会自动初始化为0。不管是int a,你定义好了这个a之后,也不用去初始化,a里面的值就是0.你定义一个指针 int * p,p里面就是NULL. 你定义一个结构体,有多个成员,每个成员都是0.定义一个数组,数组的所有成员都被初始化为0.

    2.生命周期与程序共存亡。

    像栈区的局部变量,它的作用域就是这个变量所在的{}范围内,从它定义的这一行开始直到{}结束,这么一个区域。

    而静态变量是与程序共存亡的,从它创建开始到软件关闭,这块空间才会释放。

    3.静态存储区的静态变量在程序运行的时候,在加载资源阶段分配空间。

    解释一下"加载资源阶段分配空间":一个程序执行入口是主函数,当软件一打开的时候,不会直接执行主函数的,是要加载一些资源,也就是软件要运行所必要的资源,加载到内存。 

    资源加载完了,软件运行的环境就相当于搭建好了,资源加载完了,开始执行主函数。

     即使说静态变量定义在主函数里面了,这个变量依然是在程序加载的阶段申请空间。

     

     

     

    全局变量 :

    位置:写在全局的位置。?!

     

    只要不在任何函数内,就叫 全局变量。

     全局变量会自动初始化为0.

    当然也可以手动初始化成 想要的值。

    当全局变量与局部变量重名,在局部位置,局部变量有效。

     

    转载于:https://www.cnblogs.com/dabing0983/p/10568017.html

    展开全文
  • 网上有很多关于类变量存储位置的文章,比如http://gao-xianglong.iteye.com/blog/2152345 说明静态变量是存储方法中,但是本人随便写了个例子如下: public static Object o = new Object[999999999]; public ...
  • 1、bss是英文block started by symbol的简称,通常是指用来存放程序中未初始化的全局变量的一块内存区域,程序载入时由内核清0。bss段属于静态内存分配。它的初始值也是由用户自己定义的连接定位文件所确定,用户...
  • 由编译器需要的时候分配,不需要的时候自动清楚的变量存储区。里面的变量通常是局部变量、函数参数等。 2、堆 由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一...
  • 方法(Method Area)存储静态变量

    千次阅读 2019-12-31 10:54:21
    1:方法(Method Area)存储静态变量 静态变量又称为类变量,类中被...八种基本数据类型(byte、short、int、long、float、double、char、boolean)的静态变量方法开辟空间,并将对应的值存储在方法方...
  • 即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量);静态变量的初始值为0。4.当多次调用一个函数且要求调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用...
  • static静态变量在内存中的存储

    万次阅读 2018-05-18 15:32:13
    static用来控制变量存储方式和可见性 函数内部定义的变量程序执行到它的定义处时,编译器为它栈上分配 空间,函数栈上分配的空间此函数执行结束时会释放掉,这样就产生了一个 问题: 如果想将函数中此...
  • 一、内存基本构成 可编程内存在基本上分为...栈执行函数时,函数内局部变量存储单元都可以栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的...
  • 静态变量是放在方法还是堆里,我看《深入理解Java虚拟机》书里写的是放在方法区里?...JDK7及其以后版本的HotSpot虚拟机选择把静态变量与类型Java语言一端的映射class对象存放一起,存储于Java堆之中。 ...
  • Java中的变量根据不同的标准可以分为两类,以其引用的数据类型的不同来划分可分为“原始数据类型变量和引用数据类型变量”,以其作用范围的不同来区分可分为“局部变量,实例变量和静态变量”。 根据“...
  • 文章目录静态变量、实例变量、局部变量JVM中存放的位置 静态变量、实例变量、局部变量JVM中存放的位置 总结一下这三种变量JVM中存放的位置,首先看一段代码: public class StaticObjTest { static class ...
  • 从 JDK 1.7 开始,Oracle 团队就开始对 HotSpot VM 的永久代(PermGen)大刀阔斧的修改、移除,导致 HotSpot 的内存区域发生了很多改变,最终 JDK 1.8 元空间(Metaspace)取代了永久代成为 HotSpot VM 对方法的...
  • C++的static有两种:面向过程...全局变量前,加static,该变量被定义为一个静态全局变量 特点: 该变量在全局数据区分配内存 未经初始化的静态全局变量会被程序自动初始化为0(自动变量的值是随机的,除非它被...
  • 变量,常量,静态变量存储的位置

    万次阅读 多人点赞 2013-10-12 21:34:03
    由编译器需要的时候分配,不需要的时候自动清楚的变量存储区。里面的变量通常是局部变量、函数参数等。 2、堆 由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一...
  • 静态变量,全局动态变量都是静态存储存储在全局数据变量定义时就分定存储单元并一直保持不变,直至整个程序结束。静态存储变量是一直存在的,只会初始化一次。 2.2动态存储 局部动态变量是动态存储, 动态...
  • 比较全局变量、全局静态变量、局部变量、局部静态变量的区别... 1、栈(stack) 由编译器需要的时候自动分配释放,不需要的时候就自动清除的变量存储区。通常存放的变量是函数的参数值、局部变量的值等,其操...
  • Java中的变量类型根据不同的标准可以分为两类,如果以其引用的数据类型的不同来区分可分为“原始数据类型变量和引用数据类型变量”,如果以其作用范围的不同来区分可分为“局部变量,实例变量和静态变量”。...
  • 关于全局变量和局部变量,静态变量的关系如何?以及他们在内存在是存储于哪部分的?做个记录,以便往后查看。 1. 全局变量和静态变量 全局变量:又称外部变量,与之相对的是局部变量,是从变量的作用域上来考量的...
  • 共有两种变量存储在静态存储:全局变量和static变量,只不过和全局变量比起来,static可以控制变量的可见范围,说到底static还是用来隐藏的。 ---基于以上两点可以得出一个结论:把局部变量改变为静态变量后是...
  • static静态变量的理解

    千次阅读 2018-07-22 17:26:37
    static静态变量的理解 静态变量 类型说明符是static。静态变量属于静态存储方式,其存储空间为内存中的静态数据静态存储区内分配存储单元),该区域中的数据整个程序的运行期间一直占用这些存
  • 静态变量存储在全局数据(静态数据) 2、生命期 动态变量:根据你定义的位置确定,比如你一个函数中定义的,那么超出该函数范围变量将失效 静态变量:程序结束时才释放 3、作用域 动态变量:同样的要...
  • 这种变量就称为实例变量,是类声明的内部但是类的其他成员方法之外声明的。 当一个对象被实例化之后,每个实例变量的值就跟着确定; 实例变量在对象创建的时候创建,对象被销毁的时候销毁; 实例变量的值应该...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 627,241
精华内容 250,896
关键字:

静态变量存储在哪个区