跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
Java运算符
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
{{DISPLAYTITLE:Java运算符}} '''Java运算符'''是用于执行变量或值之间操作的符号。它们是构建表达式和实现程序逻辑的基础工具。本指南将全面介绍Java中的各类运算符,包括算术运算符、关系运算符、逻辑运算符等,并通过示例演示其使用方法。 == 运算符类型 == Java运算符可分为以下几类: === 1. 算术运算符 === 用于执行基本数学运算: {| class="wikitable" ! 运算符 !! 描述 !! 示例 |- | <code>+</code> || 加法 || <code>a + b</code> |- | <code>-</code> || 减法 || <code>a - b</code> |- | <code>*</code> || 乘法 || <code>a * b</code> |- | <code>/</code> || 除法 || <code>a / b</code> |- | <code>%</code> || 取模(余数) || <code>a % b</code> |- | <code>++</code> || 自增 || <code>a++</code> 或 <code>++a</code> |- | <code>--</code> || 自减 || <code>a--</code> 或 <code>--a</code> |} '''示例代码:''' <syntaxhighlight lang="java"> public class ArithmeticOperators { public static void main(String[] args) { int a = 10, b = 3; System.out.println("a + b = " + (a + b)); // 输出: 13 System.out.println("a - b = " + (a - b)); // 输出: 7 System.out.println("a * b = " + (a * b)); // 输出: 30 System.out.println("a / b = " + (a / b)); // 输出: 3 (整数除法) System.out.println("a % b = " + (a % b)); // 输出: 1 int c = 5; System.out.println("c++ = " + c++); // 输出: 5 (后置自增) System.out.println("++c = " + ++c); // 输出: 7 (前置自增) } } </syntaxhighlight> === 2. 关系运算符 === 用于比较两个值,返回布尔结果: {| class="wikitable" ! 运算符 !! 描述 !! 示例 |- | <code>==</code> || 等于 || <code>a == b</code> |- | <code>!=</code> || 不等于 || <code>a != b</code> |- | <code>></code> || 大于 || <code>a > b</code> |- | <code><</code> || 小于 || <code>a < b</code> |- | <code>>=</code> || 大于等于 || <code>a >= b</code> |- | <code><=</code> || 小于等于 || <code>a <= b</code> |} '''示例代码:''' <syntaxhighlight lang="java"> public class RelationalOperators { public static void main(String[] args) { int x = 5, y = 10; System.out.println("x == y: " + (x == y)); // false System.out.println("x != y: " + (x != y)); // true System.out.println("x > y: " + (x > y)); // false System.out.println("x < y: " + (x < y)); // true } } </syntaxhighlight> === 3. 逻辑运算符 === 用于组合布尔表达式: {| class="wikitable" ! 运算符 !! 描述 !! 示例 |- | <code>&&</code> || 逻辑与 || <code>a && b</code> |- | <code>||</code> || 逻辑或 || <code>a || b</code> |- | <code>!</code> || 逻辑非 || <code>!a</code> |} '''短路特性:''' * <code>&&</code>:如果第一个操作数为false,不计算第二个 * <code>||</code>:如果第一个操作数为true,不计算第二个 === 4. 位运算符 === 直接操作二进制位: {| class="wikitable" ! 运算符 !! 描述 !! 示例 |- | <code>&</code> || 按位与 || <code>a & b</code> |- | <code>|</code> || 按位或 || <code>a | b</code> |- | <code>^</code> || 按位异或 || <code>a ^ b</code> |- | <code>~</code> || 按位取反 || <code>~a</code> |- | <code><<</code> || 左移 || <code>a << b</code> |- | <code>>></code> || 右移(带符号) || <code>a >> b</code> |- | <code>>>></code> || 右移(无符号) || <code>a >>> b</code> |} '''示例:''' <syntaxhighlight lang="java"> int a = 5; // 二进制: 0101 int b = 3; // 二进制: 0011 System.out.println(a & b); // 输出: 1 (0001) System.out.println(a | b); // 输出: 7 (0111) System.out.println(a << 1); // 输出: 10 (1010) </syntaxhighlight> === 5. 赋值运算符 === 组合赋值操作的简写形式: {| class="wikitable" ! 运算符 !! 示例 !! 等价于 |- | <code>=</code> || <code>a = b</code> || |- | <code>+=</code> || <code>a += b</code> || <code>a = a + b</code> |- | <code>-=</code> || <code>a -= b</code> || <code>a = a - b</code> |- | <code>*=</code> || <code>a *= b</code> || <code>a = a * b</code> |- | <code>/=</code> || <code>a /= b</code> || <code>a = a / b</code> |- | <code>%=</code> || <code>a %= b</code> || <code>a = a % b</code> |- | <code>&=</code> || <code>a &= b</code> || <code>a = a & b</code> |- | <code>|=</code> || <code>a |= b</code> || <code>a = a | b</code> |- | <code>^=</code> || <code>a ^= b</code> || <code>a = a ^ b</code> |- | <code><<=</code> || <code>a <<= b</code> || <code>a = a << b</code> |- | <code>>>=</code> || <code>a >>= b</code> || <code>a = a >> b</code> |- | <code>>>>=</code> || <code>a >>>= b</code> || <code>a = a >>> b</code> |} === 6. 三元运算符 === 条件表达式的简写形式: <code>条件 ? 表达式1 : 表达式2</code> '''示例:''' <syntaxhighlight lang="java"> int a = 5, b = 10; int max = (a > b) ? a : b; // max = 10 </syntaxhighlight> == 运算符优先级 == 运算符按以下顺序求值(从高到低): <mermaid> graph TD A[最高优先级] --> B[后缀: x++ x--] B --> C[一元: ++x --x +x -x ~ !] C --> D[乘除: * / %] D --> E[加减: + -] E --> F[移位: << >> >>>] F --> G[关系: < > <= >= instanceof] G --> H[相等: == !=] H --> I[位与: &] I --> J[位异或: ^] J --> K[位或: |] K --> L[逻辑与: &&] L --> M[逻辑或: ||] M --> N[三元: ? :] N --> O[赋值: = += -= etc.] </mermaid> == 实际应用案例 == '''案例1:温度转换''' <syntaxhighlight lang="java"> // 华氏度转摄氏度 double fahrenheit = 98.6; double celsius = (fahrenheit - 32) * 5 / 9; System.out.println(fahrenheit + "°F = " + celsius + "°C"); </syntaxhighlight> '''案例2:权限管理系统''' <syntaxhighlight lang="java"> final int READ = 1; // 0001 final int WRITE = 2; // 0010 final int EXECUTE = 4; // 0100 int userPermissions = READ | WRITE; // 0011 (3) // 检查权限 boolean canRead = (userPermissions & READ) == READ; boolean canExecute = (userPermissions & EXECUTE) == EXECUTE; </syntaxhighlight> == 常见问题 == '''Q: <code>a++</code> 和 <code>++a</code> 有什么区别?''' A: 前者先使用值再自增,后者先自增再使用值。 '''Q: 为什么 <code>5 / 2</code> 结果是2而不是2.5?''' A: 整数除法会丢弃小数部分,如需浮点结果应使用<code>5.0 / 2</code>。 '''Q: 如何正确比较浮点数?''' A: 由于精度问题,应使用误差范围比较: <syntaxhighlight lang="java"> double a = 0.1 + 0.2; double b = 0.3; double epsilon = 0.000001; boolean equal = Math.abs(a - b) < epsilon; </syntaxhighlight> == 总结 == Java运算符提供了丰富的操作功能,理解它们的特性和优先级对编写正确高效的代码至关重要。建议通过实际编程练习来巩固这些概念,特别注意: * 不同类型运算符的优先级 * 整数除法与浮点除法的区别 * 短路逻辑运算符的特性 * 位运算在特定场景下的高效应用 [[Category:编程语言]] [[Category:Java]] [[Category:Java基础]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)