黑马程序员技术交流社区
标题:
[面试题]java基础
[打印本页]
作者:
锦年123
时间:
2015-10-31 07:27
标题:
[面试题]java基础
面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
* byte b1 = 3;
* byte b2 = 4;
* byte b3 = b1 + b2;
* 从两方面去回答这个题
* b1和b2是两个变量,变量里面存储的值都是变化的,所以在程序运行中JVM是无法判断里面具体的值
* byte类型的变量在进行运算的时候,会自动类型提升为int类型
* byte b4 = 3 + 4;
* 3和4都是常量,java有常量优化机制,就是在编译的的时候直接把3和4的结果赋值给b4了
面试题
* byte b = 10;
* b++;
* b = b + 1;
* 问哪句会报错,为什么
* 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
* short s=1;s = s+1;
* short s=1;s+=1;
面试题:
* 请自己实现两个整数变量的交换
* 注意:以后讲课的过程中,我没有明确指定数据的类型,默认int类型。
面试题
* byte可以作为switch的表达式吗?
* long可以作为switch的表达式吗?
* String可以作为switch的表达式吗?
作者:
Kris
时间:
2015-10-31 07:38
很基础的题了,java基础课上都会涉及到。
作者:
Sayman
时间:
2015-10-31 10:44
.....................................
作者:
Sayman
时间:
2015-10-31 10:46
.....................................
作者:
小强v587
时间:
2015-10-31 11:09
short s=1; s=s+1; 自然是编译不通过的,提示损失精度 。
short s=1; s+=1; 能编译通过。隐式类型转换可以从小到大自动转,即byte->short->int->long如果反过来会丢失精度,必须进行显示类型转换 , 而s+=1的意思与s = s+1不同,s=s+1这句先执行s+1然后把结果赋给s,由于1为int类型,所以s+1的返回值是int,编译器自动进行了隐式类型转换, 所以将一个int类型赋给short就会出错,而s+=1不同由于是+=操作符,在解析时候s+=1就等价于s = (short)(s+1),翻番来讲就是 s+=1 <=> s = (s的类型)(s+1)。
作者:
IPvL9h
时间:
2015-10-31 22:26
顶一个!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2