public class Demo08{
//final修饰符,不存在先后顺序
static final double PI = 3.14;
_________________________________________________________
public static void main(String[] args){
System.out.println(PI);
}
}
package operator;
public class Demo04{
public static void main(String[] args){
//++ -- 自增,自减 一元运算符
int a = 3;
int b = a++; //执行完这行代码后,先给b赋值,再自增
//a = a + 1
System.out.println(a);
//a = a + 1
int c = ++a; //执行完这行代码后,先自增,再给b赋值
//幂运算 2^3 2*2*2 = 8
double pow = Math.pow(2,3);
System.out.println(pow);
}
}
package operator;
//逻辑运算符
public class Demo05{
public static void main(String[] args){
//与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b:"+(a&&b)); // 逻辑与运算:两个变量都为真,结果才为true
System.out.println("a || b:"+(a||b)); //逻辑或运算:两个变量有一个为真,结果就为true
System.out.println("! (a && b):"+!(a&&b)); //如果是真,则变为假,如果是假则变为真
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d); //false
//当代码运行到可以出结果的时候就不再往下运行了
}
}
package operator;
public class Demo06{
public static void main(String[] args){
/*
A = 0011 1100
B = 0000 1101
---------------------------------------------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001 //异或:对应的位不同则结果为1,相同则为0
~B = 1111 0010 //取反
2*8 = 16 2*2*2*2
<< *2 //将一个数的二进制表示向左移动指定的位数,右边突出的位用0填充
>> /2 //将一个数的二进制表示向左移动指定的位数,右边突出的位用0填充
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3); //0000 0010向左移动三位为0001 0000
}
}
package operator;
public class Demo07{
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类型就都转换成String类型
System.out.println(""+a+b); //字符串
System.out.println(a+b+""); //正常运算
}
}
package operator;
//三元运算符
public class Demo08{
public static void main(String[] args){
//x ? y : z
//如果x==true,则结果为y,否则结果为z
int score = 50;
String type = score <60 ?"不及格":"及格";//必须掌握
// if
System.out.println(type);//不及格
}
}