一共在学校学习30周 一周5道面试题 小白或者想找工作的可以背一背 应该有用
今天老师让背5道题 都是面试题。。。
周三考试
第一道面试题
i++和++i 的区别?
答案:
i++和++i 在单独使用时就是i=i+1;
而 a=++i 就相当于 i=i+1 a=i
(先 i=i+1 然后再使用 i 的值)
而 a=i++ 就相当于 a=i i=i+1
(先使用 i 的值然后再 i=i+1)
第二道面试题:
switch 语句能否作用在 byte 上,能否作用在 long
上,能否作用在String 上?
答案:
switch 能作用在 char、byte、short、int 及其对应的包装类,
不能作用在 long、double、float、boolean及其对应的包装类
JDK1.7 后可以作用在 string 上
switch 中可以是枚举类型
第三道面试题:
写出基本数据类型
答案:
byte、short、int、long
float、double
char、boolean
第四道面试题:
float f=3.4 是否正确?
答案:
不正确。
因为精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4 或 float f =3.4f
在 java 里面,没小数点的默认是 int,有小数点的默认是 double;
int 转成 long 系统自动转换没有问题,因为后者精度更高
double 转成 float 就不能自动做了,所以后面必须要加上个 f;
第五道面试题:
short s1 = 1,s1=s1+1;有错吗?short s1 =1 ,s1+=1;有错吗?
答案:
第一题:short s1= 1; s1 = s1 + 1;
错! s1 + 1,s1 是 short 类型,1 是 int 型,s1 会自动转换为 int型的1,
与1相加后,得到int型的2,
要向左侧的 short 类型的 s1 看齐,即
需要通过强制类型转换。正确写法:s1 = (short) (s1 + 1);
第二题:short s1= 1; s1 += 1;
正确! 执行s1+=1;其实执行的是 s1 = (short) (s1 + 1); 其中会有一
个强制转换的过程。