JAVA基础2---运算符(详解)

Java的四个主要的运算符,分别是算术运算符、关系运算符、逻辑运算符、位运算符。

运算符

1.算术运算符

算术运算符用于数值运算,如:加(+)、减(-)、乘(*)、除(/)、取余(%)、自增(++)、自减(–)

  • 规则(不全)
    1.同类型数据参与运算后,结果的类型与参与运算的类型保持一致。
    2.要将大类型赋值给小类型时,需将小类型强转,提升为大类型,再进行类型转换。
    【举个栗子】
public static void main(String[] args) {
	int  a=10;
	long b=20L;
	int  c=a+b;
	System.out.println(c);
}

运行会报错(C语言中遇到以上情况仅有告警,Java的安全性较高,直接报错。)
报错
修改后

public class Demo{
		public static void main(String[] args) {
		    int  a=10;
		    long b=20L;
		    int  c=(int)(a+b);
		    System.out.println(c);
	}
}

取余运算(%)
a%b,即取 a 除以 b 的余数,以下面代码示例:

public static void main(String[] args) {
		System.out.println(20  %  3);
		System.out.println(20  % -3);
		System.out.println(-20 %  3);
		System.out.println(-20 % -3);
	}

运行结果:2 、2、-2、-2


自增自减运算(++、- -)

自增自减顾名思义,就是对操作数+1,或-1。但也有前置和后置之分,用自增举例,讨论一下在Java中前置++和后置++的特别之处。

  • 前置++和后置++的区别
    前置++:先自增,再使用
    后置++:先使用,再自增
  • 特别之处
    先猜猜看代码中 i 的输出结果!
public static void main(String[] args) {
    	int i = 10;
    	i=i++;
    	System.out.println(i);
    }

按照C语言的逻辑,此处输出的 i 值是11,然而…i =10

修改一下,将i++赋给a,再看看二者的变化。

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


说明,在表达式 a=i++ 中,赋给a的值,仍为 i ,而非 i+1 后的 i’。(仅是表面理解,表述可能不太恰当,有待完善)

2.关系运算符

主要使用的六种:== 、!= 、< 、>、 <= 、>=
其返回值为布尔类型(boolean)

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

3.逻辑运算符

逻辑运算符主要有3种:与(&&)、或(||)、非(!)
其结果返回值为布尔类型(boolean)

  • 逻辑与(&&)–黑白分明
    表达式1&&表达2,若表达式1、2都为true,结果为true;否则结果为true。
  • 逻辑或( | | )–宽容仁慈
    表达式1 | | 表达2,若表达式1、2都为false,结果为false;否则结果为true。
  • 逻辑或( !)–颠倒黑白
    单目运算符,表达式为true,结果为false;反之,结果为true

4.位运算符

位运算符:按二进制位运算。(运算时,会先将数值转换为二进制,再进行按位运算)。下面阐述主要的四种: & 、 | 、 ^(异或) 、 ~(按位取反)

  • 1.按位与(&)
    对应二进制位都为1,则结果为1,反之结果为0。
  • 2.按位或( | )
    对应二进制位都为 0, 则结果为 0, 反之结果为1。
  • 3.按位异或(^)
    字面理解,按位运算,若为“异”,则“或”运算。即,相同为0,相异为1。

还有条件运算符(三目)、移位运算符,用法与C语言相同,这里不进行阐述了。重点理解取余运算、自增自减中前置与后置的区别、在java中的用法,以及逻辑运算符。自知上述还有不足之处,且待我慢慢完善!

…未完待续!

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值