Java运算符
-
算数运算符:+,-,*,/,%(取余数),++,-- (很多运算,我们会使用一些工具类来操作,Math类)
-
赋值运算符:=
-
关系运算符:> , < , >= , <= , == , != instanceof(不等于)
-
逻辑运算符:&&(与) ,||(或) , ! (非)
-
位运算符:& ,|,^(异或) , ~ , >> ,<< , >>>(了解)
-
条件运算符:?:
-
扩展赋值运算符:+= , -= , *= ,/=
算数运算符
package operator;
public class Demo10 {
public static void main(String[] args) {
//二元运算符
//ctrl + D 复制当前行到下一行
int a=10;
int b=20;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a/b);//结果为0,因为是int型为整数。
System.out.println(a/(double)b);//此处用double进行强制转换,因为结果是小数。
}
}
- ++ – 自增自减
package operator;
public class Demo13 {
public static void main(String[] args) {
//++ -- 自增 自减 一元运算符
int a=3;
int b=a++;// b=a=3 a++ a=a+1=4
int c=++a;// c=++a=1+4=5 a=5
int d=a--;// d=a=5 a=a--=4
int e=--a;//e=a-1=3
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
/*
当a执行完上一语句后再执行下一语句,此时的a的值会发生改变。
*/
}
}
同时在运算过程中要遵循规则
package operator;
public class Demo11 {
public static void main(String[] args) {
long a=12312331313L;
int b=1233;
short c= 100;
byte d=127;
double e=3.1415926;
float f= 3.1F;
System.out.println(a+b+c+d);//Long类型
System.out.println(b+c+d);//int 类型
System.out.println(c+d);// int 类型
System.out.println(a+b+e);//double 类型
System.out.println(b+f);//float 类型
/*
以上说明一个 不同类型的数据现转化为同一类型,然后进行运算。
自动类型 低到高
强类型转换 高到低
*/
}
}
关系运算符代码
package operator;
public class Demo12 {
public static void main(String[] args) {
//关系运算符返回的结果: 正确,错误 (布尔值)
int a=10;
int b=20;
System.out.println(a>b);//false
System.out.println(a<b);//true
System.out.println(a==b);//flase
System.out.println(a!=b);//true
}
}
逻辑运算符、位运算符、条件运算符、赋值运算符
- 逻辑运算符
package operator;
//逻辑运算符
public class Demo14 {
public static void main(String[] args) {
//与 或 非
boolean a=true;
boolean b=false;
System.out.println(a&&b);//两个同时为真才为真
System.out.println(a||b);//两个有一个为真就为真
System.out.println(!(a&&b));//两个如果是假,则为真。如果为真,则为假。
}
}
- 位运算符(语法格式:需要移位的数字<<移位的次数)
package operator;
public class Demo15 {
public static void main(String[] args) {
/*
A= 0011 1100
B= 0000 1101
-----------------------
A&B= 0000 1100
A|B= 0011 1101
A^B= 0011 0001 如果对应位置值相同为0 不相同为1 异或运算
~B= 1111 0010
*/
package operator;
public class Demo15 {
public static void main(String[] args) {
/*
A= 0011 1100
B= 0000 1101
-----------------------
A&B= 0000 1100
A|B= 0011 1101
A^B= 0011 0001 如果对应位置值相同为0 不相同为1 异或运算
~B= 1111 0010
*/
/*
<<左移
>>右移(语法格式:需要移位的数字<<移位的次数)
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);//由上图可以看出计算最快的就是2左移3位 16
}
}
- 条件运算符,赋值运算符(相关的知识点扩展)
package operator;
public class Demo16 {
public static void main(String[] args) {
int a=10;
int b=20;
a+=b;//a=a+b
a-=b;//a=a-b
System.out.println(a);
//字符串连接符 + ,string
System.out.println(""+a+b);//sting类型在前面,加号会把后面的连接起来。
System.out.println(a+b+"");
}
}
- 三元运算符
package operator;
//三元运算符
public class Demo17 {
public static void main(String[] args) {
//x ? y :z
//如果x==true ,则结果位y ,否则结果位z
int score=75;
String type= score>60 ?"及格":"不及格" ;//必须掌握
System.out.println(type);
}
}