目录
原题+官方解析
单选题
2.关于Float,下列说法错误的是()
A. Float是一个类
B. Float在java.lang包中
C. Float a=1.0是正确的赋值方法
D. Float a= new Float(1.0)是正确的赋值方法
正确答案:C
官方解析:暂无官方题目解析
个人解析
1.Float是什么?
在新手期的程序员可能会误把Float当成float,认为题目出错了或者题目就是这样写的,其实原是float
其实不是的
在Java语言中,关键字是区分大小写的,所以Float与float不是一个东西,那么Float是什么呢?
Float是一个类,他是float的包装类
它存在于java.lang包下
在JDK1.5之后可以自动装箱拆箱
2.选项解析
AB根据我们刚才所属,是正确的,而本题难点也在于CD选项
C. Float a=1.0是正确的赋值方法
刚才说过,在1.5以后,JDK存在自动装箱,所以这种写法是正确的,而错误点在于1.0后面没有加f
1.0不加f就是doubl类型变量,而在自动装箱的时候,不会转成float类型变量,所以是错误的
D. Float a= new Float(1.0)是正确的赋值方法
那么就会有人疑问,这个也是1.0没有加f,为什么是正确的呢?
其实,在Float中,有两个构造器,一个是ddouble一个是float,所以在手动装箱的时候,这么写是正确的
3.梳理解析,更加清晰
相信看完上面的,你可能还是有点懵!
自动装箱
Float f = 1.0 不成立,1.0不加f,是double类型,不能向下转型成为float
Double d = 1.0f 不成立,Double中有两个构造分别是String与double,所以自动装箱不会转型
手动装箱
Float a = new Float(1.0) 成立,因为Float中有两个构造,分别是float与double
Double d = new Double(1.0f) 成立,因为1.0f向上转型成double了
总结:
本质就是看,你这个类或者数值,是否可以进行转型操作,转型之后是否符合.这就是本质的判断规律