static变量赋值给static,是否占用更多内存?在线等。。。

史前文物 2010-01-04 07:06:34
class 1:
private static final A = 1;

class 2:
private static final B = A;

这里是否要开辟两个内存空间给A,B,还是 B point to A?

谢谢了
...全文
244 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
史前文物 2010-01-04
  • 打赏
  • 举报
回复
对!

谢谢各位了,我结贴了
树成 2010-01-04
  • 打赏
  • 举报
回复
当然不会,甚至其它地方调用这两个引用都不会有任何多余内存开辟,只是引用本身要占用一点内存而已。
张祥龙 2010-01-04
  • 打赏
  • 举报
回复
看不懂,看来还是造化太浅
史前文物 2010-01-04
  • 打赏
  • 举报
回复
一个老外突然问我的这个问题,一下子闷着了,没反应过来,所以第一时间想到来这问下。。。呵呵
史前文物 2010-01-04
  • 打赏
  • 举报
回复
不好意思啊,写的着急了点

class 1:
private static final String A = "abc";

class 2:
private static final String B = A;
史前文物 2010-01-04
  • 打赏
  • 举报
回复
恩,貌似解决了

我打印了A,B的内存地址,是一样的。

System.out.println(A.getClass+"@"+A.hashCode());
System.out.println(B.getClass+"@"+B.hashCode());

输出的是:
class java.lang.String@930446297
class java.lang.String@930446297
左大神在这 2010-01-04
  • 打赏
  • 举报
回复
private static final B = A; 如果A,B是对象,那么这句执行后,A将会被垃圾回收掉,但不是马上回收。只是具备了垃圾回收的条件。
amdgaming 2010-01-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chuan122345 的回复:]
你的A,B到底是什么数据类型。
[/Quote]
int 吧,我看到 1了
amdgaming 2010-01-04
  • 打赏
  • 举报
回复
我 觉得 不会, 呵呵
左大神在这 2010-01-04
  • 打赏
  • 举报
回复
你的A,B到底是什么数据类型。
史前文物 2010-01-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 luv13 的回复:]
class 1:
private static final A = 1;

class 2:
private static final B = A;

这里是否要开辟两个内存空间给A,B,还是 B point to A?

谢谢了
[/Quote]

写错了,A is public

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧