java基础复习(三)
java基础第三天
1.逻辑运算符
&(逻辑与) |(或) ^(异或) 两边相同false,两边不同true !
&& 最终结果一样 左边为false右边则不执行 具有短路的效果
int x = 3;
int y = 4;
//System.out.println((++x == 3) & (++y == 5));
Syste,.out.println((++X == 3) && (++y == 5)); 短路效果
System.out.println(x);
System.out.println(y);
|| 与单 |的区别同上,前一个为true则为true 也具有短路效果
2.位运算符
& (位与)| ^
如何计算:
位运算符先将值转化为二进制
&:有0则0
|:有1则1
^:相同则0,不同则1
~:按位取反 不过其中算出值来的话 要对原码反码补码进行计算
位异或运算的一个特点:
^的特点:一个数据对另一个数据位异或两次,该数本身不变。
面试题:请自己实现两个整数变量的交换
不需要定义第三方变量
int x = 10 ;
int y = 5;
//方式一:有弊端,很可能会超出int的取值范围
x = x + y;
y = x - y;
x =x-y;
//通过异或
x = x ^ y; //10^5
y =x^y//10^5^5
x=x^y//10^5^10
位运算符 << >> >>>
<< 左移 向左移动几位就是乘与2的几次幂
>> 右移 向右移动几位就是除以2的几次幂 最高位是0,左边补齐0;最高位是1,左边补齐1;
>>> :无符号右移 无论最高位是0还是1,左边补齐0
最有效率的算出 2 * 8
2 << 3 直接操作二进制数
3.三目运算符 (关系表达式)?表达式1:表达式2;
4.java语言基础(键盘录入的基本格式讲解)
1.导包 import java.util.Scanner;
2.创建键盘录入对象 Scanner sc = new Scanner(System.in);
3.通过对象获取数据 int x = sc.nextInt();
5.流程控制语句
1.顺序结构
2.选择结构 if switch
三元运算符
1.switch建议固定值中判断(效率更高一点)
2.if某个区间
3.循环结构