运算符
- 算数运算符+,-,*,/, %, ++, –
- 赋值运算符=
- 关系运算符> , < , >=, <=, ==, !=, instanceof
- 逻辑运算符&&, ||, !
- 位运算符&,|,^,~,>>,<<,>>>
- 条件运算符?,;
- 拓展赋值运算符+=,-+,*=,/=
运算符注意事项
-
二次运算符 a+b
-
运算规制,先将运算统一成该运算中最高的数据类型后再运算。
-
多个数进行操作中,有个Long类型,结果为Long否则Int
-
关系运算符返回的结果为 正确/错误 布尔值类
-
a++,先赋值,在自增
-
++a,先自增,再赋值
-
位运算//<<(左移)代表*2
//>>(右移)代表/2
// 效率极高!!!!!!!!!!!!!! -
运算符优先级加()!
加()!
加()!
算数运算符
二次运算符 a+b
运算规制,先将运算统一成该运算中最高的数据类型后再运算。
多个数进行操作中,有个Long类型,结果为Long否则Int**
public static void main(String[] args) {
//二元运算符 a+b
//ctrl+D 复制当前行到下一行
int a = 10;
int b = 20;
int c = 30;
int d = 40;
System.out.println(a+b);//输出30
System.out.println(a-b);//输出-10
System.out.println(a*b);//输出200
System.out.println((double) a/b);//注意精度
//先转型后计算 输出0.5
}
public static void main(String[] args) {
long a =12312312312312312L;
int b = 123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d);//Long 12312312312312453
//运算规制,先将运算统一成该运算中最高的数据类型后再运算。
// 多个数进行操作中,有个Long类型,结果为Long否则Int
System.out.println((double) b+c+d);//转为double 141.0
System.out.println(c+d);//Int 18
}
关系运算符
关系运算符返回的结果为 正确/错误 布尔值类
public static void main(String[] args) {
//关系运算符返回的结果为 正确/错误 布尔值类
int a = 10;
int b = 20;
int c = 22;
System.out.println(c%a); //22*10=2余2
System.out.println(a>b); //false
System.out.println(a<b); //true
System.out.println(a==b); //false
System.out.println(a!=b); //true
}
自增自减
public static void main(String[] args) {
//++ ,-- 自增 自减 一元运算符
int a =10;
int b =a++; //先赋值 a=10赋值给b, 再给a自增 a+1;
int c =++a; //先给a自增, 再进行赋值
System.out.println(a); //输出12
System.out.println(b); //输出10
System.out.println(c); //输出12
//幂运算
double i=Math.pow(2 , 3); //Math数学工具类
System.out.println(i);
}
逻辑运算符
基本逻辑运算
//逻辑运算符&&(与) ||(或) !(非)
public static void main(String[] args) {
boolean a = false;
boolean b = true;
System.out.println("a&&b:"+(a&&b));
//逻辑与运算,两个变量都为真,结果才为true,此结果输出为false
System.out.println("a||b"+(a||b));
//逻辑或运算,两个变量其中一个为真,结果为true,此结果输出true
System.out.println("a!b"+!(a&&b));
//逻辑非运算,如果为真则输出为假。如果为假的则输出真。
}
短路运算
//逻辑短路运算
//若先判断了b为false了,则不会进行后面的a判断。直接跳过。
public static void main(String[] args) {
boolean a = true ;
boolean b = false;
System.out.printf("b&&a:"+(b&&a));
//若先判断了b为false了,则不会进行后面的a判断。直接跳过。
int c =5;
boolean d =((c<4)&&(++c<4));
System.out.println(d);//输出false
//先执行了(c<4)逻辑为false;不执行后面条件
System.out.println(c);//输出为5
//没有执行(++c<4),则C还是为5
位运算
&(与) ,|(或),~(非) ,^(异或)
public static void main(String[] args) {
/*
&(与) ,|(或),~(非) ,^(异或)
A = 0011 1100
B = 0000 1101
A&B=0000 1100 (有0得0,全1得1)
A|B=0011 1101 (有1得1,全0得0)
A^B=0011 0001 (相同得0,不同得1)
B~ =1111 0010 (取反)
*/
//<<(左移)代表*2
//>>(右移)代表/2
// 效率极高!!!!!!!!!!!!!!
System.out.println(2<<3); //输出为16
/*
0000 0010 代表2
向左移3位
0001 0000 代表16 就是2*2*2*2,移动3位乘以3次2
*/
拓展运算符
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); //输出30
}
字符串运算符
//字符串连接符 String
public static void main(String[] args) {
int a =10;
int b =20;
System.out.println(""+a+b); //输出1020,
// +起到连接作用,执行内容有字符串类型,会把其他类型变为字符串类型进行连接。
System.out.println(a+b+""); //输出30
//先进行运算,再与字符串进行连接。
}
三元运算符
//三元运算符
public static void main(String[] args) {
// X? Y : Z
//如果X==true 则结果为Y : 否则结果为Z
int score=80;
String type = score>60? "及格" :"不及格";
System.out.println(type); //输出几个
}
包机制
一般利用公司域名倒置作为包名
例如 www.baidu.con
包名:com.baidu.www
若要实现分层需要在设置里把Compact Middle Packages勾选取消