位运算
按位与运算
1. A&B
2.将A和B转成二进制 右侧对其上下比较,两者都为一结果才为1,否则为0
按位或运算
1. |
2.将A和B转成二进制 右侧对其上下比较,两者有一个为1结果为1,两者都为0结果为0
按位异或运算
1. ^
2.将A和B转成二进制 右侧对其上下比较,两者不同则为1,两者相同则为0
取反运算
~ 将二进制中的0换成1 ,1换成0
移位运算
计算机内的都是补码
向左移位 << 放大倍数
向右移位 >> 左侧补符号位
>>> 空出来的位置补0
& |
也可以对布尔值进行运算,得到布尔值 &&和&运算结果一样,运算过程不一样,没有短路现象
&必须全部计算
赋值运算
= += -= *= /= %=
三元运算
A?B:C B和C的数值类型要一样
流程控制
条件
switch case
1.匹配某一个变量的值,如果匹配到某一个case项,就从这个case项开始运行
2.运行到break或者代码块结束
3.所有的case项都没匹配成功才会执行default
4.case项和default的顺序可以是混乱的
5.switch 可以匹配的类型 byte short int char String Enum枚举
循环
while
while(继续循环的条件){
循环体
}
do......while
至少执行一次
for循环
while适合于不知道循环多少次的,for适合知道循环多少次的
跳出循环
continue:结束当前循环,进入下一个循环
break:结束所在的循环体
变量控制多重循环
死循环:没有结束循环的条件,之后不能编写其他代码 while(true){}
无限循环:永远达不到结束循环的条件,可以编写其他代码 a=0 while(a<1000){a--;} for(;;)
数组
定义
数组的限定
1.只能存放指定类型的数据
2.一维数组的长度是不可变的
3.使用数组中的元素 下标 从0开始依次增加