一、Java操作符的作用类型
- 主作用
作用于操作数,生成新的值。
- 副作用
二、Java操作符的作用范围
几乎所有操作符都只能操作基本类型
可以操作所有对象的操作符
“=”、“ ==”、“ !=”
- 特例
三、优先级
四、详细介绍操作符
1. “=”赋值
(1)基础数据类型赋值
数据内容直接复制一份到新的地址空间。
(2)对象赋值
数据对象的地址引用复制一份给目标对象,两个对象指向同一个地址空间的数据。(别名现象)
2. 算术操作符
(1)运算操作符
“+”、“-”、“*”、“/”、“%”
简化符号也可以使用“+=”、“-=”、“*=”、“/=”
(2)一元加、减操作符
“-”、“+”
表示正负号
为了明确代码意义,尽量加括号包裹。例如:x=a*(-b)
3. 自动递增、递减
--、++
使用方法与C语言相同
4. 关系操作符
<、>、<=、>=、==、!=
比较两个对象是否相同
(1)基础数据类型
==、+=
(2)对象
equal()
5.逻辑操作符
&&、||、!
Java中逻辑操作符只能用于布尔值,C/C++中逻辑操作符可以用于非布尔值
根据参数的逻辑关系,生成一个boolean类型的结果。
短路现象:一旦能够确认表达式的值就不再进行余下部分的计算。(编程易错点)
6.直接常量
(1)增加后缀标志类型
大写(小写)字母L、l代表long
大写(小写)字母F、f代表float
大写(小写)字母D、d代表double
(2)使用前缀标志进制
十六进制前缀:0X、0x,后跟0~9或a~f
八进制前缀:0,后跟0~7
Java、C/C++没有二进制前缀,
但可用Integer.toBinaryString()和Long.toBinaryString()将八进制和十六进制数转换成二进制
(3)指数记数法
例如:1.39e-12、139e10
e在编程语言中经常表示10的幂
7.按位操作符
&、|、^、~
与、或、异或、非
用法与C语言一致
8.移位操作符
<< 左移尾数补零
>> 有符号右移
>>> 无符号右移(Java独有)
byte、char、short都会转化为int,结果也是int,只有低5位十进制数有效,参与移位运算,因为int是32位,2的无次方
long的结果为long,低6位十进制有效,参与移位计算
组合操作符
<<=、>>=、>>>=
9.三元操作符
boolean ? value1 :value2;
if-else条件操作符
用法同C++
10.字符串操作符
+、+=
11.类型转换
(1)截尾
例如:
a = 1.22;
(long)a;
(2)舍入
四舍五入法java.lang.Math中有round()函数。
a = 1.55
Math.round(a);
(3)提升
操作符运算结果数据类型向上提升
12.不存在sizeof()函数
Java里面数据类型所占的字节数是恒定的,不存在因为平台不同造成数据类型所占的字节数不同的问题。
例如:C++里面的int,因为平台不同,所占用的字节数不同。