JAVA 运算符

运算符

算术:

赋值:

复合赋值运算符

比较(关系)

逻辑

三元(条件)

位运算

.
.
.
.

算术运算符:

+(正值、加)、-(负值、减)、*、/、%(取模、模除、求余数)、++(前置、后置)、–(前置、后置)
加运算符+:连接两个字符串。例如,“abc”+123的结果为“abc123”;
Java语言既可对整数取模,也可以对小数取模。例如,16.2%5=1.2
char类型的数据可以进行算术运算,而boolean类型的数据不能进行算术运算
++(–)运算符的操作数必须是变量,不能是常量或表达式 。++i 或者i++

逻辑运算符:可以对布尔类型数据进行逻辑运算,结果仍为布尔类型。逻辑运算符包括& (逻辑与)、| (逻辑或)、! (逻辑非)、^(逻辑异或)、&& (短路与)和|| (短路或)。
**

逻辑运算符

**
JAVA 运算符_第1张图片

**

运算符 使用格式 功能说明

**
JAVA 运算符_第2张图片

运算优先级

JAVA 运算符_第3张图片

代码分析

public class Exam{
     
public static void main(String[] args){
     
System.out.println(2 + 3); //加法运算
System.out.println(- 5); //负值运算   -5  不是符号,是运算符

//以下验证负值运算符和减运算的优先级
System.out.println(- 5 - 3); //“-”在不同位置的含义,先算哪一个(优先级):负值高于减法运算
System.out.println((- 5) - 3);
System.out.println(- (5 - 3));

System.out.println(5 - - 5); //结合性(自左至右、自右至左)
System.out.println(5 - (- 5)); //推荐使用小括号标明优先级,写别人能看懂的代码

//加法运算在Java语言中的“升级”
int i = 9;
System.out.println(i + 5); //求和运算
System.out.println("Hello" + " world!"); //字符串连接运算
System.out.println("i = " + i); //字符串和其他类型数据做加法运算,系统自动将其他类型转换成字符
System.out.println("字符串加小数" + 3.14);
System.out.println("字符串" + 5 + 3);

//取模运算  %         5 % 3      5.5 % 3
System.out.println(5 % 3); //2
System.out.println(5.5 % 3); //2.5
System.out.println(5.5 % - 3); //2.5  除数是负数,负号忽略
System.out.println(- 5.5 % 3); //-2.5 被除数是负数,负号不能忽略
System.out.println(5.5 / - 3);
System.out.println(- 5.5 / 3);

//除法:除数不能为零
System.out.println(5 / 3); //1
System.out.println(5.0 / 3); //5.0(双精度)和3(整数)做除法运算,结果是双精度还是整数?
System.out.println(5.0f / 3);
System.out.println(5.0f / 3 == 1.6666666); //慎重处理小数间的判等操作

//自增、自减
i = 10;
System.out.println(i ++); //先用后加  先输出再i= i + 1
System.out.println(i);

System.out.println("*********************************");
int j = 10;
System.out.println(++ j); //先加后用   先执行 j = j +1 再输出
System.out.println(j);

//赋值   右值(常量,变量,表达式)传给左值(变量)
System.out.println("*********************************");
j = 100;
System.out.println(i = 45);
System.out.println(i = 5 + 3);
System.out.println(i = j);
//System.out.println(i + 1 = 5);  左值一定是变量
//System.out.println(i = 45L); 赋值时,左右类型应兼容:相同或左长右短
long li;
System.out.println(li = 5);
System.out.println(li *= 5);    / li= li * 5     25
li = 5;

//复合赋值运算符右边的内容是一个整体
System.out.println(li *= 5 + 1); // li= li * 5 + 1 ?  26      li = li * (5 + 1)?  30   

//关系(比较):比较数值,跟类型无关   ==(是否相等) 
System.out.println("*********************************");
System.out.println(1 == 1L); //ture
System.out.println(3.14 == 3.14f); //false

//逻辑运算(操作数一定是布尔类型;短路特性)
System.out.println("*********************************");
System.out.println( true | false);
//System.out.println( 1 | false);  1不能自动转换成布尔类
boolean b1,b2;
b1 = true;
b2 = true;
System.out.println(true | (b1 = ! b1)); //有一个操作数为真或运算结果为真   true
System.out.println(true || (b2 = ! b2)); //有一个操作数为真或运算结果为真   true
System.out.println(b1); //false    计算机执行了或运算符后面的表达式b1 = ! b1
System.out.println(b2); //true    计算机没有执行了短路或运算符后面的表达式b1 = ! b1
//短路特性:若第一个操作数即能决定表达式的值,则运算符后面的内容不再执行

//用来连接多个条件  能够将具体的问题抽象成合法的逻辑表达式

}
}

你可能感兴趣的:(java,笔记,java,编程语言,算法,后端)