Java语法基础(二)
运算符
- 算数运算符:+,-,*,/,%,++,--
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=,instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
- 条件运算符 ?:
- 扩展赋值运算符:+=,-=,*=,/=,
关于运算符的注意点
注意运算的类型
如
int a = 10;
int b = 20;
System.out.println(a/b);//这里结果为0,因为(a/b)为int型 故0.5保留整数为0
System.out.println(a/(double)b);//这里结果为0.5,通过(double)b将b强制转化为double类型,故a/(double)b为double类型。
//不同数据类型进行运算时,会自动转化为最高的数据类型
long a = 12131541551L;
int b = 123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d);//long
System.out.println(b+c+d);//int
System.out.println(c+d);//int byte或short类型进行运算时会自动转为int类型
char、short、byte-->int-->long-->float-->double
低--------------------------------------------------------------->高
//关系运算符返回的结果: 正确,错误 布尔值
int a = 10;
int b = 20;
int c = 21;
//模运算
System.out.println(c%a);//取余数 1
System.out.println(a>b);//false
System.out.println(a<b);//true
System.out.println(a==b);//false
System.out.println(a!=b);//true
关于自增自减符号:
//++,-- 自增, 自减 一元运算符
int a = 3;
int b = a++;//a++ a=a+1 执行完这行代码后 先给b赋值 再a自增
System.out.println(a);//结果为4
int c = ++a;//++a a=a+1 执行完这行代码后 先给a自增 再给b赋值
System.out.println(a);//5
System.out.println(b);//3
System.out.println(c);//5
逻辑运算符:
// 与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b: "+(a&&b)); //逻辑与运算: 两个变量都为真,结果才为true
System.out.println("a || b: "+(a||b) );//逻辑或运算: 两个变量都为假,结果才为false
System.out.println("!(a && b): "+!(a&&b));//如果是真,则变为假;如果是假,则变为真
//短路运算
int c = 10;
boolean d = (c<4)&&(c++<4);//因为(c<4)为假,所以(c<4)&&(c++<4)一定为假,于是不需要执行且确实没有执行(c++<4)
System.out.println(d);//结果为false
System.out.println(c);//结果为10,而不是11,因为并没有执行c++<4
位运算符:
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 对应位置都为1 结果才为1
A|B = 0011 1101 对应位置都为0 结果才为0
A^B = 0011 0001 对应位置相同 结果为0 对应位置不同 结果为1
~B = 1111 0010 对应位置为1 结果为0 对应位置为0 结果为1
效率极高!!!
<<左移号 相当于 *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
扩展赋值运算符:
int a = 10;
int b = 20;
a+=b;//a = a+b
a-=b;//a = a-b
System.out.println(a);//结果为10
字符串连接符 +
int a = 10;
int b = 20;
//由于+的运算顺序是从左向右的,故以下结果不同
System.out.println("xxx"+a+b);//结果为xxx1020,先计算"xxx"+a,类型为String型,故为1020
System.out.println(a+b+"xxx");//结果为30xxx,先计算a+b,类型为int型,故为30,再算30+"xxx",结果为String类型
条件运算符 ?:
//x ? y : z
//如果x==true,则结果为y, 否则结果为z
包机制
- 一般利用公司域名倒置作为包名;
- 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用”import“语句可完成此功能
JavaDoc
javadoc命令是用来生成自己API文档的
参数信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @retuen 返回值情况
- @throws 异常抛出情况