运算符一
算数运算符:+,-,*,/,%(取余),++,-- 赋值运算符:= 关系运算符:>,<,>=,<=,==,!= 逻辑运算符:&&(与:我和你(必须)),||(或:我和你或她(不是必须)),!(非(必须有一边满足,非黑即白)) 位运算符:&,|,^,~,>>,<< 条件运算符:?,: 扩展赋值运算符:+=,-=,*=,/=
public class Day01 { public static void main(String[] args) { //二元运算符 int a = 10; int b = 20; int c = 25; int d = 25; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/(double)b);//在除数有小数时需要进行一个强制转换 }
public class Day02 { public static void main(String[] args) { long a = 12222231231L; int b = 123; short c = 10; byte d = 8; System.out.println(a+b+c+d);//long System.out.println(b+c+d);//int System.out.println(c+d);//int } }
public class Day03 { public static void main(String[] args) { //关系运算符返回的结果: 正确 错误 布尔值 int a = 10; int d = 20; int c = 21; System.out.println(c%a); //c / a 21/10 = 2......1 System.out.println(a>d); System.out.println(a>d); System.out.println(a==d); System.out.println(a!=d); }
运算符二(++,--)
public class Day04 { public static void main(String[] args) { //++ -- 自增,自减 一元运算符 int a = 3; //执行完这行代码后,先给b赋值,在自增 int b = a++;//a++是先把a的值赋给b了之后 a才开始自身+1 //执行完这行代码后,先自增,在给c赋值 int c = ++a;//++a是a先加上1在给c赋值 System.out.println(a);//a=5 它执行的得是最后一个++a System.out.println(b);//它得到了a的值但是它拿到的是a+1以前的值 System.out.println(c);//它拿到了完整的a的值 //幂运算 在常见的数学中有一个幂运算 如2^3 2*2*2 = 8 //在java中有一个专门的函数来处理这些运算 Math,这里面有很多运算方法 //很多运算我们会使用工具来计算 double pow = Math.pow(2,3);//这就是除以幂的三次方 System.out.println(pow); } }
运算符三(逻辑运算符)
public class Day05 { public static void main(String[] args) { //与(and) 或(or) 非(取反) boolean a = true; boolean b = false; System.out.println("a && b"+(a&&b));//逻辑与运算:两个都为真,结果是true System.out.println("a || b"+(a&&b));//逻辑与运算:一个都为真,结果是true System.out.println("!(a && b)"+!(a&&b));//如果是真,则是false,如果是假,则是true //短路运算 int c = 5; boolean d = (c<4)&&(c++<4);// 短路的意思就是当&前面已经判定为假以后将不再执行后面的判断 System.out.println(d);//false System.out.println(c);//5 } }
运算符四(位运算)
public class Day06 { public static void main(String[] args) { //位运算一般是用于操作二进制 /* A = 0011 1100 B = 0000 1101 A&B = 0000 1100 //当上下两位都位1时才为1不然就是0 A|B = 0011 1101 //当其中一位等于1时结果就为1 A^B = 0011 0001 //当上下相同就为0,不同就为1 ~B = 1111 0010 //就是与上面的A完全相反 面试题问:2*8 = 16 以什么方法去计算最快 左移<< *2 >>右移 /2 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 */ System.out.println(2<<3); //这里的操作是这样的 2*2*2*2 } }
运算符五(赋值符 )
public class Day07 { public static void main(String[] args) { int a = 10; int b = 20; a+=b;//a=a+b a-=b;//a=a-b System.out.println(a); //字符串连接 System.out.println(""+a+b);//当输出时前面是字符串那么后面的数就会拼接 System.out.println(a+b+"");//但如果在后面它前面的会先运算 } }
运算符六(条件运算符)
public class Day08 { public static void main(String[] args) { //x ? y : z //如果x==true ,则结果为y 否则为z int score = 80; String type = score<60?"不及格" : "及格"; System.out.println(type); } }