Double a = Double.valueOf(str);
我看程序中有这样一句,不是说转换成基本类型吗,基本类型不是double吗,怎么又成了Double?我两种输入都尝试了,都能正确运行,为什么呢
Double a = Double.valueOf(str);这里前后两个Double是一对相呼应规范操作,表示的是把字符串转换成基本类型,你把前面的Double换成double得到的结果是一样的,但意义不同,
double a = Double.valueOf(str);这里的意思是定义一个double类型的变量a来接收由字符串转换位基本类型的值;而 Double a = Double.valueOf(str);是类型之间的转换,此处a代表Double类,而你要实现的是类型间的转换,用Double a = Double.valueOf(str);更合理
Double a 此处的a是一个Double类型的对象。 double a中的a是一个基本数据类型。那么为什么它们输出的结果都一样呢,此处的确让人费解,其实程序自己帮你做了自动拆箱处理,看上一节的教程,自动拆箱,即把Double a对象当作double a基本类型来用时,程序自动帮你把a对象转化成了a基本数据类型。当然你可以写成手动拆箱,这样看的更清晰
每个基本类型,都有一个对应的引用了类型。你这么写是讲str转换成Double类型的