day05_java中常见的运算符
对字面量或者变量进行操作的符号就是运算符。用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。
java中常用的运算符有下面几种
算术运算符
代码示例
public class Demo01Operator {public static void main(String[] args) {int a = 3;int b = 4;System.out.println(a + b);// 7System.out.println(a - b);// -1System.out.println(a * b);// 12//整数相除 不保留小数System.out.println(a / b);// 0//如果想要显示小数 使用浮点类型计算System.out.println((double) a / b);// 0.75//商*除数 + 余数 = 被除数System.out.println(a % b);// 3}
}
经典案例
public class Test {public static void main(String[] args) {//定义一个四位数 int number = 1234;//通过运算操作求出个位,十位,百位,千位System.out.println(number + " 这个四位数个位上的数字是:" + (number % 10));System.out.println(number + " 这个四位数十位上的数字是:" + (number / 10 % 10));System.out.println(number + " 这个四位数百位上的数字是:" + (number / 100 % 10));System.out.println(number + " 这个四位数千位上的数字是:" + (number / 1000 % 10));}
}
注意事项:
- / 和 % 的区别:两个数据做除法,/ 取结果的商,%取结果的余数
- 整数操作只能得到整数,要想得到小数,必须有浮点数参与运算
- 求余运算,余数的符号只看被除数
“+”号的两种用法
-
第一种:对于+两边都是数值的话,
+
就是加法的意思
System.out.println(1+2);//3
System.out.println(1+'a');//98
-
第二种:对于
+
两边至少有一边是字符串得话,+
就是拼接的意思,其结果依然是一个字符串
String str = "Java";
// String + int --> String
System.out.println(str + 520); // Java520// String + int + int --> String + int-->String
System.out.println(str + 5 + 20); // Java520
默认情况下是从左到右进行运算,我们可以使用小括号来调整运算顺序
//默认情况下,从左到右
System.out.println("1" + 2 + 3);//123
//小括号里的先算
System.out.println("1" + (2 + 3));//15
自加自减运算
- ++ 和 -- 既可以放在变量的后边,也可以放在变量的前边
- ++ 、-- 只能操作变量,不能操作字面量的
单独使用
单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的
- 变量前++ :例如 ++a
- 变量后++ :例如 a++
public class Demo03Operator {public static void main(String[] args) {// 定义一个int类型的变量aint a = 3;//变量前++和变量后++,变量的结果是一样的;++a;System.out.println(a);//4a++;System.out.println(a);//5}
}
复合使用
++、--如果不是单独使用(如在表达式中、或者同时有其它操作),放在变量前后会存在明显区别
- 放在变量的前面,先对变量进行+1、-1,再拿变量的值进行运算
- 放在变量的后面,先拿变量的值进行运算,再对变量的值进行+1、-1
public class Demo04Operator {public static void main(String[] args) {// 其他变量放在一起使用int x = 3;int y = x++;System.out.println(x);//4System.out.println(y);//3System.out.println("==========");// 和输出语句一起int z = 5;System.out.println(z++);//5System.out.println(z);//6}
}
赋值运算符
基本赋值运算符:就是“ = ”
int a = 10; // 先看“=”右边,把数据10赋值给左边的变量a存储。
扩展赋值运算符
代码示例
public class Demo04Operator {public static void main(String[] args) {short s = 10;/*s = s + 10; 此行代码报出,因为运算中s提升为int类型,运算结果int赋值给short可能损失精度*/s += 10; // 此行代码没有问题,隐含了强制类型转换,相当于 s = (short) (s + 10);System.out.println(s);//20}
}
注意事项:
- 所有的赋值运算符的 = 左边一定是一个变量
关系运算符/比较运算符
对数据进行条件判断的符号,最终会返回的结果一定是 布尔结果(false,true)
示例
public class Demo05Operator {public static void main(String[] args) {int a = 10;int b = 10;System.out.println(a == b); //trueSystem.out.println(a != b); // falseSystem.out.println(a > b); // falseSystem.out.println(a >= b); // trueSystem.out.println(a < b); // falseSystem.out.println(a <= b); // true//相等判断必须是== 如果使用=是在进行赋值操作!System.out.println(a = b); // 10 }
}
逻辑运算符
可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果
示例
public class Demo06Operator {public static void main(String[] args) {//定义变量int i = 10;int j = 20;int k = 30;// & “与”,并且的关系,只要表达式中有一个值为false,结果即为falseSystem.out.println((i > j) & (i > k)); //falseSystem.out.println((i < j) & (i > k)); //falseSystem.out.println((i > j) & (i < k)); //falseSystem.out.println((i < j) & (i < k)); //trueSystem.out.println("--------");// | “或”,或者的关系,只要表达式中有一个值为true,结果即为trueSystem.out.println((i > j) | (i > k)); //falseSystem.out.println((i < j) | (i > k)); //trueSystem.out.println((i > j) | (i < k)); //trueSystem.out.println((i < j) | (i < k)); //trueSystem.out.println("--------");// ^ “异或”,相同为false,不同为trueSystem.out.println((i > j) ^ (i > k)); //falseSystem.out.println((i < j) ^ (i > k)); //trueSystem.out.println((i > j) ^ (i < k)); //rueSystem.out.println((i < j) ^ (i < k)); //falseSystem.out.println("--------");// ! “非”,取反System.out.println((i > j)); //falseSystem.out.println(!(i > j)); // true}
}
- 在逻辑与运算中,只要有一个表达式的值为false,那么结果就可以判定为false了,没有必要将所有表达式的值都计算出来,短路与操作就有这样的效果,可以提高效率。
- 同理在逻辑或运算中,一旦发现值为true,右边的表达式将不再参与运算。

示例
public class Demo07Operator {public static void main(String[] args) {int x = 3;int y = 4;System.out.println((x++ > 4) & (y++ > 5)); //falseSystem.out.println(x); // 4System.out.println(y); // 5//左边已经可以确定结果为,false 右边不参与运算System.out.println((x++ > 4) && (y++ > 5)); // falseSystem.out.println(x); // 5System.out.println(y); // 5System.out.println((x++ > 4) | (y++ > 5)); //trueSystem.out.println(x); // 6System.out.println(y); // 6//左边已经可以确定结果为 true,右边不参与运算System.out.println((x++ > 4) || (y++ > 5)); // trueSystem.out.println(x); // 7System.out.println(y); // 6}
}
三元运算符
语法格式
执行流程
- 首先计算关系表达式的值
- 如果值为true,返回表达式1的值
- 如果为false,返回表达式2的值
示例
/*
需求:一座寺庙里住着三个和尚,已知他们的身高分别为135cm、110cm、165cm,请用程序实现获取这三个和尚的最高身高。
*/
public class Demo08Test {public static void main(String[] args) {//1:定义三个变量用于保存和尚的身高,单位为cm,这里仅仅体现数值即可。int height1 = 135;int height2 = 110;int height3 = 165;//2:用三元运算符获取前两个和尚的较高身高值,并用临时身高变量保存起来。int tempHeight = height1 > height2 ? height1 : height2;//3:用三元运算符获取临时身高值和第三个和尚身高较高值,并用最大身高变量保存。int maxHeight = tempHeight > height3 ? tempHeight : height3;//4:输出结果System.out.println("maxHeight:" + maxHeight); //maxHeight:165}
}
运算符优先级
示例
public class Demo09Test {public static void main(String[] args) {// 目标:看看Java是否存在优先级,大家以后需要注意优先级问题System.out.println(10 > 3 || 10 > 3 && 10 < 3); // trueSystem.out.println( (10 > 3 || 10 > 3 ) && 10 < 3); // false}
}
写代码的注意事项
- 表达式不要太复杂
- 先算的使用( )
相关文章:
day05_java中常见的运算符
对字面量或者变量进行操作的符号就是运算符。用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。 java中常用的运算符有下面几种 算术运算符 代码示例 public class Demo01Operator {public static void main(String[] args) {int a 3;int b 4;System.o…...
Linux_进程退出与进程等待
一、进程退出 退出场景 正常终止:代码执行完毕且结果符合预期(退出码为 0)。异常终止:运行结果错误(退出码非 0)或进程被信号强制终止。(如 SIGINT 或 SIGSEGV)。 退…...
SSM框架(Spring + Spring MVC + MyBatis)整合配置的详细步骤
以下是 SSM框架(Spring Spring MVC MyBatis)整合配置的详细步骤,适用于 Maven 项目。 (一)、pom.xml中添加相关依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"ht…...
B. Zero Array(思维)
Problem - 1201B - Codeforces 思路:每次给任意两个不同下表的数减-1,相当于在这个数组总和S上减2,S为奇数则不可能变为0,S为偶数时,一定存在两个序列组成两个S/2,这样每次都是在两个S/2上各减1,…...
FPGA_Verilog实现QSPI驱动,完成FLASH程序固化
FPGA_Verilog实现QSPI驱动,完成FLASH程序固化 操作提要 使用此操作模式实现远程升级的原因是当前的FLASH的管脚直接与FPGA相连接,SPI总线并未直接与CPU相连接,那么则需要CPU下发升级指令与将要升级的文件给FPGA,然后在FPGA内部产…...
前端取经路——框架修行:React与Vue的双修之路
大家好,我是老十三,一名前端开发工程师。在前端的江湖中,React与Vue如同两大武林门派,各有千秋。今天,我将带你进入这两大框架的奥秘世界,共同探索组件生命周期、状态管理、性能优化等核心难题的解决之道。无论你是哪派弟子,掌握双修之术,才能在前端之路上游刃有余。准…...
【DBMS学习系列】一、DBMS(数据库管理系统)的存储模型
一、前置知识 1.1 什么是OLAP 和 OLTP? On-Line Analytical Processing,简称OLAP(联机分析处理),是一种用于处理大规模数据的技术,它提供了一种灵活的分析和查询方式,能够帮助用户从不同维度来分析和理解业务数据。 On-Line Transaction Processing,简称OLTP(联机事…...
Matlab 镍氢电池模型
1、内容简介 Matlab216-镍氢电池模型 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...
39、.NET GC是什么? 为什么需要GC?
.NET GC是什么? .NET GC(Garbage Collector,垃圾回收器)是.NET运行时(CLR)的核心组件,负责自动管理托管堆(Managed Heap)中的内存分配与释放。其核心工作机制包括&#…...
前端缓存踩坑指南:如何优雅地解决浏览器缓存问题?
浏览器缓存,配置得当,它能让页面飞起来;配置错了,一次小小的上线,就能把你扔进线上 bug 的坑里。你可能遇到过这些情况: 部署上线了,结果用户还在加载旧的 JS;接口数据改了…...
XML语言
XML语言 在开始介绍Mybatis之前,先介绍一下XML语言,XML语言发明最初是用于数据的存储和传输,它是由一个一个的标签嵌套而成 <?xml version"1.0" encoding"UTF-8" ?> <outer> <name>阿伟</name&…...
垃圾回收的三色标记算法
目录 1、介绍 1.1、发展 1.2、基本原理 2、执行过程 2.1、初始标记 (Initial Marking) 2.2、并发标记 (Concurrent Marking) 2.3、重新标记 (Remark) 2.4、垃圾清理阶段 3、并发标记 3.1、浮动垃圾 3.2、漏标 前言 三色标记(Tri-color Marking࿰…...
紫禁城多语言海外投资理财返利源码带前端uniapp纯工程文件
测试环境:Linux系统CentOS7.6、宝塔、PHP7.2、MySQL5.6,根目录public,伪静态thinkphp,开启ssl证书 语言:中文简体、英文、越南语、马来语、日语、巴西语、印尼语、泰语 前端是uniapp的源码,我已经把nmp给你…...
深入剖析 I/O 复用之 select 机制
深入剖析 I/O 复用之 select 机制 在网络编程中,I/O 复用是一项关键技术,它允许程序同时监控多个文件描述符的状态变化,从而高效地处理多个 I/O 操作。select 作为 I/O 复用的经典实现方式,在众多网络应用中扮演着重要角色。本文…...
Android开发报错解决
Android开发报错解决 组件相关文件相关权限相关代码相关程序报错IDE相关版本对应框架okhttp请求失败 Roomno such table cocos2d 组件相关 使用gravity属性让文字居中是,需把该属性放在text属性上面ScrollView只能容纳一个子视图 文件相关 放在drawble下的图片资源…...
Linux 网络命名空间:从内核资源管理到容器网络隔离
1. 网络命名空间是什么? 网络命名空间(Network Namespace) 是 Linux 内核提供的一种网络资源隔离机制,用于为进程或容器创建完全独立的网络环境。它并非物理或虚拟的网络接口(如网卡、veth pair 等),而是一个虚拟容器,包含以下资源的独立实例: 网络接口(物理或虚拟)…...
VNC windows连接ubuntu桌面
✅ 步骤 1:安装 VNC 服务器 首先,我们需要在 Winux 系统上安装一个 VNC 服务器。这里我们使用 tigervnc 作为例子,它是一个常用的 VNC 服务器软件。 打开终端并更新你的软件包: sudo apt update安装 tigervnc 服务器:…...
Elastic:如何构建由 AI 驱动的数字客户体验策略
作者:来自 Elastic Elastic Platform Team 客户通过多个数字渠道与企业和组织互动 —— 从网站和应用程序到聊天机器人和电子邮件。这些接触点构成了数字客户体验(DCX)。无缝的数字客户体验能显著提升客户满意度,进而带动更高的收…...
安防多协议接入/视频汇聚平台EasyCVR助力工地/工程/建筑施工领域搭建视频远程监控系统
一、摄像机安装方案 1)安装位置选择:摄像机安装需避开强振源与电磁干扰区,兼顾建筑外观,隐蔽安装。其防护罩应巧妙遮蔽视角,增强安防威慑。电梯轿厢内的摄像机,建议藏于吊顶。连接摄像机的视频、电源及…...
《100天精通Python——基础篇 2025 第16天:异常处理与调试机制详解》
目录 一、认识异常1.1 为什么要使用异常处理机制?1.2 语法错误1.3 异常错误1.4 如何解读错误信息 二、异常处理2.1 异常的捕获2.2 Python内置异常2.3 捕获多个异常2.4 raise语句与as子句2.5 使用traceback查看异常2.6 try…except…else语句2.7 try…except…finally语句--捕获…...
Ceph PG unfound/lost 问题排查与解决
Ceph PG unfound/lost 问题排查与解决 背景现象排查过程经验总结参考命令结语 背景 Ceph 集群出现 HEALTH_ERR,提示有 PG 对象丢失(unfound),并且 repair 无法自动修复。 现象 ceph health detail 显示: HEALTH_ERR …...
LeetCode热题100--54.螺旋矩阵--中等
1. 题目 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2: 输入:ma…...
【嵌入式开发-CAN】
嵌入式开发-CAN ■ CAN简介 ■ CAN简介...
SQLite3介绍与常用语句汇总
SQLite3简介 SQLite3是一款轻量级的、基于文件的开源关系型数据库引擎,由 D. Richard Hipp 于 2000 年首次发布。它遵循 SQL 标准,但与传统的数据库系统不同,SQLite 并不运行在独立的服务器进程中,而是作为一个嵌入式数据库引擎直…...
uniapp中score-view中的文字无法换行问题。
项目场景: 今天遇到一个很恶心的问题,uniapp中的文字突然无法换行了。得..就介样 原因分析: 提示:经过一fan研究后发现 scroll-view为了能够横向滚动设置了white-space: nowrap; 强制不换行 解决起来最先想到的是,父…...
[学习]RTKLib详解:ephemeris.c与rinex.c
文章目录 RTKLib详解:ephemeris.c与rinex.cPART A: ephemeris.c一、代码整体作用与工作流程分析1.1 整体作用1.2 工作流程 二、核心函数说明2.1 alm2pos (Almanac to Position)2.2 eph2clk (Ephemeris to Clock)2.3 eph2pos (Ephemeris to Position)2.4 geph2pos (G…...
JDBC:java与数据库连接,Maven,MyBatis
JDBC 是使用Java语言操作关系型数据库的一套API JDBC是接口,用其实现一系列不同种类关系型数据库的实现类 JDBC本质: 官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口 各个数据库厂商去实现这套接口,提供数据库驱动jar包 我…...
代码随想录第39天:单调栈
一、每日温度(Leetcode 739) 思路: 栈里存放的是**“还没等到升温的日子”**的索引; 每遇到一个新的温度: 检查是否比栈顶的温度高; 如果高了,说明升温来了,栈顶元素可以出栈&…...
如何在vite构建的vue项目中从0到1配置postcss-pxtorem
1. 安装postcss-pxtorem和autoprefixer yarn add postcss-pxtorem autoprefixer2. 在vite.config.ts中写入 import { defineConfig } from "vite"; import vue from "vitejs/plugin-vue"; import postcssPxtorem from "postcss-pxtorem"; impo…...
基于51单片机的自动洗衣机衣料材质proteus仿真
地址:https://pan.baidu.com/s/13d2bJ6vKh8ZLuDBZnI0VGw 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C51 是一款常用的 8 位单片机,由 Atmel 公司(现已被 Microchip 收…...
永久免费的小工具,内嵌微软接口
有时候我们制作短视频,需要为视频添加声音,但部分配音软件要收费。不过别担心,今天给大家推荐一款超实用的免费文字转语音软件,完全无需担忧费用问题! 01 软件介绍 这款软件就是Read Aloud,具有以下特点&a…...
C++漫步结构与平衡的殿堂:AVL树
文章目录 1.AVL树的概念2.AVL树的结构3.AVL树的插入4.AVL树的旋转4.1 左单旋4.2 右单旋4.3 右左双旋4.4 左右双旋 5.AVL树的删除6.AVL树的高度7.AVL树的平衡判断希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力! 二叉搜索树有其自身的缺陷…...
MIST:一键解锁 macOS 历史版本,旧系统安装不再难!
在 Mac 电脑的使用过程中,你是否遇到过这些困扰?为了运行一款经典设计软件,新系统却无法兼容;或是想给老旧 Mac 设备升级,却找不到适配的系统版本。而 App Store 里,旧版 macOS 安装包就像 “隐藏副本”&am…...
mac连接lniux服务器教学笔记
从你的检查结果看,容器内已经安装了 XFCE 桌面环境(xfce.desktop 和 xubuntu.desktop 的存在说明桌面环境已存在)。以下是针对 Docker 容器环境的远程桌面配置方案: 一、容器内快速配置远程桌面(XFCE VNC)…...
网站公安备案流程及审核时间
在中国,网站运营除了需要 ICP备案(工信部备案),还需完成 公安备案(公安机关互联网站安全备案)。以下是详细流程及审核时间说明: 一、公安备案流程 1. 备案对象 所有在中国境内运营的网站&#…...
python学生作业提交管理系统-在线作业提交系统
目录 技术栈介绍具体实现截图系统设计研究方法:设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理,难度适中…...
从颜料混色到网络安全:DH算法的跨界智慧
一、颜料混色的秘密 想象一下,你和朋友各自有一罐私密的颜料,但你们想共同调出一种只有彼此知道的新颜色,而旁观者即使看到你们的操作也无法复现。奇怪的是,你们全程没有直接交换颜料,却能达成共识——这就是**迪菲-赫…...
初学者的AI智能体课程:构建AI智能体的十堂课
初学者的AI智能体课程:构建AI智能体的十堂课 在人工智能(AI)领域,AI智能体正在逐渐发挥其不容忽视的作用。自动化的智能体不仅仅在理论上广泛讨论,更加在实际应用中开辟了一片新的天地。那么如何动手开发属于自己的AI智能体呢?Microsoft提供的AI智能体入门课正是为此而设…...
数据结构 - 8( AVL 树和红黑树 10000 字详解 )
一:二叉搜索树 1.1 回顾二叉搜索树 我们在树的章节中学习了二叉搜索树的概念。二叉搜索树满足以下性质:如果它的左子树存在,则左子树所有节点的值均小于根节点的值;如果右子树存在,则右子树所有节点的值均大于根节点…...
Tcp 通信简单demo思路
Server 端 -------------------------- 初始化部分 ------------------------------- 1.创建监听套接字: 使用socket(协议家族,套接字的类型,0) 套接字类型有 SOCK_STREAM:表示面向连接的套接字(Tcp协议)&…...
Cesium 导航控件(指南针 + 缩放按钮),自定义放置位置
Cesium 导航控件(指南针 缩放按钮) Cesium 导航控件(指南针 缩放按钮)的功能实现,从技术角度来看,可以整理出一整套实现流程和技术结构。这套流程结合了以下几个核心技术点: 1、整体功能目标 …...
MySQL的索引和事务
目录 1、索引 1.1 查看索引 1.2 创建索引 1.3 删除索引 1.4 索引的实现 2、事务 1、索引 索引等同于目录,属于针对查询操作的一个优化手段,可以通过索引来加快查询的速度,避免针对表进行遍历。 主键、unique和外键都是会自动生成索引的…...
【Fifty Project - D25】
今日完成记录 TimePlan完成情况9:00 - 11:30大论文修改修改情况书小论文修改√16:00 - 17 :00Leetcode√ Leetcode 每日一题 到达最后一个房间的最小时间II:和昨天的每日一题大致一样,增加一个条件&…...
pip下载tmp不够
问题描述 今天遇到一个小问题,在用pip安装的时候提示 ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device 但我们单位用于生产环境的机器磁盘都是基本是论TB的,怎么会不够呢? 原因分析:…...
一种机载扫描雷达实时超分辨成像方法——论文阅读
一种机载扫描雷达实时超分辨成像方法 1. 专利的研究目标与产业意义1.1 研究目标与实际问题1.2 产业意义2. 专利的创新方法:滑窗递归优化与实时更新2.1 核心模型与公式2.2 与传统方法对比优势3. 实验设计与验证3.1 仿真参数3.2 实验结果4. 未来研究方向与挑战4.1 学术挑战4.2 技…...
nginx 会话保持(cookie的配置)
nginx会话保持主要有以下几种实现方式。 1. ip_hash ip_hash使用源地址哈希算法,将同一客户端的请求总是发往同一个后端服务器,除非该服务器不可用。 ip_hash语法: upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; …...
nginx 实现动静分离
环境 : 三个机器,准备一个nginx代理 两个http 分别处理动态和静态 知识点--expires expires功能说明---(为客户端配置缓存时间) nginx缓存的设置可以提高网站性能,对于网站的图片,尤其是新闻网站,图片一旦发布,改动的可能是非常小的,为了减小对服务器请求的压力,提高…...
k8s的pod挂载共享内存
k8s的pod挂载共享内存,限制不生效问题: 注:/dev/shm 是 Linux 系统中用于共享内存的特殊路径。通过将 emptyDir 的 medium 设置为 Memory,可以确保 /dev/shm 正确地挂载到一个基于内存的文件系统,从而实现高效的共享内…...
Java高频面试之并发编程-14
hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶 面试官:指令重排有限制没有?happens-before 又是什么? 在并发编程中,指令重排(…...
Linux基础(最常用基本命令)
1.查看文件ls 1.1 格式 ls 选项 参数,如:ls -lah ~/ 1.2 选项设置: -l:list 以列表方式显示文件 -h:human-readable 以人类可读的方式显示文件大小(会将纯数字转换为kb,mb) -a:all 显示所有的…...