---
sidebar_position: 4
tags: [Language, Java, Operator, Expression]
---

# Operators

## 短路与或

- &&:第一个操作数为假不再向后运算
- ||:第一个操作数为真不再向后运算

## 移位符

有符号右移>>:最高位补符号位 左操作数 int/long, 右操作数 mod32/mod64

> e.g. int a >> 33 即 int a >> 1

无符号右移>>>:最高位补 0

## 字符串连接

`+`: 左右操作数 String 字符串/其他类型(自动被转化为 String)

## 判断

`==`:

- 基本类型值相等, 引用类型引用相等
- 基本类型: 转换后比较; boolean 型不与 int 型比较
- 引用类型: 指向两个不同对象实例的变量不相等;若判断两个对象实例内容是否相等, 必须调用 equals()方法

## 强制类型转换

`()`

- 只能在继承层次内进行强制类型转换(同一家族)
- 将父类转换为子类前, 应使用 instanceof 运算符进行检查

## 表达式

- 整数提升:算术运算前 byte,short,char 提升为 int
- 没有","运算符和表达式语句
