1. ++ he –



2. 赋值运算符的面试题
- 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
- short s=1; s = s+1;
- short s=1; s+=1;
- (1)s + 1 计算后是一个int类型的数
- (2)正确
3. 位异或运算符的特点 及 两个数在不借用第三方的情况下完成交换
- ^的特点:一个数据对另一个数据位异或两次,该数本身不变
int a = 5 ^ 10 ^ 10; //5
int a = 10 ^ 5 ^ 10; //5
结果相同
两个数在不借用第三方的情况下完成交换
int a = 1 ; int b = 2 ;
// (1) 这种情况在混合类型计算时可能出现问题
a = a + b;
b = a - b;
a = a - b;
// (2)
a = a ^ b ;
b = a ^ b;
a = a ^ b ;
3. 最有效率的算出2 * 8的结果
答 : 2 <<< 3
2 << 3 右侧为多少即 乘以2的几次方
2 >> 3 右侧为多少即 除以2的几次方
4.变量相加和常量相加的区别
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,short,char不会相互转换,都会自动类型提升为int类型;其他类型进行混合运算的是小的数据类型提升为大的
本文深入解析Java中的各种运算符,包括赋值运算符、位异或运算符、左移右移运算符的特点及应用,探讨了如何在不使用第三方变量的情况下交换两个数,同时对比了变量相加与常量相加的区别。通过具体实例,帮助读者理解运算符的工作原理,并提供了面试中可能遇到的相关题目。
8万+

被折叠的 条评论
为什么被折叠?



