当前位置: 首页 > news >正文

[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的值。

http://www.lryc.cn/news/461115.html

相关文章:

  • [001-02-018].第05节:数据类型及类型转换
  • Netty基础
  • 602,好友申请二:谁有最多的好友
  • 【Matlab算法MATLAB实现的音频信号时频分析与可视化(附MATLAB完整代码)
  • 界面耻辱纪念堂--可视元素03
  • 国产龙芯处理器选择迅为2K1000开发板有资料
  • MySQL 命令(持续更新)
  • Linux下Docker方式Jenkins安装和配置
  • 低代码框架参考
  • 2024 年 9 月区块链游戏研报:行业回暖,Telegram 游戏引发热潮
  • python爬虫登录校验之滑块验证、图形验证码(OCR)
  • (一)Python程序结构
  • 二叉树——相同的树
  • 探秘 1688 商品详情接口:高并发批量采集的实战攻略
  • 【C语言】sizeof
  • 2024-10-15 问AI: [AI面试题] 人工智能中使用了哪些不同的搜索算法?
  • 2024 年 04 月编程语言排行榜,PHP 排名创新低?
  • Element中el-table组件设置max-height右侧出现空白列的解决方法
  • unity学习-全局光照(GI)
  • 记录Centos7 漫漫配置路
  • 论文 | OpenICL: An Open-Source Framework for In-context Learning
  • 尚硅谷rabbitmq 2024 Federation配置 第60节答疑
  • Ubuntu编译MySQL驱动连接QT
  • 时间序列预测(七)——梯度消失(Vanishing Gradient)与梯度爆炸(Exploding Gradient)
  • ARM assembly 12: GCD(最大公约数)计算
  • 「实战应用」如何用图表控件LightningChart可视化天气数据?(一)
  • 基于深度学习的细粒度图像分析综述【翻译】
  • yolo笔记
  • Android平台RTSP|RTMP播放器PK:VLC for Android还是SmartPlayer?
  • IDEA下面的Services不见了(解决方案)