Java运算符和表达式
Java运算符和表达式
和C语言一样,java也有基础的运算符和表达式,用来完成一些基础的数学计算,以及逻辑运算,我们一起来学习一下吧。
算数运算符
首先,这个算数运算符与数学中即C语言的运算符的功能一样,利用这些基础操作符,可以完成一些基础的操作。
这里我给大家举一些简单的例子,帮助大家理解。
注意:
1)算数运算符的操作数必须是一个整型或浮点型变量。
2)用算数运算符和括号连接起来的符合Java语法规则的式子称为算术表达式,例如:a+2*b-3/(c%d)。
3)a++或a--表示在使用a之前,先使a的值增或减1;++a或--a表示在使用a之后,再使a的值增或减1。
例如:a的值为10,b=a++,b的值为10,而b=++a,b的值为11。
4)Java对加法运算符进行了扩展,使它能够进行字符串的连接,例如:“abc”+“def”会得到字符串“abcdef”。
这里主要给大家强调最后一点,在以后java的学习中,我们经常会见到这种相加的操作,希望大家可以牢记这个知识点。
public class Main {public static void main(String[] args) {int a = 5;int b = 10;int c = 15;int d = 20;System.out.println("a + b = " + (a + b) );System.out.println("a - b = " + (a - b) );System.out.println("a * b = " + (a * b) );System.out.println("b / a = " + (b / a) );System.out.println("b % a = " + (b % a) );System.out.println("a++ = " + (a++) );System.out.println("a-- = " + (a--) );System.out.println("d++ = " + (d++) );System.out.println("++d = " + (++d) );}
}
运行结果如下:
a + b = 15
a - b = -5
a * b = 50
b / a = 2
b % a = 0
a++ = 5
a-- = 6
d++ = 20
++d = 22
Java关系运算符实例讲解
关系运算符,实际与C语言的语法也是十分相似的。
关系运算符用来比较两个值的关系,其运算结果是boolean型,当运算符对应的关系成立是,运算结果真为true,假为false。
这就是它与C语言不同的地方,这里希望大家可以对比记忆,牢记java关系运算符的特点。
这里还是给大家举一些例子:
实例 :
public class Main {public static void main(String[] args) {int a = 5;int b = 10;System.out.println("a == b = " + (a == b) );System.out.println("a != b = " + (a != b) );System.out.println("a > b = " + (a > b) );System.out.println("a < b = " + (a < b) );System.out.println("a >= b = " + (a >= b) );System.out.println("a <= b = " + (a <= b) );}
}
运行结果如下:
a == b = false
a != b = true
a > b = false
a < b = true
a >= b = false
a <= b = true
所以关系运算符的最终结果只有两种:false,true。
Java逻辑运算符实例讲解
这里还是一样,我们还是将注意力主要放到与C语言不同的地方。
首先,这是一个双目运算符,他的两个操作符必须都是boolean型,这里必须给大家强调这一点。
实例:
public class Main {public static void main(String[] args) {boolean a = true;boolean b = false;System.out.println("a && b = " + (a&&b));System.out.println("a || b = " + (a||b) );System.out.println("!(a && b) = " + !(a && b));}
}
运行结果如下:
a && b = false
a || b = true
!(a && b) = true
Java位运算符实例讲解
Java定义的位运算应用于整数类型,如int,long,short,char 和 byte等。
位运算符主要用来对操作数二进制的位进行运算,按位运算表示按每个二进制位进行计算,其操作数和运算结果都是整型值,若运算结果为负数,则采用补码表示。
Java 语言中的位运算符分为位逻辑运算符和位移运算符两类。
这里面的与或非,和我们高中数学里面的与或非一样,与运算即两个操作符都为真结果才为真,或运算即一个为真结果就为真,非即假为真,真为假,具体大家可以搜一下真值表查看。
按位异或运算:
按位异或运算对两个整型数据a、b按位进行运算,运算结果是一个整型数据c。运算法则为:如果a、b两个数据对应位相同,则c的该位是0,否则是1。
例如:
a:0 1 0 1 0 0 1 1
b:0 0 1 1 1 0 1 0
c:0 1 1 0 1 0 0 1
按位右移运算:
按位右移运算的运算法则为:按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补零。
例如:将整数 83 向右位移 1 位
移位前:0 1 0 1 0 0 1 1
移位后:0 0 1 0 1 0 0 1
按位左移运算:
按位左移运算的运算法则为:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
例如:将整数 83 向左位移 1 位
移位前:0 1 0 1 0 0 1 1
移位后:1 0 1 0 0 1 1 0
实例:
public class Main {public static void main(String[] args) {int a = 83; /* 83 = 01010011 */int b = 58; /* 58 = 00111010 */int c = 0;c = a & b; /* 18 = 00010010 */System.out.println("a & b = " + c );c = a | b; /* 123 = 01111011 */System.out.println("a | b = " + c );c = ~a; /* 01010011取反后为10101100,10101100的补码为11010100,-84 = 11010100 */System.out.println("~a = " + c );c = a ^ b; /* 105 = 01101001 */System.out.println("a ^ b = " + c );c = a >> 1; /* 41 = 00101001 */System.out.println("a >> 2 = " + c );c = a << 1; /* 166 = 10100110 */System.out.println("a << 2 = " + c );}
}
运行结果:
a & b = 18
a | b = 123
~a = -84
a ^ b = 105
a >> 2 = 41
a << 2 = 166
Java赋值运算符实例讲解
这个就与C语言的语法大同小异了。这里我们强调:
赋值运算符左面的操作数必须是变量,不能是常量或表达式,赋值表达式的值就是=左面变量的值。
这里给大家一个小技巧,写==操作符时我们可以把常量放到==的左侧,如果误写为=, 编译器会报错。
public class Main {public static void main(String[] args) {int a = 1;int b = 2;int c = 0;c = a + b;System.out.println("c = a + b = " + c );c += a ;System.out.println("c += a = " + c );c -= a ;System.out.println("c -= a = " + c );c *= a ;System.out.println("c *= a = " + c );a = 3;c = 4;c /= a ;System.out.println("c /= a = " + c );a = 5;c = 6;c %= a ;System.out.println("c %= a = " + c );c &= a ;System.out.println("c &= a = " + c );c |= a ;System.out.println("c |= a = " + c );c ^= a ;System.out.println("c ^= a = " + c );c >>= 1 ;System.out.println("c >>= 1 = " + c );c <<= 1 ;System.out.println("c <<= 1 = " + c );}
}
运行结果:
c = a + b = 3
c += a = 4
c -= a = 3
c *= a = 3
c /= a = 1
c %= a = 1
c &= a = 1
c |= a = 5
c ^= a = 0
c >>= 1 = 0
c <<= 1 = 0
Java条件运算符实例讲解
即三目操作符,与C语言一样,具体概念:
条件运算符(?:)是三目运算符,所谓“目”,是指这个运算符参与运算的对象个数,也就是说,条件运算符有三个操作数。
这里强调表达式1必须为boolean类型
public class Main {public static void main(String[] args){int a , b;a = 1;b = (a == 1) ? 2 : 3; // 如果a等于1成立,则设置b的值为2,否则为3System.out.println( "Value of b is : " + b );b = (a == 10) ? 2 : 3; // 如果a等于10成立,则设置b的值为2,否则为3System.out.println( "Value of b is : " + b );}
}
运行结果:
Value of b is : 2
Value of b is : 3
Java instanceof运算符实例讲解
这个操作符是C语言中没有见过的,我们这里简单学习一下:
instanceof运算符左面的操作数是一个对象,右面的操作数是一个类,当左面的对象是右面的类或子类创建的对象时,该运算符运算的结果是true,否则是false。
public class Application {public static void main(String[] args){Object o = new Student();System.out.println(o instanceof Person);}
}
运行结果:
true
Java运算符的优先级和结合性
优先级是可以决定运算的先后;
结合性则是决定了相同级别运算符的先后顺序;
今天就分享这么多了,大家看完多多点赞评论,您的反馈是我创作的动力。
相关文章:

Java运算符和表达式
Java运算符和表达式 和C语言一样,java也有基础的运算符和表达式,用来完成一些基础的数学计算,以及逻辑运算,我们一起来学习一下吧。 算数运算符 首先,这个算数运算符与数学中即C语言的运算符的功能一样,利…...

波奇学Linux:软硬链接
ln指令建立链接 软链接 硬链接 所属者的前的数字表示硬链接数,引用计数,file.txt和soft_link是软链接所以都为2 软链接有独立inode,硬链接没有,所以硬链接不是独立文件,软链接是独立文件,且硬链接的属性会…...

HTTP网络通信协议基础
目录 前言: 1.HTTP协议理论 1.1协议概念 1.2工作原理 1.3工作场景 2.HTTP抓包工具 2.1Fiddler工具 2.2抓包原理 2.3抓包结果 3.HTTP协议格式 3.1HTTP请求 3.2HTTP响应 3.3格式总结 前言: 在了解完网络编程的传输层UDP和TCP通信协议后&#…...

Java实现河南软件客服系统 JAVA+Vue+SpringBoot+MySQL
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统管理人员2.2 业务操作人员 三、系统展示四、核心代码4.1 查询客户4.2 新增客户跟进情况4.3 查询客户历史4.4 新增服务派单4.5 新增客户服务费 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的河…...

【小沐学GIS】基于C++QT绘制三维数字地球Earth(OpenGL)
🍺三维数字地球系列相关文章如下🍺:1【小沐学GIS】基于C绘制三维数字地球Earth(456:OpenGL、glfw、glut)第一期2【小沐学GIS】基于C绘制三维数字地球Earth(456:OpenGL、glfw、glut)第二期3【小沐…...

如何生成生成一个修仙世界的狗血短剧剧本
如何生成生成一个修仙世界的狗血短剧剧本 生成一个修仙世界的狗血短剧剧本将上述剧本转为对话 生成一个修仙世界的狗血短剧剧本 剧本名称:《仙途情缘》 角色: 易天行:男主角,天赋异禀的修仙者,性格坚毅,正…...
【MIMO】
MIMO技术入门 1.简介 MIMO(多入多出):多天线技术。 注意:此处的多天线,并不是有多个天线板,对基站来讲指天线有多套振子(每一套振子都可以看成一个独立的天线)。 4G 8天线;5G 64T64R;不仅基站…...
ZooKeeper分布式锁
ZooKeeper是一个开源的分布式协调服务,它主要用于维护配置信息、提供分布式同步、命名服务等。ZooKeeper的数据模型类似于文件系统,它的数据结构中的每个数据节点称为znode,可以用它来实现分布式锁。 ZooKeeper分布式锁的原理: …...

WPF是不是垂垂老矣啦?平替它的框架还有哪些
WPF(Windows Presentation Foundation)是微软推出的一种用于创建 Windows 应用程序的用户界面框架。WPF最初是在2006年11月推出的,它是.NET Framework 3.0的一部分,为开发人员提供了一种基于 XAML 的方式来构建丰富的用户界面。 W…...

浅析Linux追踪技术之ftrace:Tracepoint
文章目录 概述Tracepoint使用定义Tracepoint添加Tracepoint调用 Tracepoint数据结构TRACE_EVENT实现DECLARE_TRACE__DECLARE_TRACE trace_xxx函数相关参考 概述 Tracepoint(跟踪点)是添加到代码流程中的调用点,并且允许开发者注册自定义的回…...
python ftp文件断点续传 并判断ftp文件下载完成
在Python中实现FTP文件的断点续传,通常涉及到以下步骤: 连接到FTP服务器。获取远程文件的大小。检查本地文件是否存在以及它的大小。如果本地文件不存在或大小小于远程文件,从上次中断的位置开始下载。下载完成后,检查文件大小以…...

SpringBoot+Vue3 完成小红书项目
简介 该项目采用微服务架构,实现了前后端分离的系统设计。在前端,我们选择了 Vue3 配合 TypeScript 和 ElementUi 框架,以提升开发效率和用户体验。而在后端,则是运用 SpringBoot 和 Mybatis-plus 进行开发,保证了系统…...
springboot集成Sa-Token及Redis的redisson客户端
文章目录 什么是Sa-Token?为什么集成Redis的redisson客户端?如何集成?maven依赖application.yml配置过滤器配置验证参考什么是Sa-Token? Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权…...
SQL世界之命令语句Ⅴ
目录 一、SQL CREATE INDEX 语句 1.SQL CREATE INDEX 语句 2.SQL CREATE INDEX 语法 3.SQL CREATE UNIQUE INDEX 语法 4.SQL CREATE INDEX 实例 二、SQL 撤销索引、表以及数据库 1.SQL DROP INDEX 语句 2.SQL DROP TABLE 语句 3.SQL DROP DATABASE 语句 4.SQL TRUNCA…...

Springboot拦截器中跨域失效的问题、同一个接口传入参数不同,一个成功,一个有跨域问题、拦截器和@CrossOrigin和@Controller
Springboot拦截器中跨域失效的问题 一、概述 1、具体场景 起因: 同一个接口,传入不同参数进行值的修改时,一个成功,另一个竟然失败,而且是跨域问题拦截器内的request参数调用getHeader方法时,获取不到前端…...

WordPress如何自建txt文本经典语录并随机显示一句话经典语录?
前面跟大家分享的『WordPress集成一言(Hitokoto)API经典语句功能』一文中就提供有自创API,其中懿古今顶部左上角显示的经典语录用的就是自建一个txt文本文件,然后再在前端网页指定位置随机显示语录。具体操作方法如下:…...

Java中JVM常用参数配置(提供配置示例)
目录 前言一、内存参数配置二、垃圾收集器配置三、GC策略配置3.1、基础通用配置3.2、Parallel 和 Parallel Old 常用参数配置3.3、CMS 常用参数配置3.4、G1 常用参数配置 四、GC日志配置五、dump 日志参数配置5.1、OutOfMemory异常时生成dump文件5.2、发生Full GC时生成dump文件…...

图论与图数据应用综述:从基础概念到知识图谱与图智能
目录 前言1 图论基础概念1.1 节点度1.2 度分布1.3 邻接矩阵 2 探索图的高级概念2.1 最短路径的关键性2.2 图的直径与平均路径的意义2.3 循环与路径类型的多样性 3 深入探讨图的广泛应用领域3.1 知识图谱的知识管理3.2 图智能在复杂决策中的应用3.3 图数据挖掘与分析的多领域应用…...
知识碎片-SpringBoot统一返回结果和捕获异常
统一返回结果 定义统一返回结果类ResultResponse定义新注解ResponseResult来标记需要拦截的方法或类添加RestControllerAdvice注解,实现ResponseBodyAdvice接口,重写support, beforeBodyWrite方法 统一结果类ResultResponse Setter Getter public cla…...
Open-FWI代码解析(1)
目录 1. dataset文件 1.1初始化网络 1.2load_every函数 1.3 getitem函数 1.4测试函数 2. transforms文件 2.1裁切函数和翻转函数 2.2上\下采样函数 2.3加入随机因子的上\下采样函数 2.4填充函数 2.5标准图像函数 2.6标准化函数 2.7归一化函数 2.8反归一化 2.9添加噪声的函数 …...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...

【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...