大家帮忙解决一个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啊?? 展开
a = Double.parseDouble(“4.6”);
b = Double.valueOf(“4.6”);
问:a和b是变量还是对象,是否相等?
Double.valueOf(“4.6”);返回的是Double对象,为什么还能赋值给double类型的变量b啊?? 展开
展开全部
以下面这段代码来说明:
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。这些包装类的作用,就是将字符串或者父类中只要是符合转换条件的数据转换为基本类型。那么,这些包装类中保存的肯定是基本类型,所以,完全可以直接赋给基本类型。
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。这些包装类的作用,就是将字符串或者父类中只要是符合转换条件的数据转换为基本类型。那么,这些包装类中保存的肯定是基本类型,所以,完全可以直接赋给基本类型。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a是double变量,b是Double对象
a==b,在JDK5.0以前,false。到JDK5.0,true。因为5.0以后,java会自动拆封箱。
a==b,在JDK5.0以前,false。到JDK5.0,true。因为5.0以后,java会自动拆封箱。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a和b没有类型吗,都是变量,当然相等了,你可以在运行环境里试一试就知道了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
相等
如果你查阅api,你会发现
*.valueOf()实际上是通过*.parse*()来实现的
如果你查阅api,你会发现
*.valueOf()实际上是通过*.parse*()来实现的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
jdk5.0以后的 新特性。自动装箱和自动拆箱机制
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询