Java运算符


对字面量或变量进行操作的符号

算数运算符

加、减、乘、除、取模/取余

符号作用说明
++
--
**
/取结果的商
%取模、取余取结果的余数

在代码中,如果有小数参与计算,那么它的结果有可能是不精确的,这里涉及到了小数在计算机中的存储模式

加法的高级用法

数字相加

数据类型不一样不能运算,需要转成一样的才能运算,需要用到类型转换,分为隐式转换强制转换

  1. 隐式转换(自动类型提升):
    a. 取值范围小的 > 取值范围大的
    b. byteshortchar三种类型在运算时都会先提升为int,然后再进行运算
  2. 强制转换:取值范围大的 > 取值范围小的,不允许直接赋值的
    a. 格式目标数据类型 变量名=(目标数据类型) 被强转的数据
    b. 如果数据比较大,那么在强转的时候就会发生错误
public class Demo1 {
    public static void main(String[] args) {
    	// 隐式转换
        int a=10;
        double b = 12.3;
        double c = a+b;  // 此处c为double类型

		byte e = 1;
		byte d = 3;
		int s = e+d; // 此处s为int类型	
		
		// 强制转换
		int f = 300;
		byte k = (byte) f; // 出错,越界了
    }
}

字符串相加

  1. +操作中出现字符串时,就是字符串连接符了,会将前后的字符串拼接,产生新的字符串
  2. 连续的+操作,从左到右逐个执行

字符相加

  1. 字符+字符字符+数字,会把字符通过ASII表查询到对应的数字再进行计算
    a - 97

自增自减运算符

符号作用说明
++变量的值加1
变量的值减1

单独使用

a++和++a单独写一行时是一样的效果

参与运算

运算1:先用后加

int a=10;
int b=a++;  // b = 10, a = 10+1=11

运算2:先加后用

int a=10;
int b=++a; // a = 10+1=11, b = 11

赋值运算符

符号作用说明
=赋值int a=10
+=加后赋值a+=b, 即a=a+b
-=减后赋值a-=b
*=乘后赋值a*=b
/=除后赋值a/=b
%=取余后赋值a%=b

关系运算符

符号说明
==a==b, a和b是否相等,成立为true,否则为false
!=a!=b,a和b是否不等
>a>b
>=a>=b
<a<b
<=a<=b

关系运算符的结果都是boolean类型

逻辑运算符

符号作用说明
&逻辑与(且)并且,都为真则为真,其余为假
|逻辑或或者,都为假则为假,其余为真
^逻辑异或相同为false,不同为true
!逻辑非取反

短路逻辑运算符

符号作用说明
&&短路与(且)结果和&相同,但是有短路效果, 左边为false,右边不管真假,表达式一定是false
| |短路或结果和 | 相同,但是有短路效果,左边为true,右边不管真假,表达式一定是true

具有短路效果,当左边的表达式能确定最终的结果,那么右边就不会运行了

int a = 10;
int b = 20;
boolean res = ++a < 5 && ++b < 5; // 只要确定了左边不满足,则返回false,不用再计算右边了
System.out.println(res); // false
System.out.println(a); // 11
System.out.println(b); // 20

最常用逻辑运算符:&&||!

三元运算符

格式关系表达式 ? 表达式1 : 表达式2
含义:关系表达式满足,就执行表达式1,否则执行表达式2
示例 res = a > b ? a : b,如果a>b,就返回a,否则返回b

运算符优先级

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值