逻辑运算符
& -逻辑与
| -逻辑或
! -逻辑非
&& -短路与
|| -短路或
^ -逻辑异或:两个结果不同为true
“&” 与 “&&”区别:
&(逻辑与),左边无论真假,右边都进行运算;
&&(短路与),如果左边为真,右边参与运算,如果左边为假,右边则不参与运算。
“|” 与 “||”同理。
例:
int i = 0;
int k = 1;
//利用k++,++k来验证
//++k == 2 为true
System.out.println(i != 0 & ++k == 2);//false
System.out.println(k);//k=2
//&时, ++k == 2 参与运算
System.out.println(i != 0 && ++k == 2);//false
System.out.println(k);//k=1
//可见&&时 ++k == 2 没参与运算
位运算符
位运算是直接对二进制进行运算。
<< -左移
m<<n相当于m * 2n
例:3<<2 = 12 -->3 * 2 * 2=12
>> -右移
m>>n相当于m * 2-n
例: 3 >> 1 --> 3/2=1
注意:当右移负数时,向前补1;正数时,向前补0。
右移时,看剩余二进制最高位,剩1补1,剩0 补0。
>>> -无符号右移
例:3 >>> 1 = 1 --> 3/2=1
正数的>>>时,与>>一致。
负数的>>>时,向前直接补0,忽略掉正负号。
& -与运算
0,1 取 0
| -或运算
0,1 取 1
^ -异或运算
不同为1,相同为0。
~ -取反
0变1,1变0
三元(目)运算符
格式:(条件表达式)?表达式1:表达式2;
条件表达式为true,运算结果为表达式1;
条件表达式为false,运算结果为表达式2;
例:获取3个数中较大的数
int m = 1;
int n = 2;
int k = 0;
System.out.println(m>n? (m>k?m:k) : (n>k?n:k));
switch语句有关规则
switch的返回值有:byte,short,char,int,枚举,String。
break、continue
区别:continue是终止本次循环,break是终止本层循环。
数组
注意特殊写法:int[] x,y[];
x是一维数组,y是二维数组。
写一下冒泡排序吧,有点忘了,毕竟是基础:
int[] arr = new int[]{2,4,3,5,1};
int temp = 0;
for(int i = 0;i < arr.length - 1;i++){
for(int j = 0;j < arr.length -1 -i;j++){
if(arr[j] > arr[j + 1]){
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
面向对象编程
面向对象(oop)\面向过程(pop)
面向对象的三大特征:封装、继承、多态。
java类及类的成员
类(class)是由:
属性:对应类中的成员变量、
行为:对应类中的成员方法
所构成。
注意书写方法时的起名规范:public void showName
showName为方法名,方法名如果是多个单词,首个单词的首字母小写,其他单词的首字母大写,叫驼峰命名法。