运算符
第一优先级[ ] . ( )
int[] array = {1,2,3,4}; //[]声明一个数组
array[0] = 2; //[]属性获取数组下标里的东西
System.out.println(array);
int len = array.length; //array. ()方法调用
System.out.println(len);
第二优先级
! 非运算
boolean a = true;
system.out.println(!a);
//运行结果为 False
++(– –)
//++ (后置++ 前置++)
int a2 = 10;
a2++;
System.out.println(a2);
//后置++
int a3 = a2++; // tmp = a2----->a3 = tmp----->a2+1
System.out.println(a3);
//前置++
int a4 = ++a2; //a2+1---->a4
System.out.println(a4);
第三优先级
乘法 *
int a = 10;
int b = 10;
int c = a*b;
system.out.println(c);
//c 结果为10*10=100
除法 /
int a = 10;
int b = 10;
int c = a/b;
system.out.println(c);
//c 结果为10/10=1
取余 %
System.out.println(10%3);
System.out.println(-10%3);
System.out.println(-10%-3);
System.out.println(10%-3);
运行结果为:
加上数据类型后的骚操作:
float f1 = 5/2;
float f2 = (float)5.0/2;
float f3 = (float)5/2;
float f4 = 5/(float)2;
System.out.println(f1);
System.out.println(f2);
System.out.println(f3);
System.out.println(f4);
运行结果为:
第四优先级
加法 +
int a = 10;
int b = 10;
int c = a+b;
system.out.println(c);
//c 结果为10+10=20
减法 -
int a = 10;
int b = 10;
int c = a+-;
system.out.println(c);
//c 结果为10-10=0
第五优先级
>> 右移运算符
11>>1 0000 0101 值为5 11/2^1 11/2 右移相当于除法
11>>2 0000 0010 值为2 11/2^2 11/4
11>>3 0000 0001 值为1 11/2^3 11/8
<< 左移运算符
11<<1 0001 0110 值为22 11*2^1 左移相当于乘法
11<<2 0010 1100 值为44 11*2^2
11<<3 0101 1000 值为88 11*2^3
11<<4 1011 0000
>>> 无符号右移:最高位补0
11<<<1 0000 1011--------->0000 0101
-11<<<1 1111 0100--------->0111 1010
第六优先级
小于(< )大于(>)小于等于(<=)大于等于(>=)
public class one {
//void 当前方法的返回值
//Max1 方法名称
//(int a,int b) 形式参数
//{方法体}
public static int Max1(int a,int b){
if(a>b){
return a;
}else{
return b;
}
}
public static void main(String[] args) {
int a = 10;
int b = 20;
int e = Max1(a,b);
System.out.println(e);
}
}
第七优先级
==(等于)
=(赋值)
第八、九、十优先级
11 0000 1011 ~11 1111 0100
13 0000 1101 ~13 1111 0010
| 按位或
11|13 0000 1011
0000 1101
0000 1111
& 按位与
11&13 0000 1011
0000 1101
0000 1001
^ 按位异或:不一样的去或,一样的为0
11^13 0000 1011
0000 1101
0000 0110
第十一、十二优先级
&&短路与
|| 短路或
public static boolean fun1(int val) {
System.out.println("val<1");
return val < 1;
}
public static boolean fun2(int val) {
System.out.println("val<2");
return val < 2;
}
public static boolean fun3(int val) {
System.out.println("val<3");
return val < 3;
}
public static void main(String[] args) {
boolean b1 = fun1(0) && fun2(2) && fun3(1); //短路与 如果有false,后面直接不执行
System.out.println(b1);
boolean b2 = fun1(0) || fun2(2) || fun3(1); //短路或 如果有true,后面直接不执行
System.out.println(b2);
第十三优先级
条件运算符(?:)
int a = 15;
int b = 20;
System.out.println(a>b?a:b);
//输出结果为20
第十四优先级
混合赋值运算符
+=
int i =0;
i+=1;
System.out.println(i);
//i = i + 1;结果输出为1
-=
int i =4;
i-=1;
System.out.println(i);
//i = i - 1;结果输出为3
*=、/= 用法和以上相同
附上闰年算法
public static boolean LeapYear(int year){
if((year/4==0) && (year/100==0) || (year/400==0))
return true;
else
return false;
}
public static void main(String[] args) {
boolean year = LeapYear(2008);
System.out.println(year);
}