基本运算符
package operator;
public class Demo1 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 25;
int d = 25;
//基本运算符
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);//此处结果输出为0,因为int型只有整数,且为向零取整
System.out.println(a / (float)b);//将其中一个变量强转为float,此时输出即为0.5
//========================================
int j = 123;
long i = 299792458000L;
short h = 10;
byte k = 8;
System.out.println(i + j + h + k);//输出为long型,式子中的运算取其中的最高位类型
System.out.println(j + h + k);//最高变量类型为int,输出为int型
//可以使用快捷键,选中println然后按住ctrl键,鼠标点击一下,就可以查看它的输出类型
System.out.println(h + k);//数字类型中,其中只要没有long型,输出型就是int(不同的变量类型不能运算,这应该是常识)
}
}
关系运算符
package operator;
public class Demo2 {
public static void main(String[] args) {
//关系运算符,返回结果为true,false,为布尔型
int a=5;
int b=6;
int c=7;
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a == b);
System.out.println(a != b);
System.out.println(b % c);//表示b除以c取余数,称为模运算。
}
}
自增自减运算符
package operator;
public class Demo3 {
public static void main(String[] args) {
//++ --运算符,即自增,自减运算符,为一元运算符
int a = 3;
int b = a++;//此处意思是先把a值赋给b,然后a再做自增运算
System.out.println(a);//在这里输出a的话,输出的a值为a+1
int c = ++a;//这里的意思则是a先做自增运算,然后再赋值给c
System.out.println(a);//这里输出的a就是a的初始值经过两次自增运算后的结果
System.out.println(b);
System.out.println(c);
//幂运算,java里没有2^3的运算符,要使用幂运算可以如下
double pow = Math.pow(2, 3);//这里直接输入Math.pow(2,3);然后Alt加Enter键会自动填充引用
System.out.println(pow);
}
}
逻辑运算符
package operator;
public class Demo4 {
public static void main(String[] args) {
//逻辑运算符,与或非
boolean a = false;
boolean b= true;
System.out.println("a&&b=:" + (a && b));//这里的输出为a&&b=: true,&&是与运算
System.out.println(a || b);//或运算
System.out.println(!(a && b));//非运算
//短路运算
int c = 5;
boolean d = (c<4)&&(c++>6);//这里先运行到c<4,此处已是false,后面的c++>6就不会运行
System.out.println(c);
System.out.println(d);
}
}
位运算符
package operator;
public class Demo5 {
public static void main(String[] args) {
/*位运算符
A=0010 1001
B=0110 1011
A&B = 0010 1001(把A和B的每一位进行与运算,同一位均为1时,才会输出1
A|B = 0110 1011(把A和B的每一位进行或运算,同一位只要有一个为1,就输出1
A^B = 0100 0010(异或运算,可以理解为不进位加法,同一位相同即为零,同一位不同则输出为1
~B = 1001 0100(取反运算,即字面意思,每一位取其反
---------------------------------------
位运算的效率极高
<< 1就是乘以2 这个是左移运算符,比如2<<3,意思就是2*2*2*2,这个是指二进制数左移一格
比如2的二进制为0000 0010,2<<3就是左移三格,变成0001 0000,输出为十进制即16
>> 1就是除以2 这个是右移运算符,使用方法参考左移运算符。
*/
System.out.println(2<<3);
}
}
其他运算符
package operator;
public class Demo6 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a-=b;//这里是先执行-运算符,后执行=赋值运算符。结果即是先a-b,然后把a-b的值赋给a
System.out.println(a);
a+=b;//这里同上,但是要注意这里a的值是上一行的运算结果,而不是初始值
System.out.println(a);
//字符串连接符 + , String
System.out.println("林"+a+b);//这里就相当于一个字符串类型加a和b,会把a和b以字符串类型连接,输出为 林1020
System.out.println(a+b+"林");//这里不一样,因为先执行的是a+b,所以输出结果为30林
}
}
三元运算符
package operator;
//三元运算符
public class Demo7 {
public static void main(String[] args) {
//x ? y : z
//上面这行的意思是,若x==true,则结果为y,否则为z
int score = 59;
String band = score < 60 ? "不及格" : "及格";//必须掌握
System.out.println(band);
}
}