运算符
二元运算符的运算规则:
整数元算:
- 假如两个操作有一个为long, 则结果也为long;
- 没有 long 时,结果为 Int。即使操作数全为 short, byte, 结果也是int;
浮点运算:
- 假如两个操作熟有一个为double,则结果为double。
- 只有两个操作熟都是 float, 则结果才为 float。
取模运算:
- 其操作数可以为浮点数,一般使用整数,结果是 “余数”, “余数” 符号和左边操作书类似, 如: 7%3 = 1, -7%3 = -1, 7%-3=1;
赋值及扩展赋值运算符
运算符说明示例等价形式=简朴赋值a = ba = b+=加后赋值a += ba = a + b-=减后赋值a -= ba = a - b*=乘后赋值a *= ba = a * b/=除后赋值a /= ba = a / b%=取模后赋值a %= ba = a % b- /**
- * 测试赋值运算符
- */
- public class TestOperator02 {
- public static void main(String[] args){
- int a = 3;
- int b = 4;
- a += b;
- System.out.println(a); // 相当于 a = a + b;
- a = 3;
- a *= b+3; // 相当于: a = a * (b+3);
- System.out.println(a);
- }
- }
复制代码 关系运算符
运算符说明示例结果==相即是4 == 3false!=不即是4 != 3true<小于4 < 3false>大于4 > 3true<=小于即是4 <= 3false>=大于即是4 >= 3true- /**
- * 测试关系型运算符的用法
- */
- public class TestOperator03 {
- public static void main(String[] args){
- int a = 3;
- int b = 4;
- boolean c = a>b;
- System.out.println(c);
- char d = 'h';
- // char值位于0~65536之间,可以通过(int)强制转型为数字
- System.out.println((int)d);
- boolean e = d > 100;
- System.out.println(e);
- }
- }
复制代码 逻辑元运算符
运算符说明示例结果特点&&与(短路)a && b两个都为true才为true假如第一个为false,第二个不执行||或(短路)a || b有一个为true就为true假如第一个为true,第二个不执行&与a & b两个都为true才为true两个操作数都要执行|或a | b有一个为true就为true两个操作数都要执行!非!atrue变false,false变true单目运算符^异或a ^ b类似为false,不同为true两个操作数都要执行- /**
- * 测试逻辑运算符
- */
- public class TestOperator04 {
- public static void main(String[] args){
- // 测试逻辑运算符
- boolean b1 = true;
- boolean b2 = false;
- System.out.println(b1&b2); // 与:有一个false, 结果:false
- System.out.println(b1|b2); // 或:有一个true, 结果:true
- System.out.println(!b2); // 取反
- System.out.println(b1^b2); // 异或:相同false,不同true
- // 短路与、短路或
- boolean b3 = 1>2 && (4<3/0);
- System.out.println(b3);
- }
- }
复制代码 位运算符
位运算的是进行二进制位的运算
运算符说明示例运算规则~按位取反~a1变0,0变1&按位与a & b对应位都为1才为1,否则为0|按位或a | b对应位有1就为1,否则为0^按位异或a ^ b对应位类似为0,不同为1<<左移a << 2各位向左移动,右边补0>>右移a >> 2各位向右移动,左边补符号位- /**
- * 测试位运算符的用法
- */
- public class TestOperator05 {
- public static void main(String[] args) {
- int a = 7;
- int b = 8;
- System.out.println(a&b);
- System.out.println(a|b);
- System.out.println(a^b);
- System.out.println(~b);
- // 位移
- // 乘以2,除与2, 使用位移操作,最快;
- int c = 5<<2; // 相当于:5 * 2 * 2
- int d = 40>>3; // 相当于: 40 / 8
- System.out.println(c);
- System.out.println(d);
- }
- }
复制代码 字符串毗连符
“+” 运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再拼接;
- /**
- * 测试字符串拼接用法
- */
- public class TestOperator06 {
- public static void main (String[] args) {
- String a = "3";
- int b = 1;
- System.out.println(a + b);
- char c1 = 'h';
- char c2 = 'i';
- System.out.println(c1 + c2);
- System.out.println("" + c1 + c2);
- }
- }
复制代码 运算符优先级
优先级运算符说明结合性1() [] .圆括号、数组下标、点号从左到右2! ~ ++ –逻辑非、按位取反、自增、自减从右到左3/ %乘、除、取模从左到右4+ -加、减从左到右5<< >> >>>移位运算符从左到右6< <= > >= instanceof关系运算符从左到右7== !=相称、不相称从左到右8&按位与从左到右9^按位异或从左到右10|按位或从左到右11&&逻辑与从左到右12||逻辑或从左到右13?:条件运算符从右到左14= += -= = /= %= &= ^= |= <<= >>= >>>=赋值运算符从右到左 发起:
- 表达式中优先使用小括号来构造。
- 逻辑与、逻辑或、逻辑非的优先级一定要认识!(逻辑非>逻辑与>逻辑或)。
如:a||b&&c 的运行结果是:a||(b&&c),而非(a||b)&&c
- /**
- * 测试优先级问题
- */
- public class TestOperator07 {
- public static void main (String[] args){
- // 优先级问题的用法
- boolean s1 = true, s2 = false, s3 = false;
- System.out.println(s1||s2&&s3); // 逻辑运算符: 非>与>或
- // 建议使用小括号组织表达式
- boolean s4 = (3>1||4>3) && (3<5);
- System.out.println(s4);
- }
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |