Java 语言支持如下运算符:
- 算术运算符: +,-,*,/,%,++,–
- 赋值运算符 =
- 扩展赋值运算符:+=,-=,*=,/=
- 关系运算符: >,<,>=,<=,==,!=
- 逻辑运算符: &&,||,!
- 位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
- 条件运算符 ?:
相关概念辨析
- +运算符 操作符 Operator
- 5+6 表达式 expression
- 5 6 操作数 Operand
- int m =5+6; 语句 Sentence
代码示例
package com.cwl.base.day01;
/**
* @program: java_base
* @description: 测试算术运算符
* @author: ChenWenLong
* @create: 2019-11-05 15:07
**/
public class TestOperator01 {
public static void main(String[] args) {
/*
byte a = 1;
int b = 2;
long b2 = 3;
// byte c = a+b; //报错
// int c2 = b2+b; //报错
float f1 = 3.14F;
float d = b+b2;
// float d2 = f1+ 6.2; //报错
System.out.println(-9%5);
*/
/*
//测试自增和自减
int a = 3;
int b = a++; //执行完后,b=3。先给b赋值,再自增。
System.out.println("a="+a+"\nb="+b);
a = 3;
b = ++a; //执行完后,c=5。a先自增,再给c赋值
System.out.println("a="+a+"\nb="+b);
*/
int a=3;
int b=4;
a+=b;//相当于a=a+b;
System.out.println("a="+a+"\nb="+b);
a=3;
a*=b+3;//相当于a=a*(b+3)
System.out.println("a="+a+"\nb="+b);
}
}
算术运算符
- 注意:
- 1:/ 除 6/4=1 6/4.0=1.5
- 2: %取模(求余) 6%4=2
- 3:+ 6+‘a’=103 6+“a“=6ª
- 4:++ a=2;b=++a+9; a=2;b=a+++9;
- +:字符串相加,只要有一个操作数是字符串,自动变为字符串相连
二元运算符类型提升:
- 整数运算:
- 如果两个操作数有一个为Long, 则结果也为long
- 没有long时,结果为int。即使操作数全为shot,byte,结果也是int.
- 浮点运算:
- 如果两个操作数有一个为double, 则结果为double.
- 只有两个操作数都是float, 则结果才为float.
- 一元运算符(++, --):
int a = 3;
int b = a++; //执行完后,b=3。先给b赋值,再自增。
int c = ++a; //执行完后,c=5。先自增,再给b赋值
赋值运算符
- 基本赋值运算符
- 扩展赋值运算符
- 算术运算符和赋值运算符结合
关系运算符
- 关系运算符用来进行比较运算
- 关系运算的结果是布尔值:true/false
- 注意
- 区分==和=
- 不等于是!=不是<>
代码实例
package com.cwl.base.day01;
/**
* @program: java_base
* @description: 测试关系运算符
* @author: ChenWenLong
* @create: 2019-11-05 15:08
**/
public class TestOperator02 {
public static void main(String[] args) {
int a = 3;
System.out.println(a==3);
System.out.println(a!=3);
System.out.println(a<5);
char b = 'a';
char b2 = 'c';
System.out.println((int)b);
System.out.println(0+b);
System.out.println(0+b2);
System.out.println(b<b2);
}
}
逻辑运算符
- 逻辑运算符与布尔操作数一起使用,组成逻辑表达式
- 逻辑表达式的结果是布尔值
- &和&&的区别
- “&”:无论任何情况,“&”两边的表达式都 会参与计算。
- “&&”: 当“&&”的左边为false,则将不会计 算其右边的表达式。即左false则false
- “|”和“||”的区别与“&”和“&&”的区别类似
代码示例
package com.cwl.base.day01;
/**
* @program: java_base
* @description: 逻辑运算符
* @author: ChenWenLong
* @create: 2019-11-05 15:08
**/
public class TestOperator03 {
public static void main(String[] args) {
boolean b1 = true;
boolean b2 = false;
System.out.println(b1&b2);
System.out.println(b1|b2);
System.out.println(b1^b2);
System.out.println(!b2);
//短路
// int c = 3/0;
boolean b3 = 1>2&&2<(3/0); //短路与,第一个操作数的值为false,则不需要在计算后面的操作数
System.out.println(b3);
}
}
来源:CSDN
作者:cwl_java
链接:https://blog.csdn.net/weixin_42528266/article/details/102930382