Java - 3 运算符
算术运算符
/*
++a : 先运算后取值
a++ : 先取值后运算
*/
int i = 1;
i = i++; // (1)temp=i;(2)i=i+1;(3)i=temp;
System.out.println(i); // 1
int i = 1;
i = ++i; // (1)i=i+1;(2)temp=i;(3)i=temp;
System.out.println(i); // 2
System.out.println(10/4); // 2
System.out.println(10.0/4); // 2.5 保留小数
double d = 10/4; // 2.0
// %本质:a%b = a - a/b*b
System.out.println(10%3); // 1
System.out.println(10%3); // -1
System.out.println(10%-3); // 1
关系运算符
当==
用于比较基本数据类型时,它会直接比较两个变量的值是否相同。而当==
用于比较对象时,它会比较两个对象的内存地址,也就是判断两个对象是否是同一个对象
equals
是Java中Object类的一个方法,它用于比较两个对象的内容是否相等。在Object类中,equals
方法的默认实现是比较对象的内存地址,也就是判断两个对象是否是同一个对象
String类重写了equals
方法,用于比较两个字符串的内容是否相同
// str1 和 str2 可以是字符串变量, 也可以是字符串变量
str1.equals(str2);
逻辑运算符
&&
: 短路与 (如果第一个条件为false,后面不会继续判断)
&
: 逻辑与
三元运算符
int a = 10;
int b = 99;
int result = a>b ? a++ : b--; // 1真
int n1 = 552;
int n2 = 33;
int n3 = 123;
int max = (n1>n2?n1:n2) > n3 ? (n1>n2?n1:n2) : n3;
位运算符
按位与&
按位或|
按位异或^
按位取反~
// 2的原码(补码) 00000000 00000000 00000000 00000010
// 3的原码(补码) 00000000 00000000 00000000 00000011
// 运算(得到的是补码)00000000 00000000 00000000 00000010(是正数,所以原码也是这个)
System.out.println(2&3)
算数右移>>:低位溢出,符号位不变,用符号位补溢出的高位
本质:/2
算数左移<<:符号位不变,低位补0
本质:*2
逻辑右移(无符号右移)>>>:低位溢出,高位补0
没有<<<
标签:Java,00000000,System,运算符,int,println,out From: https://www.cnblogs.com/wxrwajiez/p/18449094