:house_with_garden:个人主页 :@ 守夜人st:rocket:系列专栏:Java...持续更新中敬请关注...:hear_no_evil:博主简介:软件工程专业,在校学生,写博客是为了总结回顾一些所学知识点
:airplane:推荐一款模拟面试,刷题,从基础走向大场面试:point_right: 开启你的刷题之路吧
Java 运算符
算数运算符
关系运算符
逻辑运算符
位运算符
赋值运算符
字符串连接运算符
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
复制代码
总结:
运算符优先级大体顺序,从高到低是:算术运算符→位运算符→关系运算符→逻辑运算符→赋值运算符。
==感觉不错的话,动手点个赞吧!==
评论