Java基础(二): Java运算符
运算符二元运算符的运算规则:
整数元算:
[*]假如两个操作有一个为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企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]