1.运算符
Java语言支持如下运算符:
算术运算符 加减乘除:+, -, *, /, %(取余,“模”), ++, –
赋值运算符 =
关系运算符 >, <, <=, >=, ==, !=, instanceof
逻辑运算符:&&, ||, !
位运算符: &,|,^, ~, >>, <<, >>>
条件运算符 ?,:
扩展赋值运算符:+=, -=, *=, /=
2.IDEA里建一个文件夹
3.IDEA快捷键
:ctrl+D复制当前行到下一行
4.加减乘除、取余
(注意结果的类型可能不符,需要强制转换)
// 二元运算符
//ctrl+D : 复制当前行到下一行
int a=10;
int b=20;
int c=32;
int d=40;
System.out.println(a+b);//加,输出30
System.out.println(a-b);//减,输出-10
System.out.println(a*b);//乘,输出200
System.out.println(a/b);//除,输出0不为0.5,需要转换一个为浮点型
//System.out.println(a/(double)b);//输出0.5,符合
System.out.println(c%a);//取余,输出2,表示余数为2
5.运算结果的类型规则:
存在比int高的相加结果为高的那个类型,比int低的相加结果为int类型
long a =2983918930809L;
int b=345;
short c=11;
byte d=8;
System.out.println(a+b+c+d);//结果为Long型,比int高的相加结果为高的那个类型
System.out.println(b+c+d);//结果为Int型,比int低的相加结果为int类型
System.out.println(c+d);//结果为Int型,比int低的相加结果为int类型
System.out.println((double) c+d);//结果为double型
6.关系运算符
int a=10;
int b=10;
System.out.println(a>b);//输出false
System.out.println(a<b);//输出false
System.out.println(a==b);//输出true
System.out.println(a!=b);//输出false
7.自增自减++, –
//++ -- 自增,自减 一元运算符
int a=3;
int b=a++;
/* a++ 表示先给b赋值,再自增,
相当于下面两行代码:
int b=a;
a=a+1;
*/
int c=++a;
/* ++a 表示先自增,再给c赋值,
相当于下面两行代码:
a=a+1;
int c=a;
*/
System.out.println(a);//输出5
System.out.println(b);//输出3
System.out.println(c);//输出5
8.幂运算举例(2^3) 用 math.pow(2,3) 来表示
//幂运算 2^3 2*2*2=8 很多运算,我们会使用一些工具类来操作!
double pow = Math.pow(2,3);//2^3
System.out.println(pow);//输出8.0
9.逻辑运算符
//逻辑运算符:与,或,非
boolean a =true;
boolean b=false;
System.out.println("a && b:"+(a&&b));//输出是a && b:false, 逻辑与运算:两个变量都为真,结果才为真
System.out.println("a || b:"+(a||b));//输出是a || b:true 逻辑或运算:两个变量有一个为真,则结果为真
System.out.println("!(a&&b):"+!(a&&b));//输出是!(a&&b):true 逻辑非运算:真变为假,假变为真
//注意加号的使用,字符串加其他结果
10.短路运算
//短路运算
int c =5;
boolean d=(c<4)&&(c++<4);
System.out.println(d);//输出false
System.out.println(c);//输出5,说明后面的c++没有运行,只判断了前面的c<4
11.位运算
&,|,^, ~, >>, <<
/*
A= 0011 1100
B= 0000 1101
A&B=0000 1100
//同位都为1,结果该位就为1,否者就为0
A|B=0011 1101
//同位都为0,结果该位就为0,否则就为1(只要有一个1结果就为1)
A^B=0011 0011
//抑或运算,如果两个相同都为1或者都为0,则结果为1,否者为0
~B=1111 0010
//取反运算,和B的相反
<<左移 相当于把数字 *2
>>右移 相当于把数字 /2
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);//输出16,相当于把0000 0010变为了0001 0000
System.out.println(2>>3);//输出0,位数不够
12.扩展赋值运算符
*+=, -=, =, /=
a+=b; //a=a+b
a-=b; //a=a-b
13.字符串连接符+
//字符串连接符,+前后有String类型(”“)运算,结果会都转换成String类型,连接起来
System.out.println(a+b); //30
System.out.println(""+a+b); //输出1020,结果转换成String类型,连接起来
System.out.println(a+b+""); //输出30,先后顺序,先运算a+b,再转换成String
14.条件运算符 ?,:
/* x ? y : z
如果x==true,则结果为y,否则结果为z */
int score = 80;
String type =score <60 ?"不及格" :"及格";
String type2 =(score-30) <60 ?"不及格" :"及格";
System.out.println(type);//输出及格
System.out.println(type2);//输出不及格