《think in java》里有关static和preference 去掉,st1.i和st2.i的值还都是47,但不再指向同一存储体 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 但是我用System.out.println(st1+" "+st2);显示:StaticP@126b249 StaticP@182f0db不知道上面这个显示是什么意思?如果是存储体,显然st1,st2不是指向同一储存体。又怎么解释?谢谢 StaticP@126b249 StaticP@182f0db@后面可以理解为内存地址 楼上还是没看明白我的意思。为什么这两个内从地址不一样?class StaticTest { static int i = 47 ; }..........StaticTest st1=new StaticTest();StaticTest st2=new StaticTest();书上说这里st1.i和st2.i的值都是47,因为是指向同一块储存体。System.out.println(st1+" "+st2);显示:StaticTest@126b249 StaticTest@182f0db不是说st1和st2都指向同一块储存体了,怎么StaticTest@126b249 StaticTest@182f0db不一样啊? st1和st2 是不同对象应该存储再不同的存储体,但是由于i是static 类型所以所有对象对应的这个变量都是在同一个存储体吧 同意cauczqy0905(Benge)的,这个好象牵涉到一个存储的问题,Java的对象的reference都是存在栈里的﹐而对象则存在于堆中,Java从堆中为对象分配内存。所以我怀疑你说的那个是栈地址 StaticTest@126b249 StaticTest@182f0db是两个类实例的内存地址 String[][]删除操作 jxl 同时生成多个excel遇到的线程问题? java中二叉树删除节点问题(假设只删除一个) 一个关于JDBC练接数据库的问题 help me! 怎样调用oracle中的function? 如何从sql server中读取图片并显示出来??下面的程序为什么不行呀??(谢谢) 有人愿意帮初学的小师妹理解几个概念吗? InputStream的有关问题! Package sunw.admin.snmp not found in import 用DataInputStream 从文件中读整数,不知道如何实现 国际化的问题
System.out.println(st1+" "+st2);
显示:StaticP@126b249 StaticP@182f0db
不知道上面这个显示是什么意思?如果是存储体,显然st1,st2不是指向同一储存体。又怎么解释?
谢谢
@后面可以理解为内存地址
为什么这两个内从地址不一样?
class StaticTest {
static int i = 47 ;
}
..........
StaticTest st1=new StaticTest();
StaticTest st2=new StaticTest();
书上说这里st1.i和st2.i的值都是47,因为是指向同一块储存体。
System.out.println(st1+" "+st2);
显示:StaticTest@126b249 StaticTest@182f0db不是说st1和st2都指向同一块储存体了,怎么StaticTest@126b249 StaticTest@182f0db不一样啊?
这个好象牵涉到一个存储的问题,Java的对象的reference都是存在栈里的﹐
而对象则存在于堆中,Java从堆中为对象分配内存。所以我怀疑你说的那个是栈地址