今天也要好好学java!!
1、算数运算符
a、+、-、*、/、%属于二元运算符。%是取模运算符,就是求余数操作。
b、算术运算符中++(自增),--(自减)属于一元运算符。
二元运算符的运算规则
如果两个操作数有一个为long,则结果为long,否则为int;
如果两个操作数有一个为double,则结果为double,否则为float;
取模运算其操作数可以为浮点数,一般使用整数,结果是余数,余数的符号和左边操作数相同;
package com.study.wyh;
public class TestOperator01 {
/*
*测试算数运算符的用法
*/
public static void main(String[] args) {
int a = 3;
long b = 4;
long c = a+b;//有一个为long则结果为long;
System.out.println(c);
double d = 3+3.14;
int d2 = 31/3;//整数相除只保留整数部分;
System.out.println(d2);
double d3 = 31.0/3;
System.out.println(d3);
//取模运算
int e = 10%3;
System.out.println(e);
//自增、自减
int g = 30;
g++;
System.out.println(g);
g--;
System.out.println(g);
g = 10;
int h = g++;//g++先赋值,后自增
g = 10;
int i = ++g;//++g先自增,后赋值
System.out.println(h);
System.out.println(i);
}
}
运行结果:
2、赋值运算符
package com.study.wyh;
public class TestOperator02 {
/*
*测试扩展运算符的用法
*/
public static void main(String[] args) {
int a = 3;
int b = 4;
a += b;//相当于a = a+b
System.out.println(a);
a = 3;
a *= b+3;//相当于a = a*(b+3)
System.out.println(a);
}
}
运行结果:
3、关系运算符
1、=是赋值运算符,判断两个操作数是否相等的运算符是==
2、==、!=是所有数据类型都可以使用
3、>、>=、<、<=仅针对数值类型
package com.study.wyh;
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值,可以强制转型成数字
System.out.println((int)d);
boolean e = d > 100;
System.out.println(e);
}
}
运行结果:
4、逻辑运算符
短路与和短路或采用短路的方式。从左到右计算,如果只通过左边的操作数就能够确定该逻辑表达式的值,则不会继续计算运算符右边的操作数,提高效率。
package com.study.wyh;
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
//短路与、短路或
//int b3 = 3/0;//不能除0异常
boolean b3 = 1>2 &&(4<3/0);//后面不再执行
System.out.println(b3);
boolean b4 = 1<2 && (4<3/0);//后面执行则报错
System.out.println(b4);
}
}
运行结果:
5、位运算符
package com.study.wyh;
public class TestOperator05 {
/*
*测试位运算符的用法
*/
public static void main(String[] args) {
int a = 7;//0111
int b = 8;//1000
System.out.println(a&b);//0000
System.out.println(a|b);//1111
System.out.println(a^b);//1111
System.out.println(~b);//0111
//移位
int c = 5<<1;//向左移一位,即5*2
System.out.println(c);
int d = 40>>3;//向右移三位,即40/8
System.out.println(d);
}
}
运行结果:
6、字符串连接符
“+”运算符两侧的操作数中只要有一个是字符型(String)类型,系统就会自动讲另一个操作数转换为字符串然后进行连接。
package com.study.wyh;
public class TestOperator06 {
/*
*测试字符串连接符的用法
*/
public static void main(String[] args) {
String a = "3";
int b = 4;
System.out.println(a+b);
//条件是string,不是char,若是char,则仍然是加法。
char c1 = 'h';
char c2 = 'i';
System.out.println(c1+c2);//加法运算
System.out.println(""+c1+c2);//""为字符串,所以+变为字符串连接符。
}
}
运行结果:
7、条件运算符
运行结果:
8、运算符优先级