Java基础03:基本运算符
1.Java入门——介绍及安装2.Java基础01:注释、标识符、数据类型3.Java基础02:类型转换、变量、常量
4.Java基础03:基本运算符
5.Java基础04:包机制、JavaDoc生成文档6.Java流程控制01:Scanner对象7.Java流程控制02:顺序结构和选择结构8.Java流程控制03:循环结构9.Java方法10.Java数组01:数组的定义、声明、创建、初始化和内存分析11.Java数组02:数组使用、多维数组、冒泡排序和稀疏数组12.Java面向对象01:类与对象的关系、创建和初始化对象13.Java面向对象02:封装和继承14.Java面向对象03:抽象类、接口和内部类15.Java异常16.SpringBoot和微服务架构17.SpringBoot基础01:创建项目和编写HTTP接口18.SpringBoot基础02:自动装配原理、yaml语法和JSR-303数据校验19.SpringBoot基础03:静态资源和首页定制20.Java多线程01:什么是线程和线程的创建21.Java多线程02:静态代理模式和Lambda表达式22.Java多线程03:线程的五大状态23.Java多线程04:线程优先级、守护线程和线程同步24.Java多线程05:死锁、LOCK和线程协作25.网络编程基础01:网络编程概述、IP和端口26.网络编程基础02:TCP实现聊天和文件上传27.Java注解和反射01:注解28.Java注解和反射02:反射基本概述和获得Class类的几种方式29.Java注解和反射03:类加载30.Java注解和反射04:Class对象的使用Java基础03:基本运算符
基本运算符
Java语言支持如下运算符
- 算术运算符:+,-,*,/,%(取余,模运算),++,--
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=,instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>(了解就好)
- 条件运算符:?:
- 扩展赋值运算符:+=,-=,*=,/=
运算符优先级
- 该表中优先级按照从高到低的顺序书写,也就是优先级为1的优先级最高,优先级14的优先级最低。
- 结合性是指运算符结合的顺序,通常都是从左到右。从右向左的运算符最典型的就是负号,例如3+-4,则意义为3加-4,符号首先和运算符右侧的内容结合。
- instanceof作用是判断对象是否为某个类或接口类型。
- 注意区分正负号和加减号,以及按位与和逻辑与的区别。
各运算符使用方法及特例
不同数值类型相互运算,无long或更高优先级类型则自动转换为int类型。
算术运算符
//二元运算 +,-,*,/,%,++,--
int m = 10;
int n = 20;
long a = 123456789;
int b = 123;
short c = 10;
byte d = 8;
float e = 1.23f;
double f = 4.56d;
System.out.println(m/n);//输出为0,因为是int类型
System.out.println(m/(double)n);//输出为0.5,将int类型强转为double将int类型强转为double
System.out.println(a+b+c+d);//long类型
System.out.println(b+c+d);//int类型
System.out.println(c+d);//int类型,无long或更高优先级类型,自动转换为int类型
System.out.println(d+e);//float类型
System.out.println(d+f);//double类型
System.out.println(a+f);//double类型
System.out.println(b%m);//取余,模运算,int类型,输出为:3
++(自增)、--(自减)运算符
自增/自减运算符运算时相当于隐藏了一行代码,例子如下:
int a = 3;
//自增/自减运算隐藏着一行代码 a = a + 1/a = a - 1
int b = a++;//执行完a++这行代码后,先给b赋值 b = a,再自增执行隐藏代码a = a + 1
System.out.println(a);//输出为:4
int c = ++a;//执行完++a这行代码前,先给a自增执行隐藏代码a = a + 1,再给c赋值c = a
System.out.println(a);//输出为:5
System.out.println(b);//输出为:3
System.out.println(c);//输出为:5
小拓展初识Math类
/*小拓展初识Math类
幂运算 2*2*2 = 8 很多运算,我们会使用一些工具类来操作
变量声明快捷键,Math.pow(2,3)输入完按Alt+回车,按住Ctrl左键点击Math可查看Math类源代码
*/
double pow = Math.pow(2, 3);
System.out.println(pow);//输出为:8
逻辑运算符
boolean a = true;
boolean b = false;
System.out.println("a && b:"+(a&&b));//逻辑与运算,输出为:false
System.out.println("a || b:"+(a || b));//逻辑或运算,输出为:true
System.out.println("!(a && b):"+!(a&&b));//逻辑非运算,输出为:true
//短路运算
int c = 5;
//证明:如果执行了(c++<4)则System.out.println(c);输出为6证明后半段语句被执行,结果为5则证明后半段未被执行短路了
boolean d = (c<4) && (c++<4);//在逻辑与运算中第一个变量就是false则触发短路运算,后一个变量不再执行,输出结果false
System.out.println(d);//输出为:false
System.out.println(c);//输出为:5
位运算符
A = 0011 1100
B = 0000 1101
-------------------------------
A&B = 0000 1100 //与运算对应位置相同则为该数,不同则为0
A|B = 0011 1101 //或运算对应位置相同则为该数,不同则为1
A^B = 0011 0001 //异或运算对应位置相同则为0,不同则为1
~B = 1111 0010 //将B 01取反
-
面试题:2*8怎么运算最快?
/* << >> 左移/右移(箭头指向那边往哪边移动) 优点:运算效率极高! << *2 //乘2 >> /2 //除以2 2*8 = 2*2*2*2 */ System.out.println(2<<3);//输出为:16
扩展赋值运算符符
int a = 10;
int b = 20;
a+=b; //a = a+b;
a-=b; //a = a-b;
//字符串连接符 + 从左到右的顺序,只要+号左侧出现了String类型,则会把其他类型的转化为String类型
System.out.println(""+a+b);//输出为1020
System.out.println(a+b+"");//输出为30
字符串连接符 + 从左到右的顺序,只要+号左侧出现了String类型,则会把其他类型的转化为String类型。
条件运算符
//x ? y : z 如果x==true,则结果为y,否则为z
int score = 50;
String type = score < 60 ? "不及格":"及格";//必须掌握,精简代码,便于理解
System.out.println(type);//输出为:不及格
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!