目录

一、什么是运算符?

二、运算符的分类

1.算术运算符​

2.赋值运算符​

A:基本赋值运算符

B:扩展赋值运算符

a+=5; 和 a=a+5; 真的完全一样吗???

 3.比较运算符​

  4.逻辑运算符​

&与&&,|与||有什么区别呢?​

什么时候用&?什么时候又用&&呢?​​​

  5.位运算符​

 6.三元运算符​

三.运算符的优先级​


一、什么是运算符?

        运算符也可叫做操作符,是对变量和常量进行运算的符号.

二、运算符的分类

1.算术运算符

+        -        *        /        %        ++        --

  • " + " :             (+的两个作用:) 

                              a:进行加法运算          (当+左右两边的都为数字类型时,进行加法运算)

                                  b:进行字符串拼接.    (加号两边任意一边为字符串,则发挥拼接作用!并且拼接                                    后的结果为字符串类型 )      例:   

System.out.println( 521 + "中国!" );
//加号左边为521,默认为int类型,右边的是字符串类型"中国".于是起拼接作用!
//最后输出的也是字符串"521中国!"

当一个表达式中有多个"+"时,遵循从左往右的顺序一次执行.除非加了小括号,小括号的优先级高!

  • " - " :减  

  • " * " :              (+  . -  . *都是正常的四则运算里的运用就对啦!)

  • " / " :取商    

class Demo{
	public static void main(String[] args){
		//注意:当为整数类型时,结果也是整数类型!结果取整,不要余数!
		int a=8%3;
		System.out.println(a);    //输出为2
	}
}

 其它时候均为取商

  • " % " :取余   (就是取最后的余数!)
    class Demo{
    	public static void main(String[] args){
    		int a=8%5;
    		System.out.println(a);    //输出为3
    	}
    }
  •  ++ " :自加1
  • " -- " :自减1     (++和--具体的介绍,在这里.        ☞☞☞☞☞☞    详细介绍  )

2.赋值运算符

  =       +=        -=        /=        *=        %= 

A:基本赋值运算符

  • " = " :将右边的值赋值给左边的变量             

                                 例:Int a=10;     将值10赋值给左边的int类型的变量a.

                                (注意: "="右边的优先级比左边的高! 先执行右边的表达式或值,再将结果或值                                    放到左边的"盒子"里!)

B:扩展赋值运算符

( +=    -=    *=    /=   %=)     就以+=为例介绍一下吧!其他的都时一个原理!

如下例中的a+=5 ;    也就是a=a+5;

class Demo{
	public static void main(String[] args){
		int a=10;
        a+=5;                     //相当于a=a+5;
		System.out.println(a);    //输出为15
	}
}

a+=5; 和 a=a+5; 真的完全一样吗???

那么问题来啦! a+=5; 和 a=a+5; 真的完全一样吗???

答案是不一样的!只能说他俩比较相似,但再本质上是不一样的!来看个例子吧!

 如上面两个图中,左边是a+=5;右边是a=a+5;而左边的图运行结果是15!右边的却编译报错!不兼容的类型: 从int转换到byte可能会有损失!这就问题来了!!!!

右图中:a=a+5;a与5参与运算后,其结果就是int类型!但a原本的接收类型就是byte类型!

int类型------>byte类型,需要强制转换!所以编译报错!

由此可以得出一个结论:使用扩展运算符,永远都不会改变运算的结果类型!

即a+=5等于a=(byte)(a+5);


 3.比较运算符

  !=       <        >       <=        >=        == 

比较运算符也可叫做关系运算符!(其所有的运算结果都是布尔类型,只有两个结果:true 或 false)并且需要注意:运算符中有两个字符的话,两个字符之间不能有空格!否则会编译报错的哈!

  • " == " :比较两个数是否相等!
class Demo{
	public static void main(String[] args){
		int a=10;
        int b=10;                    
		System.out.println(a == b);    //输出为ture
	}
}

  4.逻辑运算符

  &       |        &&      ||        !  

  • " & " :逻辑与(可以理解为并且 .    例:100>99并且100>98  ----->  100>99 & 100>98)

                  两边都为true,结果才为true.两边任意一边为false,结果就为false.

  • " | " :逻辑或

                  两边任意一边为true,结果就为true.

  • " && " :短路与
  • " || " :短路或
  • " ! " :非 (相当于取反.如果是true,则为false.如果是false,则为true.)

逻辑运算符的特点:  逻辑运算符的两边要求都是布尔类型,并且最终结果也是布尔类型!


&与&&,|与||有什么区别呢?

        首先&与&&完全相同,只不过"&&"会出现短路现象!(什么是短路现象呢?请看下面示例!)

" & "的示例:

class Demo{
	public static void main(String[] args){
		int i=10;
		int j=5;
		if(i++>20 & i>j++){
		 System.out.println("");   
		}
		System.out.println(i);     //输出i为11
	    System.out.println(j);     //输出j为6  (左边i++>20为false,并且后面的j++执行了!)
	}
}

" && "的示例:

class Demo{
	public static void main(String[] args){
		int i=10;
		int j=5;
		if(i++>20 && i>j++){
		 System.out.println("");
		}
		System.out.println(i);     //11
		System.out.println(j);     //输出j为5  (左边i++>20为false,后面的j++没有执行!)
	}
}

从"&&"的示例就可以发,左边的表达是为false,右边的表达式就不再执行!这就是短路现象!

由此得出结论:如果左边的表达式为false,"&"右边的表达式会继续执行,而"&&"的右边的表达式就不再执行!

同理:如果左边的表达式为true,"|"右边的表达式会继续执行,而"||"的右边的表达式将不再执行!


什么时候用&?什么时候又用&&呢?

        从效率方面来说"&&"比"&"的效率要高一些!因为"&"不管第一个表达式怎么样,右边的表达式都会执行!所以大部分时间都用"&&",只有咱们想让两边都执行时,才用"&"!


  5.位运算符

  &       |        ^      ~        <<       >>        >>>  

位运算符的详细介绍!!!   -------->     点击这里!!

 6.三元运算符

格式:  表达式 ? 表达式1 : 表达式2

三元运算符也可叫做三目运算符哟!

如果表达式的结果为真,则执行表达式1,如果为假,就执行表达式2!

例:求两个数之间的最大值!

class Demo{
	public static void main(String[] args){
		int a=10;
		int b=5;
		int max= a>b?a:b;
		System.out.println(max);     
	}
}

三.运算符的优先级

java中的运算符是有先后运算顺序的,这个就是运算符的优先级.以下就是运算符的优先级(从高到低)

优先级

描述

运算符

1

括号

()、[]

2

正负号

+、-

3

自增自减,非

++、--、!

4

乘除,取余

*、/、%

5

加减

+、-

6

移位运算

<<、>>、>>>

7

大小关系

>、>=、<、<=

8

相等关系

==、!=

9

按位与

&

10

按位异或

^

11

按位或

|

12

逻辑与

&&

13

逻辑或

||

14

条件运算

?:

15

赋值运算

=、+=、-=、*=、/=、%=

16

位赋值运算

&=、|=、<<=、>>=、>>>=

(小编也在努力学习更多哟!以后会多多分享哒!)

希望对友友们有所帮助!!!!