013_JAVA基础语法_运算符
-
算数运算
-
算术运算中存在比int容量高的类型,则结果类型为高容量的类型,否则结果就为int;
long a = 1234567890122345L;
int b = 123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d); //Long
System.out.println(b+c+d); // int
System.out.println(c+d); // int -
自增自减注意事项
-
++,-- 在变量后面时,执行玩这段代码后,变量才会增加或减少;
-
++,-- 在变量前面时,执行玩这段代码前,变量先增加或减少;
-
-
很多的算数运算会使用工具类来操作。
b=a++;//执行完这局代码后,先赋值再自增
b=++a;//执行完这局代码前,先自增,再自增
-
-
关系运算符返回的结果为布尔值
-
==只能使用在基础类型中,以及对象和null比较时;
-
当对象和对象比较想使用“==”判断时,应该使用equals来判断。
-
-
逻辑运算符
-
逻辑与(&&)运算,两个为true才为true;逻辑或(||)运算,两个为false才为false;逻辑非(!)运算,为true则结果为false,为false则结果为true
-
短路运算
-
逻辑与(&&)时,前一个逻辑表达式为false,则后面的逻辑表达式不再进行判断;其结果为false;
-
逻辑或(||)时,前一个逻辑表达式为true,则后面的逻辑表达式不再进行判断;其结果为true。
boolean flag = true;
boolean flag1 = false;
System.out.println("flag && flag1 :"+(flag && flag1)); //flag && flag1 :false
System.out.println("flag || flag1 :"+(flag || flag1)); //flag || flag1 :true
System.out.println("!(flag && flag1) :"+!(flag && flag1)); //!(flag && flag1) :true
//短路运算
int num =4;
boolean flag2 = (num < 4) && (num++<4);
System.out.println(num); //4
System.out.println(flag2); //false -
-
-
位运算符
-
& 都为1,结果为1
-
| 都为0,结果为0
-
^ 相同为0,不同为1
-
~ 取反
A = 0011 1100
B = 0000 1101
A & B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A = 1100 0011 -
左移(<<) *2
-
右移(>>) /2 (尖尖只哪边往哪边移)
//2*8 如何计算最快? 2*2*2*2
-
-
三元运算符(条件运算符 ?:)
-
必须掌握
-
格式 x ?y :z
-
如果x为true,则结果为y;否则结果为z
int score = 50;
String type = score < 60 ? "不及格" : "及格";
System.out.println(type); //不及格
-
-
扩展赋值运算符(用于偷懒使用,代码简洁)
int number1 = 10;
int number2 = 20;
number1+=number2; //number1=number1+number2;
number1-=number2; //number1=number1-number2;
三、扩展
-
字符串连接符 +
(面试题)String类型在字符连接符前面则其他操作数也会转换为String类型
int number1 = 10;
int number2 = 20;
System.out.println(""+number1+number2); //1020
System.out.println(number1+number2+""); //30 -
运算符优先级(了解并熟悉)
-
-
运算符优先级列表
图片来源:
SOJASON.Java运算符优先级[EB/OL].[2022-03-14].https://www.sojson.com/operation/java.html
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!