A. java 静态方法在哪个内存块
内存分为方法区,堆,栈。静态方法属于类级别的,在方法区
B. 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区的 !
C. JAVA静态方法 会存储在硬盘还是内存,静态变量的初始销毁时间在什么时候
你们麻烦说清楚点,不要误人
java的static方法变量,在程序运行前,保存在文件中(硬盘),以class文件中中间码存在,在编译时确定内存地址
程序运行时,就将地址映射到内存,等于就进入内存。
DLL原理你看看
D. Java静态方法和实例方法在内存的分布情况
像类、静态(static)变量还有代码块都存储在方法区里,栈中存储的是静态方法、实例方法和变量,堆中存储的是实例对象和实例变量。
E. Java中的静态方法是什么
静态方法是在类中使用staitc修饰的方法,在类定义的时候已经被装载和分配。
静态方法为类所有,可以通过对象来使用,也可以通过类来使用。
我们之前一直写的mian方法仔细看看,它就是一个静态方法,静态方法使用如下:
F. java中 static变量和方法到底是存在内存什么区域
JVM内存总体一共分为了
4个部分(stack segment、heap segment、code segment、data segment)
当我们在程序中,申明一个局部变量的时候,此变量就存放在了 stack segment(栈)当中;
当new 一个对象的时候,此对象放在了heap segment(堆)当中;
而static 的变量或者字符串常量 则存在在 data segment(数据区)中;
那么类中方法的话,是存在在 code segment(代码区)中了。
G. java中静态对象是存放在堆还是栈
Java 把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java 会自动释放掉为该变量分配的内存空间,该内存空间可以立即被另作它用。
堆内存用来存放由 new 创建的对象和数组,在堆中分配的内存,由 Java 虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或者对象之后,还可以在栈中定义一个特殊的变量,让栈中的这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或者对象,引用变量就相当于是为数组或者对象起的一个名称。引用变量是普通的变量,定义时在栈中分配,引用变量在程序运行到其作用域之外后被释放。而数组和对象本身在堆中分配,即使程序运行到使用 new 产生数组或者对象的语句所在的代码块之外,数组和对象本身占据的内存不会被释放,数组和对象在没有引用变量指向它的时候,才变为垃圾,不能在被使用,但仍然占据内存空间不放,在随后的一个不确定的时间被垃圾回收器收走(释放掉)。
这也是 Java 比较占内存的原因,实际上,栈中的变量指向堆内存中的变量,这就是 Java 中的指针!
H. java中方法存放在什么内存区域,静态的和非静态的在同一内存么
我觉得
静态方法
也是存放在栈里面的,但是何时创建何时销毁不是很清楚。理论上方法调用时创建一个新的
栈帧
,方法执行完成之后该栈帧就会被销毁,但是java的静态方法不知道是否特殊。
I. java类中的静态方法是何时创建何时销毁的,存放在内存什么地方
你确定问的是静态方法?静态方法和普通方法一样都是在jvm类加载阶段加载到方法区的,当没有类加载器引用到该类对象时,full gc时就会被销毁。
J. JAVA的静态成员静态方法存储在哪儿
T.i,但是静态变量得有初始值,否则会报错吧,我记得是,静态变量可以类名打点直接调用