一、Java操作符的作用类型

  1. 主作用

作用于操作数,生成新的值。

  1. 副作用

改变操作数自身的值。

二、Java操作符的作用范围

  1. 几乎所有操作符都只能操作基本类型

  2. 可以操作所有对象的操作符

“=”、“ ==”、“ !=”

  1. 特例

String类型支持“+”、“+=”操作符。

三、优先级

不做详述,学过C++都懂

四、详细介绍操作符

1. “=”赋值

(1)基础数据类型赋值
数据内容直接复制一份到新的地址空间。
(2)对象赋值
数据对象的地址引用复制一份给目标对象,两个对象指向同一个地址空间的数据。(别名现象)

2. 算术操作符

(1)运算操作符

  1. “+”、“-”、“*”、“/”、“%”
  2. 简化符号也可以使用“+=”、“-=”、“*=”、“/=”

(2)一元加、减操作符

  1. “-”、“+”
  2. 表示正负号
  3. 为了明确代码意义,尽量加括号包裹。例如:x=a*(-b)

3. 自动递增、递减

  1. --、++
  2. 使用方法与C语言相同

4. 关系操作符

  1. <、>、<=、>=、==、!=

比较两个对象是否相同
(1)基础数据类型

  1. ==、+=

(2)对象

  1. equal()

5.逻辑操作符

  1. &&、||、!
  2. Java中逻辑操作符只能用于布尔值,C/C++中逻辑操作符可以用于非布尔值
  3. 根据参数的逻辑关系,生成一个boolean类型的结果。

短路现象:一旦能够确认表达式的值就不再进行余下部分的计算。(编程易错点)

6.直接常量

(1)增加后缀标志类型

  1. 大写(小写)字母Ll代表long
  2. 大写(小写)字母Ff代表float
  3. 大写(小写)字母Dd代表double

(2)使用前缀标志进制

  1. 十六进制前缀:0X0x,后跟0~9a~f
  2. 八进制前缀:0,后跟0~7
  3. JavaC/C++没有二进制前缀,
  4. 但可用Integer.toBinaryString()和Long.toBinaryString()将八进制和十六进制数转换成二进制

(3)指数记数法

  1. 例如:1.39e-12139e10
  2. e在编程语言中经常表示10的幂

7.按位操作符

  1. &、|、^、~
  2. 与、或、异或、非
  3. 用法与C语言一致

8.移位操作符

  1. << 左移尾数补零
  2. >> 有符号右移
  3. >>> 无符号右移(Java独有)
  4. bytecharshort都会转化为int,结果也是int,只有低5位十进制数有效,参与移位运算,因为int32位,2的无次方
  5. long的结果为long,低6位十进制有效,参与移位计算

组合操作符

  1. <<=、>>=、>>>=

9.三元操作符

  1. boolean ? value1 value2;
  2. if-else条件操作符
  3. 用法同C++

10.字符串操作符

  1. +、+=

11.类型转换

(1)截尾

  1. 例如:
  2. a = 1.22;
  3. (long)a;

(2)舍入

  1. 四舍五入法java.lang.Math中有round()函数。
  2. a = 1.55
  3. Math.round(a);

(3)提升

  1. 操作符运算结果数据类型向上提升

12.不存在sizeof()函数

Java里面数据类型所占的字节数是恒定的,不存在因为平台不同造成数据类型所占的字节数不同的问题。
例如:C++里面的int,因为平台不同,所占用的字节数不同。