永发信息网

实例化对象问题

答案:4  悬赏:70  手机版
解决时间 2021-03-24 06:46
  • 提问者网友:龅牙恐龙妹
  • 2021-03-23 12:16
class Person{
String name;
int age;
}
public class JavaDemo13{
public static void main(String args[]){
Person person1=new Person();
person1.name="123";
person1.age=22;
Person person2=person1;
System.out.println(person1.name+person1.age);
System.out.println(person2.name+person2.age);
}
}
程序运行后,有没有为person2开辟新的堆内存空间,求详解
最佳答案
  • 五星知识达人网友:煞尾
  • 2021-03-23 12:54
程序输出的结果是一样的,运行之后,并没有为person2开辟新的堆内存空间,
Person person2=person1;仅仅是person1的赋值给了person2,person2指向person1的引用,与person1共用同一个内存地址,所以没有为person2开辟新的空间。
全部回答
  • 1楼网友:逃夭
  • 2021-03-23 14:44
person2=person1的时候就开辟了堆空间,这种写法等于 person2 = new person(); person2.name = person1.name; person2.age = person1.age; 如果person3 = new Person() person2 = person3 这个时候就不会开辟堆空间了。
  • 2楼网友:长青诗
  • 2021-03-23 14:35
不有为person2开辟新的堆空间; new 出来的对象是在堆内存中,Person person2 = person1; 只是声明一个person2变量指向了person1所在的堆内存空间地址,这两个对象的内存地址是相同的;
  • 3楼网友:从此江山别
  • 2021-03-23 13:59

每个 java 应用程序都有一个 runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getruntime 方法获取当前运行时。

应用程序不能创建自己的 runtime 类实例。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯