JAVA中实例化一个对象,成员方法中的参数会在哪分配内存(栈/堆)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中实例化一个对象,成员方法中的参数会在哪分配内存(栈/堆)?相关的知识,希望对你有一定的参考价值。

首先内存总体分为了4个部分,包括 stack segment 、heap segment、code segment 、data segment ;
其中我们程序中用关键字new出来的东西都是存放在heap segment;
程序中的局部变量存放在stack segment,这些局部变量是在具体方法执行结束之后,系统自动释放内存资源(而heap segment中的资源需要java垃圾回收机制来处理);
程序中的方法,是内存中的code segment中的,而且是多个对象 共享一个代码空间区域;
static静态变量,需要放在内存中的data segment中,
参考技术A 成员方法?
JAVA中实例化一个对象
会实例该类中的一些成员变量
成员变量也要看是具体对象
还是基础变量
基础变量存储在
栈中
而具体对象引用存在于栈中
具体内容存在堆中
一些特殊的变量
比如静态变量会在类加载的时候在特殊的静态区分配
L楼主说是成员方法???
实例化对象
对成员方法中的参数是不产生影响的
只有实例对象调用方法的时候
其具体涉及到的方法体内的局部变量才会在内存中分配
分配方式依然是:
java基础变量
和java对象
基础变量存储在
栈中
而具体对象引用存在于栈中
具体内容存在堆中
参考技术B 成员方法中的参数会分配在栈中,参数指向堆中的方法体。 参考技术C java那个所有的对象都在堆中,成员方法的参数应该属于临时变量,放在栈中,个人看法,
不过jVM有自动垃圾回收机制,如果放在堆中也无所谓,反正它自己会回收
期待高手更正

以上是关于JAVA中实例化一个对象,成员方法中的参数会在哪分配内存(栈/堆)?的主要内容,如果未能解决你的问题,请参考以下文章

Java常识31 void 实例化对象后面带参数 实例变量(重点)多测师

Java String引用传递问题

java面向对象(上)--构造方法与this关键字

java中实例化方法是啥意思

Java中的静态和枚举

Java学习笔记:面向对象