Java基础之运算符

时间:2023-02-15 16:54:32

运算符

  基本算术运算符

      +:加号

        1.加法:1+1

        2.数:+2

        3.连接字符串:"hello"+"world"

      -:减号

        1.减法:1-1

        2.负数:-2

      *:乘号

        乘法:1*1

      /:除号(取整)

        取整:例如:5/2,结果是2,而不是2.5。10/3,结果是3。

      %:取模(取余)

        取余:例如:10%3,结果是1。5%3,结果是2。

      ++:自增

        表示自增,每次自增+1

      --:自减

        表示自减,每次自减-1

      自增或自减使用注意事项;

        ++ 或者 -- ,当变量不参与运算时,写在变量前或者变量后,效果一样,都是自增或者自减1

        当变量参数运算时,++或--写在变量前,先进行变量自身的++或--,再进行运算

                     ++或--写在变量后,先使用变量值本身进行运算,运算完毕再进行变量 自身的++或--

代码如下:

public static void main(String[] args) {
	// 赋值
	int i= 9;// i = 9;
	i++;// i = i + 1 ;  i = 10;
	++i;// i = i + 1 ; i = 11;
	int y = (i++)+5;// 先运算,在++, 1) y = i+5; y = 16  2)i++ ; i = 12
	int z = (++i)+6;// 先++,再运算, 1) i = i + 1 ;i = 13  2)z = i+6; z = 19
	System.out.println(i);// 13
	System.out.println(y);// 16
	System.out.println(z);// 19
}

  

  赋值运算符

      =:Java中,“=”不再是等于号,而是赋值号,将“=”右边的结果赋值给“=”左边。

        例如:a=1;就是将1赋值给a,得到的结果就是a现在就是1。

      +=:先运算,再赋值

        例如:i += 1,意思就是先进行运算 i + 1,将 i + 1 的结果再赋值给 i 。

      -=  :   int i = 10;i-=3; 相当于 i = i-3;

      *=  :   int i = 10; i *=2; 相当于 i = i *2;

      /=  : int i = 10; i /=2; 相当于 i = i /2;

      %= : int i = 10; i %=2; 相当于 i = i %2;

代码入下:

public static void main(String[] args) {
	// 赋值
	int i = 9;

        System.out.println(i);// 9

	// +=  相当于: i= i+2;  1) 先进行运算i+2  2) 将i+2的结果,赋值给变量i
	i+=2;

	System.out.println(i);// 11

}

  

  比较运算符

      进行两个数据的比较,比较运算符的结果,并不是一个数值,结果是boolean  (true真  false假),数据不能做连续的比较

 

      == : 相等,比较两个等号两边的数据,是否相等,相等返回true,不等返回false

      != : 不等,判断等号两边的数据,是否不相同,如果不相等,那么返回值为true,如果相等,返回值就是false

      > : 判断左边的数是否大于右边

      < : 判断左边的数是否小于右边

      >= 判断左边的数是否大于等于右边

      <= 判断左边的数是否小于等于右边

  逻辑运算符

      将表达式真假值判断做合理的逻辑结合,逻辑运算符的结果,也不是一个数值,结果是boolean类型  (true真  false假)

      & : 与。要求符号两端的数据是布尔类型,两边必须都是true,返回值才是true,否则就是false。

      &&:短路与,又叫双与。意思和&一样,只不过性能比&好,因为如果&&左边的结果可以决定最终结果,那么&&后面的判断语句就不再进行判断。

      | :或。两边的表达式必须都是布尔类型,有任意一个表达式为true,那么结果就为true,否则为false。

      | |:短路或。意思和 | 一样,性能比 | 好,因为如果 | | 左边的结果可以决定最终结果,那么 | | 后面的判断语句就不再进行判断。

      ! : 非。true,加上非就是false。false加上!,结果就是true。

      ^ : 异或。左右两边表达式结果相同为假,不同为真。

  三元运算符

      又叫三目运算符,需要进行二者选一个的情景,会使用三元运算。

      语法格式:表达式表达式1:表达式2;

        解释:首先判断表达式结果的真假,如果是true,执行表达式1,结果是false,执行表达式2。

 

      表示式:必须是boolean类型的表达式。

      三元运算的结果,类型未知(可以是任意类型,根据表达式1和表达式2的结果定)。表达式1和表达式2的类型尽量一致。

 

 

  位移运算符

      数据在内存中,可以通过位置的移动,来进行计算。

 

      << :左移,每次向左移动一位,可以让一个十进制数*2

 

      >>: 右移,每次向右移动一位,可以让一个十进制数/2

 

      >>>: 正数的向右移动一位,可以让一个十进制数/2

      说明:

 

        位移只能进行整数的运算

        位移运算的结果,仍然是一个整数类型

        >> 2,表示向右移动两位,相当于原值/2后再/2

      问题:2怎么样做运算会最高效地扩大8倍?

        通过位运算

        2<<3 向左移动3位