大家帮忙解决一个java问题

设有下面两个赋值语句:a=Double.parseDouble(“4.6”);b=Double.valueOf(“4.6”);问:a和b是变量还是对象,是否相等?Doub... 设有下面两个赋值语句:
a = Double.parseDouble(“4.6”);
b = Double.valueOf(“4.6”);
问:a和b是变量还是对象,是否相等?
Double.valueOf(“4.6”);返回的是Double对象,为什么还能赋值给double类型的变量b啊??
展开
 我来答
xuygsuiyuan
2009-06-28 · TA获得超过795个赞
知道小有建树答主
回答量:221
采纳率:0%
帮助的人:169万
展开全部
以下面这段代码来说明:
public class TestInherit {
public double b;
public double a;
public static void main(String[] args){
TestInherit t=new TestInherit();
t.b=Double.valueOf("4.6");
t.a = Double.parseDouble("4.6");
if(t.a==t.b){
System.out.println("ok");
}
double d;
Double e=new Double(10);
d=e;//包装类和基本数据类型之间完全可以自由复制
System.out.println(d);

/*说明包装类的作用*/
double f,g;
String s="22.2";
f=Double.parseDouble(s);
g=Double.valueOf(s);
System.out.println(f);
System.out.println(g);
}
}
结果输出:ok 和 10.0 以及22.2,22.2
在这里,a和b是类实例的属性,也就是对象的属性(在方法里,也可以叫变量)。他们不是对象。
对于java有八种基本数据类型,byte,short,int,long,char,float,double,boolean,他们都对用有自己的包装类,比如byte对应的是Byte,int对应的是Integer,double对应的是Double。这些包装类的作用,就是将字符串或者父类中只要是符合转换条件的数据转换为基本类型。那么,这些包装类中保存的肯定是基本类型,所以,完全可以直接赋给基本类型。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Reder_bj
2009-06-28 · 超过26用户采纳过TA的回答
知道答主
回答量:92
采纳率:0%
帮助的人:70.4万
展开全部
a是double变量,b是Double对象
a==b,在JDK5.0以前,false。到JDK5.0,true。因为5.0以后,java会自动拆封箱。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一根纲丝
2009-06-28 · TA获得超过232个赞
知道答主
回答量:239
采纳率:0%
帮助的人:120万
展开全部
a和b没有类型吗,都是变量,当然相等了,你可以在运行环境里试一试就知道了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2a9db4665
2009-06-28 · 超过46用户采纳过TA的回答
知道答主
回答量:152
采纳率:0%
帮助的人:0
展开全部
相等

如果你查阅api,你会发现
*.valueOf()实际上是通过*.parse*()来实现的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loverzhouwei
2009-06-28
知道答主
回答量:41
采纳率:0%
帮助的人:20.4万
展开全部
jdk5.0以后的 新特性。自动装箱和自动拆箱机制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式