导航:首页 > 安装方法 > 静态方法运行时信息存储在哪里

静态方法运行时信息存储在哪里

发布时间:2022-03-07 09:30:20

A. java中,静态变量存储在哪个区啊,堆还是栈啊,或者说其他地方,谢谢

首先,java里面是没有静态变量这个概念的,不信你自己在方法里面定义一个static
int
i
=0;java里只有静态成员变量。它属于类的属性。至于他放在那里?楼上说的是静态区。我不知道到底有没有这个翻译。但是
深入jvm里是是翻译为方法区的。虚拟机的体系结构:堆,方法区,本地方法栈,pc寄存器。而方法区保存的就是一个类的模板,堆是放类的实例的。栈是一般来用来函数计算的。随便找本计算机底层的书都知道了。栈里的数据,函数执行完就不会存储了。这就是为什么局部变量每一次都是一样的。就算给他加一后,下次执行函数的时候还是原来的样子。

B. java类中的静态方法是何时创建何时销毁的,存放在内存什么地方

你确定问的是静态方法?静态方法和普通方法一样都是在jvm类加载阶段加载到方法区的,当没有类加载器引用到该类对象时,full gc时就会被销毁。

C. java中,静态方法被调用是,存储在内存的哪个区域是栈还是放大区还是两者都有

在JDK8之前,静态成员(静态变量和静态方法)都是存储在方法区(永久代)中的静态区中(这里指类被加载后,静态成员的存储位置)。但在JDK8之后,永久代被移除了,取而代之的是元空间(metaspace)。但元空间中存储的主要是.class文件的元数据信息,静态成员的存储位置由方法区转到了堆内存(heap)中。
不过,不管是JDK8,还是更早的版本中,静态方法的执行(不仅仅是静态方法,还有普通的成员方法)都是在栈内存(stack)中进行的。每个线程都会在栈内存中开辟一个栈,在调用方法时,对应的方法都会在执行这个方法的线程的栈中创建一个“栈帧”,栈帧中保存了局部变量表(基本数据类型和对象引用)、操作数栈、动态连接和返回地址等信息。等到方法执行完毕,栈帧被销毁,对应的内存也将被释放。

D. java 静态方法很多,静态方法是存储在哪个代里

我问题是这样的: 问题补充:我的问题是既然,manager是单例的,那写成静态方法的调用又有何不可,从内存的角度分析看?java的gc角度看?能不能详细说一下 问题补充:suziwen 写道DAO,MANAGER写成静态的是实现 单例,那样才更省内存。。。我的问题是既然,manager是单例的,那写成静态方法的调用又有何不可,从内存的角度分析看?java的gc角度看?能不能详细说一下 问题补充:yqin 写道从JVM内存管理的角度谈谈静态方法和静态属性 我直接用静态方法得了。

E. static变量存储在哪里

该变量在全局数据区分配内存;
未经初始化的静态全局变量会被程序自动初始化为0(自动变量的值是随机的,除非它被显式初始化);
静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的;
静态变量都在全局数据区分配内存,包括后面将要提到的静态局部变量。对于一个完整的程序,在内存中的

代码区,全局数据区,堆区,栈区
一般程序的由new产生的动态数据存放在堆区,函数内部的自动变量存放在栈区。自动变量一般会随着函数的退出而释放空间,静态数据(即使是函数内部的静态局部变量)也存放在全局数据区。全局数据区的数据并不会因为函数的退出而释放空间。细心的读者可能会发现,Example 1中的代码中将
static int n; //定义静态全局变量
改为
int n; //定义全局变量
程序照样正常运行。
的确,定义全局变量就可以实现变量在文件中的共享,但定义静态全局变量还有以下好处:
静态全局变量不能被其它文件所用;
其它文件中可以定义相同名字的变量,不会发生冲突;

F. java静态变量存储在哪个区

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

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

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

G. 静态变量存储在哪个区

对于一个进程的内存空间而言,可以在逻辑上分成3个部份:代码区,静态数据区和动态数据区。
动态数据区一般就是“堆栈”。 栈是一种线性结构,堆是一种链式结构。进程的每个线程都有私有的“栈”。
全局变量和静态变量分配在静态数据区(全局区),本地变量分配在动态数据区,即堆栈中。程序通过堆栈的基地址和偏移量来访问本地变量。

H. JAVA的静态成员静态方法存储在哪儿

T.i,但是静态变量得有初始值,否则会报错吧,我记得是,静态变量可以类名打点直接调用

I. c语言中的静态存储变量是存储在哪里的,一般什么时候用

在栈中,这个是系统自己完成的,例如int a=4,而堆是可以由程序员进行随时申请的这里的栈类似于数据结构中的栈,而堆类似与数据结构中的链表。

J. java中静态方法在内存中的哪个区域

先分清楚运行时分为静态的“程序指令”和动态的“数据”,
数据又分为动态分配在堆上的,和函数调用时栈上的局部变量。

阅读全文

与静态方法运行时信息存储在哪里相关的资料

热点内容
引入新知的教学方法 浏览:875
初一英文完形填空的技巧和方法 浏览:996
cad问号怎么解决方法 浏览:410
腰椎间盘痛疼能锻炼的方法 浏览:966
用什么方法可以快速的去除牙结 浏览:938
淼淼淼瘦腿霜使用方法 浏览:982
亚硝酸钠检测方法 浏览:591
量具使用方法 浏览:636
2014退休工资计算方法 浏览:247
共集放大电路输出电阻计算方法 浏览:210
两位除以一位数计算方法 浏览:965
天麻下种方法和技巧 浏览:64
安卓怎么跳转界面方法 浏览:546
烫鸡的正确方法视频 浏览:620
高炮解决方法 浏览:489
贴地砖与踢脚线最正确的方法 浏览:176
微信检测雾霾的方法 浏览:754
痛经用什么方法缓解 浏览:533
有什么能给大脑降温的方法 浏览:262
生料带怎么缠绕方法 浏览:409