[Java基础] 运算符
[Java基础] 基本数据类型
[Java基础] Java HashMap 的数据结构和底层原理
目录
算术运算符
比较运算符
逻辑运算符
位运算符
赋值运算符
其他运算符
常见面试题
Java语言支持哪些类型的运算符?
请解释逻辑运算符&&和&的区别?
请解释条件运算符(?:)的用法?
Java 中的运算符用于执行各种操作,如算术运算、比较运算、逻辑运算、位运算、赋值运算等。下面是对 Java 中一些常用运算符的详细解释,并附上相应的代码片段。
算术运算符
- 加法 (
+): 用于两个数相加。 - 减法 (
-): 用于两个数相减。 - 乘法 (
*): 用于两个数相乘。 - 除法 (
/): 用于两个数相除,结果为浮点数或整数(取决于操作数类型)。 - 取余 (
%): 用于两个数相除后的余数。 - 自增 (
++): 将变量的值增加 1。 - 自减 (
--): 将变量的值减少 1。
public class ArithmeticOperators { public static void main(String[] args) { int a = 10; int b = 5; 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++; System.out.println("a after a++ = " + a); a = 10; --a; System.out.println("a after --a = " + a); }
}
比较运算符
- 等于 (
==): 判断两个值是否相等。 - 不等于 (
!=): 判断两个值是否不相等。 - 大于 (
>): 判断一个值是否大于另一个值。 - 小于 (
<): 判断一个值是否小于另一个值。 - 大于等于 (
>=): 判断一个值是否大于等于另一个值。 - 小于等于 (
<=): 判断一个值是否小于等于另一个值。
public class ComparisonOperators { public static void main(String[] args) { int a = 10; int b = 5; 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)); }
}
逻辑运算符
- 逻辑与 (
&&): 当且仅当两个操作数都为true时,结果为true。 - 逻辑或 (
||): 当两个操作数中至少有一个为true时,结果为true。 - 逻辑非 (
!): 如果操作数为true,则结果为false;如果操作数为false,则结果为true。
public class LogicalOperators { 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: " + !a); }
}
位运算符
- 按位与 (
&): 对应位都为 1 时结果为 1。 - 按位或 (
|): 对应位有一个为 1 时结果为 1。 - 按位取反 (
~): 对应位为 1 时结果为 0,为 0 时结果为 1。 - 按位异或 (
^): 对应位不同则结果为 1。 - 左移 (
<<): 将二进制位向左移动若干位,右边补 0。 - 右移 (
>>): 将二进制位向右移动若干位,左边补符号位(正数补 0,负数补 1)。 - 无符号右移 (
>>>): 将二进制位向右移动若干位,左边补 0(不考虑符号位)。
public class BitwiseOperators { public static void main(String[] args) { int a = 60; // 60 = 0011 1100 int b = 13; // 13 = 0000 1101 System.out.println("a & b = " + (a & b)); // 12 = 0000 1100 System.out.println("a | b = " + (a | b)); // 61 = 0011 1101 System.out.println("~a = " + (~a)); // -61 = 1100 0011 System.out.println("a ^ b = " + (a ^ b)); // 49 = 0011 0001 System.out.println("a << 2 = " + (a << 2)); // 240 = 1111 0000 System.out.println("a >> 2 = " + (a >> 2)); // 15 = 0000 1111 System.out.println("a >>> 2 = " + (a >>> 2)); // 15 = 0000 1111 (无符号右移) }
}
赋值运算符
- 简单赋值 (
=): 将右边的值赋给左边的变量。 - 加法赋值 (
+=): 将右边的值加到左边的变量上,并将结果赋值给左边的变量。 - 减法赋值 (
-=): 将左边的变量减去右边的值,并将结果赋值给左边的变量。 - 乘法赋值 (
*=): 将左边的变量乘以右边的值,并将结果赋值给左边的变量。 - 除法赋值 (
/=): 将左边的变量除以右边的值,并将结果赋值给左边的变量。 - 取余赋值 (
%=): 将左边的变量对右边的值取余,并将结果赋值给左边的变量。
public class AssignmentOperators { public static void main(String[] args) { int a = 10; int b = 5; a += b; // a = a + b System.out.println("a += b: " + a); a -= b; // a = a - b System.out.println("a -= b: " + a); a *= b; // a = a * b System.out.println("a *= b: " + a); a /= b; // a = a / b System.out.println("a /= b: " + a); a = 10; a %= b; // a = a % b System.out.println("a %= b: " + a); }
}
其他运算符
- 条件运算符 (
?:): 也称为三元运算符,用于简化if-else语句。 - 字符串连接运算符 (
+): 用于连接两个字符串。
public class OtherOperators { public static void main(String[] args) { int a = 10; int b = 20; // 条件运算符 String result = (a > b) ? "a is greater" : "b is greater"; System.out.println(result); // 字符串连接运算符 String str1 = "Hello"; String str2 = "World"; String greeting = str1 + " " + str2; System.out.println(greeting); }
}
常见面试题
Java运算符在面试中是一个常见的考察点,以下是一些可能的Java运算符面试题及解答。
Java语言支持哪些类型的运算符?
Java语言支持的运算符主要包括算术运算符(+、-、*、/、%、++、--)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、>>、<<、>>>)、条件运算符(?:)以及赋值运算符(=及其扩展形式如+=、-=等)。
请解释逻辑运算符&&和&的区别?
- &&:逻辑与运算符,当且仅当两个操作数都为true时,结果才为true。如果第一个操作数为false,则不会计算第二个操作数,即具有短路特性。
- &:按位与运算符,对两个操作数的每一位进行与运算。无论第一个操作数的结果如何,都会计算第二个操作数。
请解释条件运算符(?:)的用法?
条件运算符(?:)是Java中的唯一三元运算符,其语法为“条件表达式?表达式1:表达式2”。如果条件表达式的结果为true,则计算并返回表达式1的值;否则,计算并返回表达式2的值。
相关文章:
[Java基础] 运算符
[Java基础] 基本数据类型 [Java基础] Java HashMap 的数据结构和底层原理 目录 算术运算符 比较运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 常见面试题 Java语言支持哪些类型的运算符? 请解释逻辑运算符&&和&的区别? 请解释条件运…...
[001-02-018].第05节:数据类型及类型转换
我的后端学习大纲 我的Java学习大纲 1、数据类型介绍: 1.0.计算机存储单位: 1.1.基本数据类型介绍: a.整型:byte、short、int、long 1.整型包括:byte、short、int、long,可如下图方式类比记忆࿱…...
Netty基础
Netty基础 一级目录I/O请求基础知识Netty如何实现自己的I/O模型 网络框架的选型 Netty整体架构Netty逻辑处理架构网络通信层事件调度层服务编排层 组件关系梳理Netty源码结构 netty是目前最流行的一款高性能java网络编程框架,广泛使用于中间件、直播、社交、游戏等领…...
602,好友申请二:谁有最多的好友
好友申请二:谁有最多的好友 实现 with tmp as (selectrequester_id idfrom RequestAcceptedunion allselectaccepter_id idfrom RequestAccepted )selectid,count(*) num from tmp group by id order by num desc limit 1;...
【Matlab算法MATLAB实现的音频信号时频分析与可视化(附MATLAB完整代码)
MATLAB实现的音频信号时频分析与可视化 前言正文:时频分析实现原理代码实现代码运行结果图及说明结果图:结果说明:总结前言 音频信号的时频分析是信号处理领域中的一个重要研究方向。它允许我们同时观察信号在时间和频率域的特性,为音频处理、语音识别、音乐分析等应用提供…...
界面耻辱纪念堂--可视元素03
更多的迹象表明,关于在程序里使用新的动态界面元素,微软的态度是不确定的,其中一个是仅仅需要对比一下Office97 里的“Coolbars”和“标准工具条”。Coolbar 按钮直到用户指针通过的时候才成为按钮(否则是平的)。 工具…...
国产龙芯处理器选择迅为2K1000开发板有资料
硬件配置国产龙芯处理器,双核64位系统,板载2G DDR3内存,流畅运行Busybox、Buildroot、Loognix、QT5.12 系统!接口全板载4路USB HOST、2路千兆以太网、2路UART、2路CAN总线、Mini PCIE、SATA固态盘接口、4G接口、GPS接口WIF1、蓝牙、Mini HDMI…...
MySQL 命令(持续更新)
将 MySQL 命令结果输出到文件中 通过 k8s MySQL pod 里的客户端连接到 MySQL 服务器 kubectl exec mysql-pod -- mysql -hx.x.x.x -uroot -proot -e SELECT * FROM db.table; > result.txt通过 k8s MySQL pod 的客户端连接 MySQL 服务器,直接进入到 MySQL 客户端…...
Linux下Docker方式Jenkins安装和配置
一、下载&安装 Jenkins官方Docker仓库地址:https://hub.docker.com/r/jenkins/jenkins 从官网上可以看到,当前最新的稳定版本是 jenkins/jenkins:lts-jdk17。建议下在新的,后面依赖下不来 所以,我们这里,执行doc…...
低代码框架参考
企业管理信息系统作为一类重要的应用软件系统,具有自己的特点,主要有两个方面: 1. 系统规模大,目前市场上常见的ERP系统一般都有几千个页面。 2. 页面逻辑相似性强。经过比较可以发现,大部分页面具有类似的功能&…...
2024 年 9 月区块链游戏研报:行业回暖,Telegram 游戏引发热潮
作者:Stella L (stellafootprint.network) 数据来源:Footprint Analytics Games Research Page 9 月份,区块链游戏代币的市场总值增长了 29.2%,达到 232 亿美元,日活跃用户(DAU)数量上升了 1…...
python爬虫登录校验之滑块验证、图形验证码(OCR)
在爬虫过程中,验证码和滑块验证是常见的反爬措施。针对这些挑战,通常采用OCR识别图形验证码和模拟滑块拖动来处理滑块验证。以下是如何处理这两种类型验证的详细方法。 1. 图形验证码(OCR) a. 使用 tesserocr 和 Pillow 处理图形…...
(一)Python程序结构
1、Python写模块 使用缩进分层来写模块; 2、缩进规范 最好使用同一种缩进方式,统一使用tab或者空格键; 3、换行符:\n; print("窗前明月光\n疑似地上霜") 4、续行符号:\; 注意1…...
二叉树——相同的树
还是应用递归的思想,将这个问题拆分为三个部分,第一:当两棵树均为空树,或者访问到最后的子树时均为空树时,则返回true。第二:当两棵树中其中一棵树为空树,另一棵树不是空树,证明两棵…...
探秘 1688 商品详情接口:高并发批量采集的实战攻略
在进行 1688 商品详情接口批量采集并考虑高并发使用时,你可以从以下几个方面着手: 一、技术选型 选择合适的编程语言和框架:例如 Python 的 Scrapy 框架或者 Java 的 Spring Boot 结合相关爬虫库等,这些工具可以帮助你高效地实现…...
【C语言】sizeof
tmp_buf = (char *)malloc(size)不可以直接使用`sizeof`来查看动态分配内存的大小。在C语言中,`sizeof`操作符是在编译时确定类型或对象的大小,并不能用于动态获取malloc分配的内存大小。 下面解释为什么不能用`sizeof(tmp_buf)`查看动态分配的内存大小: 1. 编译时 vs 运行时…...
2024-10-15 问AI: [AI面试题] 人工智能中使用了哪些不同的搜索算法?
文心一言 人工智能中使用了多种不同的搜索算法来解决问题,这些算法各有特点,适用于不同的场景和问题类型。以下是一些常见的人工智能搜索算法: 深度优先搜索(DFS): 是一种基于树或图的搜索算法。核心思想是…...
2024 年 04 月编程语言排行榜,PHP 排名创新低?
编程语言的流行度总是变化莫测,每个月的排行榜都揭示着新的趋势。2024年4月的编程语言排行榜揭示了一个引人关注的现象:PHP的排名再次下滑,创下了历史新低。这种变化对于PHP开发者和整个技术社区来说,意味着什么呢? P…...
Element中el-table组件设置max-height右侧出现空白列的解决方法
之前就出现过这个情况,没理过,因为不影响啥除了不美观...但今天看着实在是难受,怎么都不顺眼(可能是我自己烦躁--) 试了很多网上的方法,都不得行,后面发现了这篇文章,解决了! 感谢! Element中t…...
unity学习-全局光照(GI)
在全局光照(Lighting)界面有两个选项 Realtime Light(实时光照):在项目中会提前计算好光照以及阴影的程序,当你需要调用实时全局光照的时候会将程序调用出来使用 Mixed Light(烘焙光照&#x…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...
规则与人性的天平——由高考迟到事件引发的思考
当那位身着校服的考生在考场关闭1分钟后狂奔而至,他涨红的脸上写满绝望。铁门内秒针划过的弧度,成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定",构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...
内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献
Title 题目 Prompt-based polyp segmentation during endoscopy 内窥镜检查中基于提示的息肉分割 01 文献速递介绍 以下是对这段英文内容的中文翻译: ### 胃肠道癌症的发病率呈上升趋势,且有年轻化倾向(Bray等人,2018&#x…...
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...
PydanticAI快速入门示例
参考链接:https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...
五、jmeter脚本参数化
目录 1、脚本参数化 1.1 用户定义的变量 1.1.1 添加及引用方式 1.1.2 测试得出用户定义变量的特点 1.2 用户参数 1.2.1 概念 1.2.2 位置不同效果不同 1.2.3、用户参数的勾选框 - 每次迭代更新一次 总结用户定义的变量、用户参数 1.3 csv数据文件参数化 1、脚本参数化 …...
