| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1877 人关注过本帖
标题:[求助]java中值类型和引用类型的存储方式
只看楼主 加入收藏
NiceGirl
Rank: 2
等 级:新手上路
威 望:4
帖 子:909
专家分:0
注 册:2006-6-18
收藏
 问题点数:0 回复次数:21 
[求助]java中值类型和引用类型的存储方式
问题一、以上两种类型在内存中是怎样存储的?
问题二、String a = "abc";
String b = null;
b=a;
这里的b=a传递的是什么?是值还是什么?
搜索更多相关主题的帖子: 中值 java 类型 
2006-08-02 16:21
lyd8935
Rank: 1
等 级:新手上路
帖 子:219
专家分:0
注 册:2006-5-14
收藏
得分:0 

好象是 字符串池
你这2个 String 只构造了1个 对象,只是名称不同而已

[此贴子已经被作者于2006-8-2 16:31:05编辑过]

2006-08-02 16:30
NiceGirl
Rank: 2
等 级:新手上路
威 望:4
帖 子:909
专家分:0
注 册:2006-6-18
收藏
得分:0 
不是这个意思,字符串池的概念我清楚了。
这里的b=a有的人说传递的是对象的引用(地址)本身,有的人说只是对象的引用(地址)的的副本,
当然这两种效果是一样的。不知道大家怎么理解的

曾经以为百般艰难,蓦然回首,才发现已飞渡千山。。!
2006-08-02 16:41
NiceGirl
Rank: 2
等 级:新手上路
威 望:4
帖 子:909
专家分:0
注 册:2006-6-18
收藏
得分:0 

C#中明确指出了这里传递的是对象的引用(地址)本身,而SUN公司未对此问题做出表态


曾经以为百般艰难,蓦然回首,才发现已飞渡千山。。!
2006-08-02 16:46
wxhwjsw
Rank: 1
等 级:新手上路
帖 子:274
专家分:0
注 册:2006-6-15
收藏
得分:0 
正好我也有个问题
class Number {
int i;
}
public class Value {
public static void main( String args[] ) {
Number v1 = new Number();
Number v2 = new Number();
v1.i = 20;
v2.i = 30;
System.out.println( "v1.i:" + v1.i + "\t" + "v2.i:" + v2.i );
v1 = v2;
v1.i = 10;
System.out.println( "v1.i:" + v1.i + "\t" + "v2.i:" + v2.i );
}
}
运行结果:
v1.i:20 v2.i:30
v1.i:10 v2.i:10
从道理上讲v1 = v2;两个对像指向同一个引用,所以第二次输出v1.i:10 v2.i:10
不过想起来心里总有点疙瘩,还请那位高手讲解一下..

[此贴子已经被作者于2006-8-2 19:55:22编辑过]


一个人的快乐,不是因为他拥有的多,而是因为他计较的少.
2006-08-02 17:20
lyd8935
Rank: 1
等 级:新手上路
帖 子:219
专家分:0
注 册:2006-5-14
收藏
得分:0 

你的 跟楼主的不一样
你的2个表达式都通过了 new 关键字 构造了2个不同的对象(即 开辟了2个栈内存,且值(内存地址)不相等 )

[此贴子已经被作者于2006-8-2 17:49:31编辑过]

2006-08-02 17:39
wxhwjsw
Rank: 1
等 级:新手上路
帖 子:274
专家分:0
注 册:2006-6-15
收藏
得分:0 
以下是引用lyd8935在2006-8-2 17:39:46的发言:

你的 跟楼主的不一样
你的2个表达式都通过了 new 关键字 构造了2个不同的对象(即 开辟了2个栈内存,且值(内存地址)不相等 )

没明白你说的什么意思 我要的是你解释一下为什么第二次输出两个是一样的 你这说到哪去了?

一个人的快乐,不是因为他拥有的多,而是因为他计较的少.
2006-08-02 17:56
NiceGirl
Rank: 2
等 级:新手上路
威 望:4
帖 子:909
专家分:0
注 册:2006-6-18
收藏
得分:0 
第二次输出的不一样啊
v1.i=10, v2.i=30
还是等于30啊

曾经以为百般艰难,蓦然回首,才发现已飞渡千山。。!
2006-08-02 18:02
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 

楼主问题
我认为是将a里面的值付给b
a里面的值是“abc”这个对象的地址


win32汇编
病毒 加密
目前兴趣所在
2006-08-02 18:08
NiceGirl
Rank: 2
等 级:新手上路
威 望:4
帖 子:909
专家分:0
注 册:2006-6-18
收藏
得分:0 

楼上的和我们老师说的一样呵呵
java里没有址传递


曾经以为百般艰难,蓦然回首,才发现已飞渡千山。。!
2006-08-02 18:11
快速回复:[求助]java中值类型和引用类型的存储方式
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037837 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved