Java 学习之路——运算符

简介: 取模运算:结果的符号与被模数的符号相同。

Java 学习之路——运算符


算数运算符


运算符 运算 范例 结果
+ 正号 +3 3
- 负号 b=4;-b -4
+ 5+5 10
- 6-4 2
* 3*4 12
/ 5/5 1
% 取模(取余) 7%5 2
++ 自增(后):先取值后运算 a=2;b=a++ a=2,b=3
-- 自减(前):先运算后取值 a=2;b=--a a=1,b=1
-- 自减(后):先取值后运算 a=2;b=a-- a=1,b=2
+ 字符串连接 "He"+"llo" "Hello"
  • 取模运算:结果的符号与被模数的符号相同。


  • 自增 1 不会改变本身变量的数据类型。


赋值运算符


  1. 符号:=


  • 当 “ = ” 两侧数据不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。
  • 支持连续赋值。
int i2,j2;
i2 = j2 = 10;
int i3 = 10,j3 = 20;
  1. 扩展赋值运算符:**+=、-=、*=、/=、%= **。


比较运算符


运算符 运算 范例 结果
== 相等于 4==3 false
!= 不等于 4!=3 true
< 小于 4<3 false
大于


4>3 true
<= 小于等于 4<=3 false
>= 大于等于 4>=3


instanceof 检查是否是类的对象 "Hello" instanceof String true
  • 比较运算符的结果都是 Boolean 型,也就是要么是 true,要么是 false 。
  • 比较运算符 “ == ” 不能误写成 “ = ” 。


逻辑运算符


运算符 运算
& 逻辑与
&& 短路与
| 逻辑或
|| 短路或
! 逻辑非


逻辑异或
  • 逻辑运算符操作的都是 Boolean 类型的变量。


位运算符


运算符 运算 范例 细节
<< 左移 3 << 2 = 12 --> 3 * 2 * 2 = 12 空位补 0 ,被移除的高位丢弃,空缺位补 0 。
>> 无符号右移 3 >>> 1 = 1 --> 3 / 2 = 1 被移位二进制最高位无论是 0 或者是 1 ,空缺位都用 0 补。
& 与运算 6 & 3 = 2 二进制进行 & 运算,只有 1 & 1 时结果为 1 ,否则是 0 。
| 异或运算 6 ^ 3 = 5 相同二进制位进行 ^ 运算,结果是 0 ;1 ^ 1 = 0,0 ^ 0 = 0 。
不相同二进制位 ^ 运算结果是 1 。1 ^ 0 = 1,0 ^ 1 = 1 。
~ 取反运算 ~6 = -7 整数取反,各二进制码按补码各位取反。
负数取反,各二进制码按补码各位取反。
  • 位运算符是直接对整数的二进制进行的运算。


三元运算符


  1. 格式:


  • (条件表达式):表达式 1?表达式 2;
public class Testm {
  public static void main(String[] args) {
    int m = 12;
    int n = 5;
    // 三元运算符是可以嵌套使用的。
    int max = (m > n)?"m大" : ((m == n)?"m和n相等" : "n大");
    System.out.println(max)
  }
}
  • 条件表达式的结果为 Boolean 类型。
  • 条件表达式为 true 时,运算后的结果是表达式 1 。
  • 条件表达式为 false 时,运算后的结果是表达式 2 。


  • 表达式 1 和表达式 2 为同种类型


  • 三元运算符和 if-else 的联系与区别:


  • 三元运算符可简化 if-else 语句。
  • 三元运算符要求必须返回一个结果。
  • if 后的代码块可有多个语句。


2.三元运算符与 if-else 的转换:


  • 凡是可以使用三元运算符的地方,都可以改写为 if-else 。反之不成立。


运算符的优先级


  1. 运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。
运算方向 符号 优先级


. () {} ; ,
R --> L ++ -- ~ !(data type) |

L --> R

* / % |
L --> R + - |
L --> R < > <= >= instanceof |
L --> R == != |
L --> R & |
L --> R |
L --> R | |
L --> R && |
L --> R || |
R --> L ? : |
R --> L = *= /= %= |


+= -= <<= >>= v


>>>= &= ^= |=

2.只有单目运算符、三元运算符、赋值运算符是从右向左运算的。

相关文章
|
2月前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
99 43
Java学习十六—掌握注解:让编程更简单
|
1月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
2月前
|
存储 SQL 小程序
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
这篇文章详细介绍了Java虚拟机(JVM)的运行时数据区域和JVM指令集,包括程序计数器、虚拟机栈、本地方法栈、直接内存、方法区和堆,以及栈帧的组成部分和执行流程。
43 2
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
|
2月前
|
算法 Java 测试技术
🌟Java 零基础 | 详解 单目运算符
【10月更文挑战第14天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
53 7
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
2月前
|
Java 测试技术 开发者
🌟Java 零基础 | 深入理解三目运算符
【10月更文挑战第13天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
66 3
|
2月前
|
Java 测试技术 开发者
🌟Java零基础-Lambda运算符详解 🌟
【10月更文挑战第12天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
28 1
|
2月前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
59 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
2月前
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
38 2
|
2月前
|
安全 Java 测试技术
🌟 Java 零基础 | 详解 instanceof 运算符
【10月更文挑战第1天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
54 1