1、面试题:
第一题:
byte b1=3,b2=4,b;
b=b1+b2;
b=3+4;
哪句是编译失败的呢?为什么呢?
第二题:
byte by = 130;有没有问题?有问题如何解决?结果是多少呢?
第三题:
byte b = 10;
b++;
b = b + 1;
哪句是编译失败的呢?为什么呢?
2、short s = 1; s = s + 1;有没有问题?如果有怎么解决?
short s = 1; s += 1;有没有问题?如果有怎么解决?
3、需求:
int a = 10;
int b = 20;
请用代码实现交换两个变量,
即结果为: a = 20; b = 10; (3种)
答案: int a = 1;
int b = 2;
int temp = a;
a = b;
b = temp;
System.out.println("a= "+a+", b= "+b);
System.out.println("--------------------------------");
int x = 1;
int y = 2;
x = x + y;
y = x - y;
x = x - y;
System.out.println("x= "+x+", y= "+y);
System.out.println("--------------------------------");
int i = 1;
int j = 2;
i = i ^ j;
j = i ^ j;
i = i ^ j;
System.out.println("i= "+i+", j= "+j);
System.out.println("--------------------------------");
class Demo2_Operator {
public static void main(String[] args) {
/*
* 位异或运算符的特点
* ^的特点:一个数据对另一个数据位异或两次,该数本身不变。
*/
//System.out.println(5 ^ 10 ^ 10);
//System.out.println(5 ^ 10 ^ 5);
/*
* 请自己实现两个整数变量的交换(不需要定义第三方变量)
* 注意:以后讲课的过程中,我没有明确指定数据的类型,默认int类型。
*/
int x = 10;
int y = 5;
//需要第三方变量,开发推荐用这种
/*int temp;
temp = x;
x = y;
y = temp;*/
//不需要定义第三方变量,有弊端,有可能会超出int的取值范围
/*x = x + y; //10 + 5 = 15
y = x - y; //15 - 5 = 10
x = x - y; //15 - 10 = 5*/
//不需要第三方变量,通过^来做
x = x ^ y; // 10 ^ 5
y = x ^ y; // 10 ^ 5 ^ 5 y = 10
x = x ^ y; // 10 ^ 5 ^ 10 x = 5
System.out.println("x = " + x + ",y = " + y);
}
}
4、最有效率的算出2 * 8的结果
class Demo3_Operator {
public static void main(String[] args) {
/*
* <<:左移 左边最高位丢弃,右边补齐0
* >>:右移 最高位是0,左边补齐0;最高为是1,左边补齐1
* >>>:无符号右移 无论最高位是0还是1,左边补齐0
* 最有效率的算出2 * 8的结果
*/
//左移,向左移动几位就是乘以2的几次幂
//System.out.println(12 << 1); //24
//System.out.println(12 << 2); //48
/*
00000000 00000000 00000000 00001100 12的补码
(0)0000000 00000000 00000000 000011000 24的补码
(00)000000 00000000 00000000 0000110000 48的补码
*/
//右移,向右移动几位就是除以2的几次幂
//System.out.println(12 >> 1);
//System.out.println(12 >> 2);
/*
00000000 00000000 00000000 00001100 12的补码
000000000 00000000 00000000 0000110(0) 6
0000000000 00000000 00000000 000011(00) 3
*/
//最有效率的算出2 * 8的结果
System.out.println(2 << 3);
}
}
5、
* byte可以作为switch的表达式吗?
* long可以作为switch的表达式吗?
* String可以作为switch的表达式吗?
|
|