四、Operator.java
public class Operator{ public static void main(String [] args){ /* byte a=10; byte b=8; System.out.println(a|b); */ //正负数之间:原码、反码、补码相互转换 /*0000 1010 0000 1000 ---------------- 0000 1010 10 */ int num1=10,num2=20; int res=num1+num2; System.out.println(res); String str="运算结果:"; System.out.println(str+res);//"运算结果:30" System.out.println(str+num1+num2);//前后为数值类型表示加号,前后有字符串类型,表示字符串的拼接 System.out.println(str+(num1+num2)); System.out.println(str+num1+true); //System.out.println(str+num1-num2); //自增自减运算符 num1++; System.out.println(num1);//11 ++num1;//此种情况下自增运算符在变量的前后没有区别 System.out.println(num1);//12 res=num1++;//自增自减运算符在变量后,先使用,后自增 System.out.println(num1);//13 System.out.println(res);//12? res=++num1;//自增自减运算符在变量前,先自增,后使用 System.out.println(num1);//14 System.out.println(res);//14 //赋值运算符 num1=10; System.out.println(num1); num1+=10;//相当于num1=num1+10; System.out.println(num1);//20 num1*=10; System.out.println(num1);//200 num1/=10; System.out.println(num1);//20 num1%=3; System.out.println(num1);//2 short s=10; //s=s+10;//数值类型中不同的数据类型运算,运算结果的数据类型以大的为准。 s+=10;//此种情况10的数据类型不是默认的整形,而是与s保持同种数据类型 System.out.println(s); num1=10; num2=20; //关系运算符 System.out.println(num1>num2);//false System.out.println(num1>=num2);//false System.out.println(num1<=num2);//true System.out.println(num1!=num2);//true System.out.println(num1<num2);//true System.out.println(num1==num2);//false int num3=30; //逻辑运算符 boolean flag=false; System.out.println(num1<num2&&num2<num3);//true System.out.println(num1>num2&&num2<num3);//false System.out.println(num1<num2&&num2>num3);//false System.out.println(num1>num2&&num2>num3);//false //&&短路与:当前面一个表达式的值可以决定最终值,那么后面的表达式不会被执行 System.out.println(num1>num2&&(flag=num2<num3));//false System.out.println(flag);//false System.out.println(num1<num2||num2<num3);//true System.out.println(num1>num2||num2<num3);//true System.out.println(num1<num2||num2>num3);//true System.out.println(num1>num2||num2>num3);//false //||短路或:当前面一个表达式的值可以决定最终值,那么后面的表达式不会被执行 System.out.println(num1<num2||(flag=num2<num3));//true System.out.println(flag);//false //相同就是错的^不同就是对的 System.out.println(num1<num2^num2<num3);//false System.out.println(num1>num2^num2<num3);//true System.out.println(num1<num2^num2>num3);//true System.out.println(num1>num2^num2>num3);//false System.out.println(num1<num2&num2<num3);//true System.out.println(num1>num2&num2<num3);//false System.out.println(num1<num2&num2>num3);//false System.out.println(num1>num2&num2>num3);//false //&逻辑与:前面一个表达式的值可以决定最终值,那么后面的表达式依然会被执行 System.out.println(num1>num2&(flag=num2<num3));//false System.out.println(flag);//true flag=false; System.out.println(num1<num2|num2<num3);//true System.out.println(num1>num2|num2<num3);//true System.out.println(num1<num2|num2>num3);//true System.out.println(num1>num2|num2>num3);//false //|逻辑或:前面一个表达式的值可以决定最终值,那么后面的表达式依然会被执行 System.out.println(num1<num2|(flag=num2<num3));//true System.out.println(flag);//true } }