目录:
与(&) 或(|) 和 左移(<<) 右移(>>)的运算
强制转换
隐式转换
if循环语句
switch语句以及省略break的新写法
三元表达式
三元表达式 // a > b ? a : b a是否大于b 是则返回a 不是返回b
快捷键 CTRL+alt+l 自动格式化代码
正数的原码和补码相同
反码是原码除符号位全部取反 补码是反码+1
强制转换
public class text4 {
public static void main(String[] args) {
int a = 300; //int 占4个字节 32位 0000 0000 00000 0000 0000 0001 0010 1100
byte b = (byte)a; //byte 一个 字节 8位 自动截断 0010 1100 强制转换
System.out.println(b);
}
}
运行结果:44
隐式转换
byte a = 10; //一个字节8位 0000 1010
int b = a ; //个字节32位 0000 0000 0000 0000 0000 0000 0000 1010
System.out.println(b);
结果为:10
**与(&) 或(|) 和 左移(<<) 右移(>>)的运算 (>>>)无符号右移
public class text5 {
public static void main(String[] args) {
int a = 200;
int b = 10;
System.out.println(a & b);
}
}
0000 0000 0000 0000 0000 0000 1100 1000
& 0000 0000 0000 0000 0000 0000 0000 1000
0000 0000 0000 0000 0000 0000 0000 1000
& 按位与 同一则一 否则都为0 结果为: 8
| 按位或 有1则1 都为0 才为0
int a = 200;
System.out.println(a << 2);//左移两位 向左移两位 右边补零
a = 0000 0000 0000 0000 0000 0000 1100 1000
00 0000 0000 0000 0000 0000 1100 1000 00
<< 左移 结果就从 200 变成了 800
>> 右移 向右移动 高位补0或1 符号位不变 但是也算一位
>
>>> 无符号右移 向右移动 直接补零
java中循环语句都要加上大括号比较好else也要用大括号
package text;
import java.util.Scanner;
public class switchyj {
public static void main(String args[]) {
//键盘录入星期,显示今天的减肥活动
Scanner sc = new Scanner(System.in);
System.out.println("几天是星期几");
int xingqi = sc.nextInt();
// switch (xingqi) {
// case 1:
// System.out.println("今天跑步");
// break;
// case 2:
// System.out.println("今天跳舞");
// break;
// default:
// System.out.println("今天休息");
// break;
//新写法 省略 break的写法
switch(xingqi){
case 1 -> {
System.out.println("今天跑步");
}
case 2 -> {
System.out.println("今天跳舞");
}
default -> {
System.out.println("今天休息");
//case的大括号可以省略
case 1 -> System.out.println("今天跑步");
case 2 -> System.out.println("今天跳舞");
default -> System.out.println("今天休息");
//利用switch穿透来输入工作日休息日
switch(xingqi){
case 1,2,3,4,5:
System.out.println("工作日");break;
case 6,7:
System.out.println("休息日");break;
default: System.out.println("没有这个日期");
}
}
}
}