一、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~7Java、C/C++没有二进制前缀,但可用Integer.toBinaryString()和Long.toBinaryString()将八进制和十六进制数转换成二进制
(3)指数记数法
例如:1.39e-12、139e10e在编程语言中经常表示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.55Math.round(a);
(3)提升
操作符运算结果数据类型向上提升
12.不存在sizeof()函数
Java里面数据类型所占的字节数是恒定的,不存在因为平台不同造成数据类型所占的字节数不同的问题。
例如:C++里面的int,因为平台不同,所占用的字节数不同。
