运算符
运算符用来对数据的运算、赋值、比较等;在 Java 语言中主要分为以下几种:
- 算数运算符
- 自增、自减运算符
- 赋值运算符
- 位运算符
- 关系运算符
- 逻辑运算符
- 三目运算符
算数运算符
算数运算符主要指的加、减、乘、除、取余等操作;
运算符需要注意表达式的类型提升
加:+
用于数值间的加法运算;
int a = 1;
int b = 2;
int c = a + b; // 3
System.out.println(c); // 3
+
不仅可以做加法运算,还可以做字符串之间的连接;
System.out.println("一行"+"Java"); // 一行Java
减:-
减法运算符,用于两个数值相减;
int a = 1;
int b = 2;
int c = a - b; // -1
System.out.println(c); // -1
乘:*
乘法运算符,用于两个数值相乘;
int a = 1;
int b = 2;
int c = a * b; // 2
System.out.println(c); // 2
除:/
除法运算符,用于两个数值相除;
这里需要特别注意,算术表达式的所有类型将自动提升为参与表达式的最高类型;除法操作,可能得到浮点数结果,如3/2,正确结果应该是 1.5,但如果参与运算的类型都是int,结果也会强转为int,因为精度的丢失的问题,最后计算的结果为:1,因此,需要预先转换为要得到的最高类型(float或double),再参与运算,才能得到正确的结果;
int a = 3;
int b = 2;
int c = a / b; // 1
System.out.println(c); // 1
float a1 = 3;
float b1 = 2;
float c1 = a1 / b1; // 1.5
System.out.println(c); // 1.5
取余:%
取余又称之为取模(modulus),计算两个值相除之后的余数
int a = 5;
int b = 2;
int c = a % b; // 1
System.out.println(c); // 1
自增、自减运算符
在日常开发中,加1、减1的操作是非常的常见,因此,Java 为我们提供了自增、自减的运算符;a++ 表示将变量a的值加1,a-- 表示变量a的值减1;
int a = 2;
a++; // 3
a--; // 2
自增、自减运算符在表现形式上分为两种:
后缀(a++、a--)
此方式表示先赋值,再进行 +1 或 -1 操作
javaint a = 3; int b = a++ * 2; // b的值:6,a的值:4 int c = a-- * 2; // b的值:6,a的值:3
前缀(++a、--a)
此方式表示先进行 +1 或 -1 操作,再赋值
javaint a = 3; int b = ++a * 2; // b的值:8,a的值:4 int c = --a * 2; // b的值:4,a的值:3
赋值运算符
在Java中,使用 = 对变量进行赋值操作
位运算符
Java支持的位运算符有如下7个。
&
:按位与。当两位同时为1时才返回1。javaSystem.out.println(5 & 30); // 4
|
:按位或。只要有一位为1即可返回1。javaSystem.out.println(5 | 30); // 31
~
:按位非。单目运算符,将操作数的每个位(包括符号位)全部取反。javaSystem.out.println(~5);
^
:按位异或。当两位相同时返回0,不同时返回1。javaSystem.out.println(5 ^ 30);
<<
:左移运算符。>>
:右移运算符。>>>
:无符号右移运算符。有符号左右移示例:
javaSystem.out.println(30 >> 1); // 15 System.out.println(30 << 1); // 60
有符号、无符号右移动示例:
javaSystem.out.println(-5 >> 2); // -2 System.out.println(-5 >>> 2); // 1073741822
关系运算符
Java 中包含了比较丰富的关系运算符
>
:大于<
:小于>=
:大于等于<=
:小于等于==
:等于!=
:不等于
逻辑运算符
&&
:逻辑“与”运算表达式1 && 表达式2
:只有表达式1和表达式2都为 true 的时候,才通过;||
:逻辑“或”运算表达式1 && 表达式2
:表达式1和表达式2只要有一个为 true 的时候,就能通过;!
:逻辑“非”运算!表达式1
:将表达式的结果取反;当表达式的结果为true时,取反就是false;当表达式的结果为false时,取反就是true;
三目运算符
三目运算符又称之为条件运算符,可以算作特定if...else常见下的简写;
格式:条件 ? 条件为true的结果 : 条件为false的结果
示例:
int a = 2;
String b = (a>0)?"大于0":"小于0"; // b = "大于0"
int c = 2;
String d = (c==0)?"c等于0":"c不等于0"; // d = "c不等于0"