JavaSE-03运算符

算术运算符

+ - * / % ++ --
//加减乘除 取余 自增 自减

运算遵循四则运算规则,可以使用任意嵌套的小括号。四则运算规则和初等数学一致。

//运算细节
public class ArithmeticOperator{
	public static void main(String[] args){
		// / 除 
		System.out.println(10 / 4); //2 整型/整型=整型
		System.out.println(10.0 / 4); //2.5 double/整型=double

		double d =10 / 4; //2->double 2.0
		System.out.println(d);


		// % 取余 公式 a % b = a - a/b *b
		System.out.println(10 % 3); // 1
		System.out.println(-10 % 3); // -1
		System.out.println(10 % -3); // 1
		System.out.println(-10 % -3); // -1

		// ++ 的使用
		int i = 10;
		i++;//11
		++i;//12
		System.out.println("i="+i);

		//表达式使用
		int j = 8;
		int k = ++j; //k=9 先自增在赋值
		int j1 = 8;
		int l = j1++; //l=8 先赋值在自增

		System.out.println("k=" + k + " l=" + l);

	}
}

关系运算符

== != > < >= <=

主要用于布尔运算。

public class Test {
 
  public static void main(String[] args) {
     int a = 10;
     int b = 20;
     System.out.println("a == b = " + (a == b) );
     System.out.println("a != b = " + (a != b) );
     System.out.println("a > b = " + (a > b) );
     System.out.println("a < b = " + (a < b) );
     System.out.println("b >= a = " + (b >= a) );
     System.out.println("b <= a = " + (b <= a) );
  }
}

/*
a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false
*/

逻辑运算符

与运算:短路与 && 、逻辑与 &

或运算:短路或 || 、逻辑或 |

非运算:!

异或:^ 左右两边 1 true 1 false 为 ture

public class Test {
  public static void main(String[] args) {
     boolean a = true;
     boolean b = false;
     System.out.println("a && b = " + (a&&b));
     System.out.println("a || b = " + (a||b) );
     System.out.println("!(a && b) = " + !(a && b));
  }
}

短路与符号左边为假则不会运算右边的算式

短路或符号左边为真则不会运算右边的算式

赋值运算符

= += -= *= /= %=

进行计算赋值

三元运算符

类似于if..else..

public class Test {
   public static void main(String[] args){
      int a , b;
      a = 10;
      // 如果 a 等于 1 成立,则设置 b 为 20,否则为 30
      b = (a == 1) ? 20 : 30;
      System.out.println( "Value of b is : " +  b );
 
      // 如果 a 等于 10 成立,则设置 b 为 20,否则为 30
      b = (a == 10) ? 20 : 30;
      System.out.println( "Value of b is : " + b );
   }
}

位运算

操作符 描述 例子
如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 1100
| 如果相对应位都是 0,则结果为 0,否则为 1 (A | B)得到61,即 0011 1101
^ 如果相对应位值相同,则结果为0,否则为1 (A ^ B)得到49,即 0011 0001
按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 (〜A)得到-61,即1100 0011
<< 按位左移运算符。左操作数按位左移右操作数指定的位数。 A << 2得到240,即 1111 0000
>> 按位右移运算符。左操作数按位右移右操作数指定的位数。 A >> 2得到15即 1111
>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 A>>>2得到15即0000 1111

优先级

在Java的计算表达式中,运算优先级从高到低依次是:

  • ()
  • ! ~ ++ --
  • * / %
  • + -
  • << >> >>>
  • &
  • |
  • += -= *= /=

instanceof 运算符

用于判断该对象是否是一个特定类型

String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回true
posted @ 2022-05-19 23:58  九天揽月丶  阅读(76)  评论(0)    收藏  举报