java 对象赋值怎么不改变原来的对象的引用 把对象和变量,这两个概念区分清楚,比如:String str = "abc";这里面等号左边是变量,等号右边是对象。String tmp = str;等号左右两边都是变量,赋值的内容就是str所引用对象的地址。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 两个类 比如两个Integer i1,i2i1 = new Integer(1);i2 = new Integer(2);现在 i1和i2 引用不同现在想将i2 里的所有值赋给i1使用 i1 = i2 后 , i1的引用 就变成i2的了,怎么可以让i2 赋值 i1后 ,但是 i1 引用不变呢? 首先你要搞懂什么是引用,打个比方吧,电风扇的调档方向扭,它每次只能指向一个档,它就相当于一个引用,当你将它打到1档时,它所引用的是1,调到2档时它所应用的是2,你不能同时将它即引用1又引用2吧,所以,如果你将i2赋给i1后,i1的引用指向了i2对象的地址,除非i1和i2指向的是同一个对象。 对象的引用可以指向堆内存存放的对象(内容)2个对象的引用可以同时指向一个对象那么他们的内容肯定是相同的String s1="对象";String s2=s1; 你的问题有很多概念性的错误,我来帮你重新翻译一遍吧两个类 比如两个Integer i1,i2 //应该是说Integer类的2个引用类型的变量i1,i2i1 = new Integer(1);i2 = new Integer(2);现在 i1和i2 引用不同 //2个引用类型的变量指向不同的内存空间现在想将i2 里的所有值赋给i1 //将i2所指向对象所有成员变量的值赋值给i1所指向的对象使用 i1 = i2 后 , i1的引用 就变成i2的了, //使用i1=i2,i1也指向i2所指向的内存空间了怎么可以让i2 赋值 i1后 ,但是 i1 引用不变呢?解答:我觉得你将i2指向的对象的成员变量的值挨个赋值给i1指向的对象不就行了吗?数据很多吗?这样应该可以解决你的问题吧 用java的 克隆建议用深克隆,不要用浅克隆,去百度搜索一下就知道了 这个问题确实是新手有时比较纠结的问题。 java有个深复制和浅复制的问题。你看了就知道了。 JAVA 随机数 java飞屏制作 jcombobox里面的文本怎么根据窗口大小自动换行 JAVA的主要应用范围是什么? 求Windows下JAVA开发环境,类似VC的那种IDE。 向各位大虾询问一个关于文件选择对话框的使用问题??? 有那位朋友知道如何把java的程序打包成可以执行文件 大家是如何熟悉java类库的?(除了jdk文档)书籍或网站或 ....?? 送分题-------------〉〉〉jar的问题 谁能帮我从理论上讲讲文件上传的工作原理(java中)???? JAVA AES 加密后,结果的长度 弄Swing厉害的进来帮帮忙
i1 = new Integer(1);
i2 = new Integer(2);
现在 i1和i2 引用不同
现在想将i2 里的所有值赋给i1
使用 i1 = i2 后 , i1的引用 就变成i2的了,
怎么可以让i2 赋值 i1后 ,但是 i1 引用不变呢?
String s2=s1;
i1 = new Integer(1);
i2 = new Integer(2);
现在 i1和i2 引用不同 //2个引用类型的变量指向不同的内存空间
现在想将i2 里的所有值赋给i1 //将i2所指向对象所有成员变量的值赋值给i1所指向的对象
使用 i1 = i2 后 , i1的引用 就变成i2的了, //使用i1=i2,i1也指向i2所指向的内存空间了
怎么可以让i2 赋值 i1后 ,但是 i1 引用不变呢?
解答:我觉得你将i2指向的对象的成员变量的值挨个赋值给i1指向的对象不就行了吗?数据很多吗?这样应该可以解决你的问题吧
用java的 克隆
建议用深克隆,不要用浅克隆,去百度搜索一下就知道了