面试例题1:
下列哪个选项能编译正确?
A. Short myshort = 99S; C. float z = 1.0; B. int t = "abc".length(); D. char c = 17c;
解析:Short myshort=99S;这句要执行自动装箱,调用shortValue方法,显然99S无法得到值。将float z=1.0;改为float z=1.0f;就行了,系统默认的浮点数是double型。在Java中,length是属性,一般用来说明数组的长度;length()是方法,用来求数组中某个元素的字符串长度。
答案:B
面试例题2:
下面代码的输出结果是?int i = 012; int j = 034; int k = (int)056L; int l = 078; System.out.println(i); System.out.println(j); System.out.println(k);
A. 输出12,34,56 B. int k=(int)056L;行编译错误 C. 输出10,28,46 D. int l=078;行编译错误
解析:int l = 078;行编译错误,因为078是八进制,只能选0~7的数字。
答案:D
面试例题3:
以下程序错误的是:
A. short s = 1; s = s + 1; B. short s = 1; s += 1;
解析:s+1为int,不能直接赋值给short,但是s+=1会自动进行类型转换。
答案:A