88问答网
所有问题
JAVA中类中的方法存储在什么地方?
如题所述
举报该问题
推荐答案 2012-06-12
类加载时 方法信息保存在一块称为方法区的内存中, 并不随你创建对象而随对象保存于堆中。可参考《深入java虚拟机》前几章。
另参考(他人文章):
如果instance method也随着instance增加而增加的话,那内存消耗也太大了,为了做到共用一小段内存,Java 是根据this关键字做到的,比如:instance1.instanceMethod(); instance2.instanceMethod(); 在传递给对象参数的时候,Java 编译器自动先加上了一个this参数,它表示传递的是这个对象引用,虽然他们两个对象共用一个方法,但是他们的方法中所产生的数据是私有的,这是因为参数被传进来变成call stack内的entry,而各个对象都有不同call stack,所以不会混淆。其实调用每个非static方法时,Java 编译器都会自动的先加上当前调用此方法对象的参数,有时候在一个方法调用另一个方法,这时可以不用在前面加上this的,因为要传递的对象参数就是当前执行这个方法的对象。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://88.wendadaohang.com/zd/SgaMVgKtK.html
其他回答
第1个回答 推荐于2017-10-12
类的实例方法在内存中是只有一份,不过肯定不会是第一个对象中,如果是第一个对象的话,那么当第一个对象被销毁的时候,那么后面的对象就永远无法调用了...
类的实例方法存在一个专门的区叫方法区,事实上类刚装载的时候就被装载好了,不过它们在"睡眠",只是这些方法必须当有对象产生的时候才会"苏醒".(比如,一个输出类的成员变量的方法,如果连对象都没有,何来的输出成员变量).所以,方法在装载的时候就有了,但是不可用,因为它没有指象任何一个对象。
本回答被网友采纳
第2个回答 2012-05-06
Java中自带类库,类被包装在Java自带的包中,如java.lang包,直接可以使用的,没必要去考虑这些
相似回答
JAVA中类中的方法存储在什么地方?
答:
类的实例方法存在一个专门的区叫方法区
,事实上类刚装载的时候就被装载好了,不过它们在"睡眠",只是这些方法必须当有对象产生的时候才会"苏醒".(比如,一个输出类的成员变量的方法,如果连对象都没有,何来的输出成员变量).所以,方法在装载的时候就有了,但是不可用,因为它没有指象任何一个对象。
java中
使用类创建对象后,该对象
的方法在
堆内存中是怎样
存储的?
答:
方法不存在在堆内存中,是放在代码区
,只有在调用的时候,才会构建该方法的运行时环境,包括参数,局部变量等,当然,这些也都是在栈内存中的。对内存只存放被new出来的东西。你可以读读编译原理相关的书,这种问题就清楚了。
java中方法
必须写在类体
里
吗
答:
是的,
java一切都是以类的形式存在,方法是类的一部分,需要通过类才能进行方法的调用
。从内存存储角度来说,java中找对应方法时,都是先找对应类实例,类实例是根据类来初始化内存的。如果方法在类外部,则无法找到该方法。所以方法必须在类体里。
java中
,静态
方法
被调用是,
存储在
内存
的哪个
区域?是栈?还是放大区?还是...
答:
都是在栈内存(stack)中进行的
。每个线程都会在栈内存中开辟一个栈,在调用方法时,对应的方法都会在执行这个方法的线程的栈中创建一个“栈帧”,栈帧中保存了局部变量表(基本数据类型和对象引用)、操作数栈、动态连接和返回地址等信息。等到方法执行完毕,栈帧被销毁,对应的内存也将被释放。
JAVA
静态
方法
会
存储在
硬盘还是内存,静态变量
的
初始销毁时间
在什么
时候...
答:
你们麻烦说清楚点,不要误人
java的
static
方法
变量,在程序运行前,
保存在
文件中(硬盘),以class文件中中间码存在,在编译时确定内存地址 程序运行时,就将地址映射到内存,等于就进入内存。DLL原理你看看
JAVA中方法
区是不是堆
的
一部分
答:
简单说,所有定义
的方法的
信息都
保存在
该区域,此区属于共享区间。静态变量 + 常量 + 类信息(构造方法/接口定义) + 运行时常量池
存 在
方法区中 。但是, 实例变量 存在 堆内存 中,和方法区无关。以上,只是逻辑上的定义。在HotSpot中,方法区仅仅只是逻辑上的独立,实际上还是包含在
Java
堆中,也是...
Java
基本数据类型作为局部变量
存储在
哪
答:
栈中,运行到一个方法的时候,会在栈中创建一个代码块,专门
存放方法的
变量,方法完成后吗,
方法里
所有的变量都出栈 追问 也就是说只要是基本数据类型,就都
存放在
栈里是吗?? wk2389593 | 发布于2012-02-17 举报| 评论 3 0 栈内存中存放基本数据类型,由GC负责回收 flyingFish211 | 发布于2012-02-17 举...
java的方法
中new的对象
存储在
内存中那个区域
答:
这个对象存在堆中,还是栈中?答:堆,new一个对象,一定是在堆中
方法
内部new出来的对象,在哪里存着?答:堆,new出来对象的实例变量都存在堆上面。栈,这个东西,需要理解为:线程运行时,才会创建,执行完,就没了。Person p = new Person();上面这段代码,在执行时,p压入栈,通过局部变量表,...
大家正在搜
稀疏矩阵一般的压缩存储方法
新鲜苹果储存方法
苹果保鲜储存方法
苹果的保存最佳方法
稀疏矩阵的压缩存储方式
最新白菜存储方法
Java的static方法
存储方式
数据存储方式
相关问题
JAVA中类中的方法存储在什么地方?
Java存储到什么地方
Java数组是存储在内存中的什么地方
java在运行的时候,形参保存在什么地方
java的类在刚定义好还没有new的时候它在内存中存放在什么...
java 变量名存储在哪里
java 基本数据类型 变量赋的值,储存在计算机的哪里啊 e...
Java的object储存在哪里?