Java学习之路-----Java运算符


什么是运算符

对常量和变量进行操作的符号称为运算符

思维导图

运算符思维导图

一、算数运算符

算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。
算数运算符的基本用法:

public class Test {
 
  public static void main(String[] args) {
     int a = 10;
     int b = 20;
     int c = 25;
     int d = 25;
     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) );
     System.out.println("c % a = " + (c % a) );
     System.out.println("a++   = " +  (a++) );
     System.out.println("a--   = " +  (a--) );
     // 查看  d++ 与 ++d 的不同
     System.out.println("d++   = " +  (d++) );
     System.out.println("++d   = " +  (++d) );
  }
}
//结果:
a + b = 30
a - b = -10
a * b = 200
b / a = 2
b % a = 0
c % a = 5
a++   = 10
a--   = 11
d++   = 25
++d   = 27

注意事项:
整数相除只能得到整数。如果想得到小数,请使用浮点数。
/获取的是除法操作的商,%获取的是除法操作的余数,%运算结果的符号,取决于参与运算是左边的符号。

++,–运算符的作用

自加(++)自减(–)运算
++:自加。对原有的数据进行+1
–:自减。对原有的数据进行-1

++,–运算符的基本用法:

public class Test{
    public static void main(String[] args){
        int a = 3;
        int b = ++a;
        int c = 3;
        int d = --c;
        System.out.println("b="+b);
        System.out.println("d="+d);
    }
}
//结果
b=4
d=2

单独使用:
放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
参与运算使用:
放在操作数的前面,先自增或者自减,然后再参与运算。
放在操作数的后面,先参与运算,再自增或者自减。
案例演示:

public class Test{
    public static void main(String[] args){
        int x = 4;
		int y = (x++) + (++x) + (x*10);
        System.out.println("x="+x);
        System.out.println("y="+y);
    }
}
//结果
x=6
y=70

二、赋值运算符

赋值运算符的作用就是将常量、变量或表达式的值赋给某一个变量。
基本用法:

public class Test {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 0;
        c = a + b;
        System.out.println("c = a + b = " + c );
        c += a ;
        System.out.println("c += a  = " + c );
        c -= a ;
        System.out.println("c -= a = " + c );
        c *= a ;
        System.out.println("c *= a = " + c );
        a = 10;
        c = 15;
        c /= a ;
        System.out.println("c /= a = " + c );
        a = 10;
        c = 15;
        c %= a ;
        System.out.println("c %= a  = " + c );
    }
}

注意事项:
基本的赋值运算符:=
=右边的数据赋值给左边。

特殊的赋值运算符:+=,-=,*=,/=,%=
它们把左边和右边做相应的算术运算,然后赋值给左边。
赋值运算符要求左边的数据必须是一个变量

三、关系运算符

关系运算符用来比较两个值,包括大于>、小于<、大于等于>=、小于等于<=、等于==、不等于!=instanceof,关系运算符都是二元运算符,也就是每个运算符都带有两个操作数,运算的结果是一个逻辑值。
注意事项:
无论操作是简单还是复杂,关系运算符的结果是boolean类型。
==不能写成=
instanceof 运算符
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)
如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。
使用格式如下:
( Object reference variable ) instanceof (class/interface type)
代码示例:

String name = "aaa";
boolean result = name instanceof String; 
// 由于 name 是 String 类型,所以返回真

四、逻辑运算符

逻辑运算符包括&(并且) , |(或者) , !(非) , ^(异或) , &&(逻辑与) , ||(逻辑或)。Java对逻辑与和逻辑或提供“短路”功能,也就是在进行运算时,先计算运算符左侧的表达式的值,如果使用该值能得到整个表达式的值,则跳过运算符右侧表达式的计算,否则计算运算符右侧表达式,并得到整个表达式的值。
逻辑运算符基本用法
(表达式A)(逻辑运算符)(表达式B)
注意事项
逻辑运算符一般用于连接boolean类型的表达式或者值。
在Java中我们要表示一个数大于3并且小于6 ,不可以写成3<x<6,应该写成 x>3 & x<6
结论
&逻辑与:有falsefalse
|逻辑或:有truetrue
^逻辑异或:相同为false,不同为true
举例:情侣关系。男男,男女,女男,女女
!逻辑非:非falsetrue,非truefalse
特点:偶数个不改变本身。

五、位运算符

位运算符用来对二进制位进行操作。位运算符有&(与),|(或),^(异或) , ~(按位取反) , <<(左移) ,>>(右移) ,>>>(无符号右移)
注意事项:
位运算是直接对二进制补码进行运算(运算效率高)
代码示例:

public class Test {
  public static void main(String[] args) {
     int a = 60; 
     int b = 13;
     int c = 0;
     c = a & b;     
     System.out.println("a & b = " + c );
     c = a | b;     
     System.out.println("a | b = " + c );
     c = a ^ b;      
     System.out.println("a ^ b = " + c );
     c = ~a;         
     System.out.println("~a = " + c );
     c = a << 2;  
     System.out.println("a << 2 = " + c );
     c = a >> 2;    
     System.out.println("a >> 2  = " + c ); 
     c = a >>> 2;  
     System.out.println("a >>> 2 = " + c );
  }
} 
//结果
a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 2  = 15
a >>> 2 = 15

各运算符的运算规则
&如果相对应位都是1,则结果为1,否则为0
|如果相对应位都是 0,则结果为 0,否则为 1
^如果相对应位值相同,则结果为0,否则为1
~按位取反运算符翻转操作数的每一位,即0变成1,1变成0
<<按位左移运算符。左操作数按位左移右操作数指定的位数
>>按位右移运算符。左操作数按位右移右操作数指定的位数
>>>按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充
运算过程:

正数的按位反:+9
	原码:00001001
	反码:00001001
	补码:00001001
	按位取反 1  1110110 补码
	再推回原码
      1  1110110 补码
    -          1  
   -----------------------------   
      1  1110101 反码
  	取反
   ----------------------   
      1  0001010 原码 
      
最后结果是: -10  

结论
&:有0则0
|:有1则1
^:相同则0,不同则1
~:按位取反 0变1 1变0 符号位也包含在内取反
位异或运算符的特点
^的特点:一个数据被另一个数据位异或两次,该数本身不变

六、三元运算符

三元(三目)运算符的格式
(关系表达式) ? 表达式1 : 表达式2;
例: int a=(10>20)?30:50; a=50
三元运算符的执行流程
计算关系表达式的值,如果为true, 运算后的结果是表达式1;
如果为false,运算后的结果是表达式2;
案例演示:

class  SYYSF{
	public static void main(String[] args) {
		int a=20;
		int b=10;
		int c=100;
		int max=a>b?a:b;
		System.out.println("最大值是:"+max);
		    max=max>c?max:c;	
		System.out.println("最大值是:"+max);
	}
}
//结果
最大值是:20
最大值是:100
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值