操作符

2017-10-23  本文已影响0人  WhiteSpace123

优先级:

能用括号包住就用括号包住,代码应该以易理解的方向编写

赋值操作符:

=

算术操作符:

+ - * / %
+= /= -= *= %=等同于

a = a+b;
a = a/b;
a = a-b;
a = a*b;
a = a%b;

JAVA+号没有重载

7 % 2==1;  //true
(2\*3)+1==7;  //true

一元操作符:

- + 等同于-1 +1

自动递增/递减操作符:

++ --

关系运算符:

> < >= <= == != 返回值为boolean类型的值
对象使用关系操作符比较的是对象的地址值,Object类的equals方法默认比较地址值

逻辑操作符:

&& || !

短路:

当逻辑操作符的||的前一方为true则||后的一方不运算,当&&的前一方为false则&&后的一方不运算

(3>1)||(1>2)    //(1>2)不运算
(1>3)&&(1>2)    //(1>2)不运

使用直接常量的时候,应该给予类型:
byte b = 1B;
long l = 1L;
float f = 1.0F;
double d = 1.0D;
int x = 0X2f; //16进制表示法
尽量使用大写字母防止混淆

指数计数法:

e代表10的次方

double d = 1e-34;    //代表10的-34次方

移位操作符:

将数值变为2进制位数,左边为高位,右边为低位
<<:去高补低,将35转换为2进制,去3个高位补3个低位0
long l = 35 << 3; //35乘上2的3次
>>:去低补高,将35转换为2进制,去3个低位补3个高位0
long l = 35 >> 3; //35除以2的3次
>>>:去低补高,将35转换为2进制,第一个高位补1,其他2个高位补0,去3个低位(有正负符号)
long l = 35 >>> 3; //8

按位操作符:& | ~ ^

int x = 2 & 1; //0,将值转换为二进制数位与位进行比较,&为*,|为+,2&1就是2进制(10)*(01)

三元运算符:

(布尔表达式)?值1:值2;

基本数据类型转换:

扩展转换:小转大
窄化转换:大转小(可能丢失精度)
截尾:浮点类型转换时,会截去小数点部分
自动类型提升:小类型和大类型运算时结果会提升至大类型,+=等操作符会根据类型自动转换

= == !=能操作对象,+ +=能操作字符串,其他的只能操作基本数据类型

上一篇下一篇

猜你喜欢

热点阅读