Java之类型的转换

面试例题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()是方法,用来求数组中某个元素的字符串长度。
答案:D

面试例题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
posted @ 2017-04-07 21:31  你好潘先生  阅读(1050)  评论(1编辑  收藏  举报