java基础——运算符

🏡个人主页 :@ 守夜人st
🚀系列专栏:Java
…持续更新中敬请关注…
🙉博主简介:软件工程专业,在校学生,写博客是为了总结回顾一些所学知识点

✈️推荐一款模拟面试,刷题,从基础走向大场面试👉 开启你的刷题之路吧

​Java运算符

活动地址:CSDN21天学习挑战赛

算数运算符

运算符名称说明例子
+求和a + b
-求差a - b
*求积a * b
/求商a / b
%取余求a除以b的余数a % b
-取反取反运算b = -a
++自增先取值再加一(先加一再取值)a++(++a)
自减先取值再减一(先减一再取值)a–(–a)

关系运算符

运算符名称说明例子
==等于a等于b时返回true,否则返回false(也可用于引用类型数据)a==b
!=不等于与==相反a!=b
>大于a大于b时返回true,否则返回falsea>b
<小于a小于b时返回true,否则返回falsea<b
>=大于等于a大于等于b时返回true,否则返回falsea>=b
<=小于等于a小于等于b时返回true,否则返回falsea<=b

逻辑运算符

运算符名称说明例子
a为true时,值为falsea为false时,值为true!a
&ab全为true时,计算结果为true,否则为falsea & b
|ab全为false时,计算结果为false,否则为truea|b
&&短路与ab全为true时,计算结果为true 否则为false,&&与&区别:如果a为false,则不计算b(因为不论b为何值,结果都为false)a &&b
||短路或ab全为false时,计算 果a为true,则不计算b(因为不论b为何值,结果都为 truea||b

位运算符

在这里插入图片描述

赋值运算符

运算符名称例子
+=加赋值a += b 等价于 a = a + b
-=减赋值a -= b 等价于 a = a - b
*=乘赋值a *= b 等价于 a = a * b
/=除赋值a /= b 等价于 a = a / b
%=取于赋值a %= b 等价于 a = a % b

字符串连接运算符

int a = 100;
int b = 200;
// 这里的 + 两边都是数字,所以加法运算
int c = a + b;
System.out.println(a + "+" + b + " = "  + a + b);//100+200=100200
System.out.println(a + "+" + b + " = "  + (a + b));//100+200=300
  • 当 + 运算符两边都是数字类型的时候,求和。
  • 当 + 运算符两边的“任意一边”是字符串类型,那么这个+会进行字符串拼接操作。

其他运算符

除了前面介绍的主要运算符,Java还有一些其他运算符。

三元运算符(? :)例如x?y:z;,其中x、y和z都为表达式。

小括号起到改变表达式运算顺序的作用,它的优先级最高。

中括号数组下标。

引用号 (.)对象调用实例变量或实例方法的操作符,也是类调用静态变量或静态方法的操作符。

赋值号(=)赋值是用等号运算符(=)进行的。

instanceof:判断某个对象是否为属于某个类。

new :对象内存分配运算符。

箭头(->)😗*Java 8新增加的,用来声明Lambda表达式

双冒号(::)😗*Java 8新增加的,用于Lambda表达式中方法的引用。

此外,还有一些鲜为人知的运算符,随着学习的深入相信大家会有机会遇到的!

运算优先级

在这里插入图片描述

测试程序:

package com.shouyerenst;

public class Operator {
    public static void main(String[] args) {
    
        System.out.print("算数运算符:");
        System.out.println("=============================");
        int i = 10;
        int j = 3;
        System.out.println(i+j);// 13
        System.out.println(i-j);// 7
        System.out.println(i*j);// 30
        System.out.println(i/j);// 3
        System.out.println(i%j);// 1
        
        
        int a = 12;
        System.out.println(-a);// -12
        int b = a++;
        System.out.println(b); //12
        b = ++a;
        System.out.println(b); // 14
        System.out.println("=============================");
    
        System.out.print("赋值运算符:");
        System.out.println("=============================");
        int c = 1;
        int d = 2;
        c += d;
        System.out.println(c);// 3
        c -= d;
        System.out.println(c);// 1
        c *= d;
        System.out.println(c);// 2
        c /= d;
        System.out.println(c);// 1
        c %= d;
        System.out.println(c);// 1
        System.out.println("=============================");
    
        //关系运算符
        System.out.print("关系运算符:");
        System.out.println("=============================");
        int value1 = 1;
        int value2 = 2;
        if (value1 == value2) {
            System.out.println("value1 == value2");
        }if (value1 != value2) {
            System.out.println("value1 != value2");
        }if (value1 > value2) {
            System.out.println("value1 > value2");
        }if (value1 < value2) {
            System.out.println("value1 < value2");
        }if (value1 <= value2) {
            System.out.println("value1 <= value2");
        }
        System.out.println("=============================");
    
        System.out.print("位运算符:");
        System.out.println("=============================");
        byte byteNum1 = 0B00110010; //十进制50
        byte byteNum2 = 0B01011110; //十进制94
        System.out.println("byteNum1 | byteNum2 = " + (byteNum1 | byteNum2)); // 0B01111110 (126)
        System.out.println("byteNum1 & byteNum2 = " + (byteNum1 & byteNum2)); // 0B00010010 (18)
        System.out.println("byteNum1 ^ byteNum2 = " + (byteNum1 ^ byteNum2)); // 0B01101100 (108)
        System.out.println("~byteNum2 = " + (~byteNum2)); // 0B10100001 (-95)
        System.out.println("byteNum1 >> 2 = " + (byteNum1 >> 2)); // 0B00001100 (12)
        System.out.println("a >> 1 = " + (byteNum1 >> 1)); // 0B00011001 (25)
        System.out.println("byteNum1 >> 1 = " + (byteNum1 >>> 2)); // 0B00001100 (12)
        System.out.println("byteNum1 << 2 = " + (byteNum1 << 2)); // 0B11001000 (200)
        System.out.println("byteNum1 << 1 = " + (byteNum1 << 1)); // 0B01100100 (100)
        int byteNum3 = -12;
        System.out.println("byteNum3 >>> 2 = " + (byteNum3 >>> 2));// 1073741821
        System.out.println("byteNum3 >> 2 = " + (byteNum3 >> 2));// -3
    }
}

运行结果:

算数运算符:=============================
13
7
30
3
1
-12
12
14
=============================
赋值运算符:=============================
3
1
2
1
1
=============================
关系运算符:=============================
value1 != value2
value1 < value2
value1 <= value2
=============================
位运算符:=============================
byteNum1 | byteNum2 = 126
byteNum1 & byteNum2 = 18
byteNum1 ^ byteNum2 = 108
~byteNum2 = -95
byteNum1 >> 2 = 12
a >> 1 = 25
byteNum1 >> 1 = 12
byteNum1 << 2 = 200
byteNum1 << 1 = 100
byteNum3 >>> 2 = 1073741821
byteNum3 >> 2 = -3

总结:

运算符优先级大体顺序,从高到低是:算术运算符→位运算符→关系运算符→逻辑运算符→赋值运算符。

算法对程序员来说及其重要,语言和开发平台不断变化,但是万变不离其宗的是那些算法和理论,刷算法最最最直白的原因就是找一个好的工作,那刷题一定是必不可少的
现在算法刷题平台还是蛮多的,给大家介绍一个我认为与大厂关联最深的平台——牛客网 跳转链接

在这里插入图片描述

感觉不错的话,动手点个赞吧!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

守夜人st

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值