5.运算符
运算符
- 算术运算符
- 赋值运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 条件运算符
- 字符串连接运算符
- 其它运算符
算术运算符 | +、-、*、/、%、++、– |
---|---|
关系运算符 | >、>=、<、<=、==、!= |
逻辑运算符 | &、 |
赋值运算符 | =、+=、-=、*=、/=、%=、^=、&=、 |
位运算符 | &、 |
条件运算符 | 布尔表达式?条件1: 表达式2 |
字符串连接运算符 | + |
其它运算符 | instanceof、new |
算术运算符
public class ArithmeticOperatorTest01
{
public static void main(String[] args)
{
int a = 10;
int b = 3;
System.out.println(a + b); // 13
System.out.println(a - b); // 7
System.out.println(a * b); // 30
/*
* Java语言中10除以3结果不是3.333333333...
* Java规定:int类型和int类型做运算最终结果还是int类型
* 10 / 3的结果是3,取整
*/
System.out.println(a / b); //3
System.out.println(a % b); //1
int k = 10;
int m = k++;
System.out.println("k=" +k); // k=11
}
}
关系运算符
判断两个字符串是否相等
System.out.println("abc".equals("abc")); // true
关系运算的结果是布尔类型
逻辑运算符
&&:短路与
||:短路或
赋值运算符
x+=1和x-=1是否完全相同?
public class AssignmentOperatorTest02
{
public static void main(String[] args)
{
byte b = 10;
/*
* b为byte类型,1为int
* b + 1结果为int
* int类型无法直接赋值给byte类型的b
* 编译报错
*/
b = b + 1;
b += 1; // 编译正常执行
System.out.println("b=" +b); // 11
/*
* 实际上Java对扩展类的赋值运算符进行特殊处理
* 所有的扩展赋值运算符最终都不会改变运算的结果类
* 所以b += 1等同于
*/
b = (byte)(b + 1);
System.out.println("b=" + b); // 12
b += 1000; // 编译通过,可以正常运行,等同于b = (byte)(b + 1000);
}
}
条件运算符
三目运算符
布尔表达式? 表达式1: 表达式2
字符串连接运算符
定义一个字符串变量
String name = "jack";
当+的时候,两边如果都是数字,进行求和运算
只要有其中一个操作数是字符串类型,进行字符串拼接运算
字符串拼接的结果还是字符串类型
当一个表达式有多个+,没有小括号的前提下遵循自左向右运算
public class PlusTest01
{
public static void main(String[] args)
{
int a = 10;
int b = 20;
System.out.println(a + "+" + b + "=" + a + b); // 10+20=1020
System.out.println(a + "+" + b + "=" + (a + b)); // 10+20=30
}
}