1.4、java的基本运算操作

  1. 1.4、java的基本运算操作(重点)
    1. 1.4.1、四则运算
    2. 1.4.2、简便运算
    3. 1.4.3、关系运算
    4. 1.4.4、逻辑运算
    5. 1.4.5、位运算(理解)

1.4、java的基本运算操作(重点

在java中支持支持四则运算:+、-、*、/、%

在java中“=”用于进行赋值操作。

而且在java中存在自增和自减的操作。

1.4.1、四则运算

public class TestDemo18 {
	public static void main(String args[]){
		int x = 10 ;
		int y = 20 ;
		System.out.println(x + " + " + y + " = " + (x + y)) ;
		System.out.println(x + " - " + y + " = " + (x - y)) ;
		System.out.println(x + " * " + y + " = " + (x * y)) ;
		System.out.println(x + " / " + y + " = " + (x / y)) ;
		System.out.println(x + " % " + y + " = " + (x % y)) ;
	}
}

1.4.2、简便运算

简便运算指的是:++、- -,主要的目的是当时为了解决运算的空间而使用的。

public class TestDemo19 {
	public static void main(String args[]){
		int x = 10 ;
		System.out.println(x++) ;
		System.out.println(x) ;
	}
}

++放在后面表示先进行运算,后进行自增的操作。

public class TestDemo19 {
	public static void main(String args[]){
		int x = 10 ;
		System.out.println(++x) ;
		System.out.println(x) ;
	}
}

1.4.3、关系运算

关系运算:<=、>=、!=、>、<,关系运算符返回的操作结果是boolean类型的数据。

public class TestDemo20 {
	public static void main(String args[]){
		int x = 10 ;
		int y = 20 ;
		System.out.println(x>y) ;
	}
}

1.4.4、逻辑运算

在java中可以将多个关系运算符进行统一的操作,使用逻辑运算:

  • 与:&、&&

    • &:表示的是正常的与,所有的条件都必须判断
    • &&:表示的是短路与,如果第一个条件为假,则后续条件将不再判断
  • 或:|、||

    • |:表示的是正常的或,所有的条件都必须判断
    • ||:表示的是短路或,如果第一个条件为真,则后续条件将不再判断

在进行讲解之前,先来看一下以下的操作代码:

public class TestDemo21 {
	public static void main(String args[]){
		System.out.println(10/0) ;
	}
}

以上的程序一旦执行之后将出现错误,那么下面的所有程序将按照以上的格式进行操作。

public class TestDemo22 {
	public static void main(String args[]){
		if(1==2&10/0==0){
			System.out.println("条件满足!") ;
		}
	}
}

此时,第一个条件不满足之后,程序继续判断第二个条件,所以程序造成了错误。那么如果现在使用了短路与呢?

public class TestDemo23 {
	public static void main(String args[]){
		if(1==2&&10/0==0){
			System.out.println("条件满足!") ;
		}
	}
}

因为,现在第一个条件根本就不满足,所以,后面的内容是否满足并不会影响最后的结果,那么这就属于短路与的操作。

同理,短路或也是同样的操作,下面不使用短路或进行操作:

public class TestDemo24 {
	public static void main(String args[]){
		if(1==1|10/0==0){
			System.out.println("条件满足!") ;
		}
	}
}

此时,属于非短路操作,所以即使第一个条件满足了,那么也要将全部的条件判断完整,如果现在使用了短路与呢?

public class TestDemo25 {
	public static void main(String args[]){
		if(1==1||10/0==0){
			System.out.println("条件满足!") ;
		}
	}
}

第一个条件满足了,这样,不管后面的条件是否满足,其最终结果并不会受到任何的影响。

1.4.5、位运算(理解)

在普通的开发中,位运算的操作确实很少出现。位运算的操作符:|、&、>>、<<、>>>

或的操作:

public class TestDemo26 {
	public static void main(String args[]){
		int x = 3 ;
		int y = 5 ;
		System.out.println(x|y) ;
	}
}

最终的操作结果是7,那么实际上这里就采用了位运算。

3  –>     00000000 00000000 00000000 00000011

5  –>     00000000 00000000 00000000 00000101

|  –>     00000000 00000000 00000000 00000111

与操作:

public class TestDemo27 {
	public static void main(String args[]){
		int x = 3 ;
		int y = 5 ;
		System.out.println(x&y) ;
	}
}

3  –>   00000000 00000000 00000000 00000011

5  –>   00000000 00000000 00000000 00000101

&  –>   00000000 00000000 00000000 00000001

​ 将以上的结果变为十进制的数据是:1

左移位操作:

public class TestDemo28 {
	public static void main(String args[]){
		int x = 3 ;
		System.out.println(3<<2) ;
	}
}

3  –>   0000000 00000000 00000000 00000011

<<2 –>   00000000 00000000 00000000 00001100

将以上的结果变为十进制的数据是:12

右位移操作:

public class TestDemo29 {
	public static void main(String args[]){
		int x = 3 ;
		System.out.println(3>>2) ;
	}
}

3   –>    00000000 00000000 00000000 00000011

2   –>    00000000 00000000 00000000 00000000

​ 将以上的结果变为十进制的数据是:0

无符号右移位操作:

public class TestDemo30 {
	public static void main(String args[]){
		int x = 3 ;
		System.out.println(3>>>2) ;
	}
}

​ 操作过程和之前是一样的。

​ 如果现在操作的是一个负数的话,则必须注意的是,负数的操作=整数的反码+1

思考:

​ 现在要求完成一个23的操作,问,如何操作性能最高?

​ 最快的速度不是进行相乘的操作,而是进行移位的操作:

public class TestDemo31 {
	public static void main(String args[]){
		int x = 2 ;
		System.out.println(2<<2) ;
	}
}

2   –>    00000000 00000000 00000000 00000010

<<2  –>    00000000 00000000 00000000 00001000 –>8


转载请注明来源