JAVA Day2 总结
1、逻辑运算符的基本用法
- &逻辑与:有false则false。
- |逻辑或:有true则true。
- ^逻辑异或:相同为false,不同为true。
- !逻辑非:非false则true,非true则false。
- 特点:偶数个不改变本身。
2、逻辑运算符&&和&的区别
&&和&的区别?
* a:最终结果一样。
* b:&&具有短路效果。左边是false,右边不执行。
* c:&是无论左边是false还是true,右边都会执行
3、逻辑运算符||和|的区别
同上,若|| 的左侧为 true ,右侧不执行
- 总结:一般常用 * && || !
4、位运算符的基本用法1
&,|,^,~ 的用法:(在计算时采用二进制进行计算)
- &:有0则0
- |:有1则1
- ^:相同则0,不同则1
- ~:按位取反
5、位异或运算符的特点及面试题
- ^的特点:一个数据对另一个数据位异或两次,该数本身不变
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 ;
6、位运算符的基本用法2及面试题
>>,>>>,<<的用法:
2 << 3 右侧为多少即 乘以2的几次方
2 >> 3 右侧为多少即 除以2的几次方
* <<:左移 左边最高位丢弃,右边补齐0
* >>:右移 最高位是0,左边补齐0;最高为是1,左边补齐1
* >>>:无符号右移 无论最高位是0还是1,左边补齐0
// * 最有效率的算出2 * 8的结果
int a = 2 << 3
7、switch()
default一定要在最后吗?
* 不是,可以在任意位置。但是建议在最后。
* 在什么位置都是最后 执行
记住一定要加break 否则会出现穿透现象;default 也要加
switch (1){
case 1 :
System.out.println(1);break;
case 2 :
System.out.println(2);break;
default:
System.out.println("什么");break;
case 3 :
System.out.println(3);break;
}
8、三种循环语句的区别
- 最重要的是 do-- while 和 while 上在 循环控制条件上没有 区别
-
三种循环语句的区别:
- do…while循环至少执行一次循环体。
- 而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
-
for循环和while循环的区别:
* A:如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道用谁就用for循环。因为变量及早的从内存中消失,可以提高内存的使用效率。
9、死循环的方式
* while(true){...}
* for(;;){...}
# 10、使各种大括号失效的方式 在左大括号前加 ;
for(;;) ; {
}
if(true) ; {
}
//等
11、常用转义
'\t' tab键的位置
'\r' 回车
'\n' 换行
'\''
是 ‘’ 非 ‘/’
12、break continue return
continue : 跳出本次循环
break : 跳出本 循环
return : 返回,跳出本方法