面试题:Which of the following will compile correctly? ( D )
A short myshort=99S
B int t=”abc”.length()
C float z =1.0
D char c=17c
解析:short myshort=99S这句要执行自动装箱,调用shortvalue方法,显然99S无法得到值。
将float z =1.0;改为 float z.of;就行了,系统默认的浮点数是double型。
在Java中,length是属性,一般用来说明数组的长度;length()是方法,用来求数组中某个元素的字符串长度。
length()是字符串的方法,返回字符串的长度
S[1].length()就是”sdfgs”.length()值为5
Length是数组的属性,s.length的值为2
扩展知识:Java的数据类转换
Java的数据类分为三大类,即布尔型、字符型、和数值型,其中
,数值型又分为整型和浮点型。相对于数据类型,java的变量类型为布尔型boolean;字符型char;整型byte、short、int、long;浮点型float、double。其中四种整型变量和两种浮点型变量分别对应于不同的精度和范围。此外,编程时还经常用到两种类变量,即string和date.
(1) 数据类型转换的种类
Java数据类型的转换一般分为三种,分别是简单数据类型之间的转换、字符串与其他数据类型的转换、其他实用数据类型的转换。
(2) 简单数据类型之间的转换
在Java中,整型、实型、字符型被视为简单数据类型,这些类型由第几道高级分别为(byte,short,char)—int—long—float—double。
简单数据类型之间的转换又可分为:低级到高级的自动类型转换、高级到低级的强制类型转换、包装类过度类型能够转换。
1) 自动类型转换
低级变量可以直接转换为高级变量,这叫自动类型转换。例如,下面的语句可以在Java中直接通过;
如果低级别类型为char型,向高级类型(整型)转换时,会转换为对应的ASCII码值,例如
输出output:99;
对于byte、short、char三种类型而言,它们是相同级别的,因此不能相互自动转换,可以使用下述的强制类型转换。
输出:output:c;
2) 强制类型转换
将高级变量转换为低级变量时,情况会复杂一些,你可以使用强制类型转换如:
这种转换可能会导致溢出或精度的下降。
3)包装类过渡类型转换
Java的包装类就是可以直接将姜丹类型的变量表示为同一个类。Java共有6个包装类,冯别是Boolean、Character、Integer、Long、Float和Double,从字面上可以看出他们分别对应boolean、char、int、long、float和double.而string和date本身就是类,不存在包装类的概念。
在进行简单数据类型之间的转换(自动转换或强制转换)时,可以利用包装类进行中间过渡。一般情况下,首先声明一个变量,然后生成一个对应的包装类,就可以利用包装类的各种方法进行类型转换了。
更多,Java视频,Java教程尽在极悦Java培训,关注极悦官方微信,获得一手Java面试题。