java基础——运算符

人生之路不会是一帆风顺的,我们会遇上顺境,也会遇上逆境,在所有成功路上折磨你的,背后都隐藏着激励你奋发向上的动机,人生没有如果,只有后果与结果,成熟,就是用微笑来面对一切小事。

导读:本篇文章讲解 java基础——运算符,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

🏡个人主页 :@ 守夜人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,否则返回false a>b
< 小于 a小于b时返回true,否则返回false a<b
>= 大于等于 a大于等于b时返回true,否则返回false a>=b
<= 小于等于 a小于等于b时返回true,否则返回false a<=b

逻辑运算符

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

总结:

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

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

在这里插入图片描述


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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/125501.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!