运算符
Java语言支持如下运算符:
- 算术运算符:+,-,*,/,%(取余运算,也叫模运算),++,--
package Operator;
public class Demo02 {
public static void main(String[] args) {
long a=123123123123123L;
int b=123;
short c=10;
byte d=8;
System.out.println(a+b+c+d);//Long类型 //运行结果为123123123123264
System.out.println(b+c+d);//int类型 //运行结果为141
System.out.println(c+d);//int类型 //运行结果为18
}
}
++,--(自增自减)
package Operator;
public class Demo04 {//自增自减运算符,数学运算 重要!!!
public static void main(String[] args) {
//++:自增 -- :自减 一元运算符
int a=3;
int b=a++;//执行完这行代码后,先给b赋值,再自增,此时b=3,a=4
int c=++a;//执行完这行代码前,先自增,再给b赋值,此时a=5,c=5
System.out.println(a);//运行结果为5
System.out.println(b);//运行结果为3
System.out.println(c);//运行结果为5
//幂运算 2^3 2*2*2=8 很多运算,我们会使用一些工具类来操作
double pow=Math.pow(2,3);
System.out.println(pow);
}
}
- 赋值运算符 =(比如,int a=10,意思是把10赋值给a
package Operator;
public class Demo01 {//int加减乘除
public static void main(String[] args) {
//二元运算符
//Ctrl+D 复制当前行到下一行
int a=10;
int b=20;
int c=25;
int d=25;
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,所以应该转为double型
System.out.println((double) a/b);
}
}
- 关系运算符:>,<,>=,<=,==(等于),!=(不等于),instanceof
package Operator;
public class Demo03 {//关系运算符
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);//运行结果为false
System.out.println(a>=b);//运行结果为false
System.out.println(a<=b);//运行结果为true
System.out.println(a!=b);//运行结果为true
int c=21;
System.out.println(c%a);// c / a 21 / 10 = 2 ... 1 取余
}
}
- 逻辑运算符:&&(与),||(或),!(非)
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
System.out.println(c);
//运行结果为5,说明没有执行后面的c++<4,与运算中,&&前面如果是错,整体结果就是错,&&后面的不再执行
}
}
- 位运算符:&,|,^,~,>>,<<,>>> (了解)
package Operator;
public class Demo06 {//位运算
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 取反:1变0,0变1
2*8怎么运算最快 2*2*2*2
效率极高!!!
<< 左移 *2
>> 右移 /2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);//运行结果为16,左移3位,乘3个2,即2*2*2*2
}
}
- 条件运算符 ?:
package Operator;
//三元运算符
public class Demo08 {//条件运算符
public static void main(String[] args) {
// x ? y : z
//如果x==true,则结果为y,否则结果为z
int score=80;
String type=score<60 ?"不及格":"及格";//必须掌握,可以让代码更加精简,便于理解
//if
System.out.println(type);
}
}
- 扩展赋值运算符:+=,-=,*=,/=
package Operator;
public class Demo07 {//扩展赋值运算符
public static void main(String[] args) {
int a=10;
int b=20;
a+=b;//意为:a=a+b,此时a=30,b=20
a-=b;//意为:a=a-b 此时a=10,b=20
System.out.println(a);//运行结果为10
//字符串连接符 +
System.out.println(a+b);
System.out.println(""+a+b);//+的两端中左端出现String类型字符串,右端也会转换成String类型
System.out.println(a+b+"");//+的两端中右端出现String类型字符串,左端继续执行a+b操作
}
}
- 运算符优先级:(由高到低)
1 | 括号 | ( )、[ ] |
2 | 非,正、负号 | !、+(正)、-(负) |
3 | 自增,自减 | ++、-- |
4 | 乘,除,取余 | *、/、% |
5 | 加,减 | +、- |
6 | 移位运算 | <<、>>、>>> |
7 | 大小关系 | <、<=、>、>= |
8 | 相等关系 | ==、!= |
9 | 按位与 | & |
10 | 按位异或 | ^(再Java中,这不是幂次方的符号) |
11 | 按位或 | | |
12 | 逻辑与(短路与) | && |
13 | 逻辑或(短路或) | || |
14 | 条件运算(三目运算) | ?: |
15 | 赋值运算 | =、+=、-=、*=、/=、%= |
16 | 位赋值运算 | &=、 |
如果在程序中,要改变运算顺序,可以使用括号( ) |
包机制
- 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
- 包语句的语法格式为: package pkg1[. pkg2[. pkg3...]];
- 一般利用公司域名倒置作为包名
- 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import”语句可完成此功能 import package1[. package2...].(classname|*);
- 导入这个包下所有的类 import 包名.*;
JavaDoc
- javadoc命令是用来生成自己API文档的
参数信息:
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
生成文档操作步骤:
1.在文件夹中打开
2.在当前目录下打开cmd
3.输入:javadoc -encoding UTF-8 -charset UTF-8 XXX.java,回车
4.此时文件夹中会多出很多html,打开index.html,即为生成的文档
小结
- 注释、标识符、关键字
- 数据类型
- 类型转换
- 变量、常量
- 运算符
- 包机制、JavaDoc