1)在最底层,Java中的数据是通过使用操作符来操作的。
3.1更简单的打印语句
注:本节没有实质内容,作者分享了自己封装Java的打印语句,使它不再这么繁琐,并且之后的所有示例程序中都将使用这种形势的打印语句进行结果输出。
3.2 使用Java操作符
1)操作符能够接收一个或多个参数,并生成一个新值。
2)几乎所有的操作符都只能操作“基本类型”,例外的操作符是 “=”、“==” 和 “!=”,这些操作符能够操作所有的对象。除此之外String类支持 “+” 和 “+=”。
3.3优先级
注:这一节作者并没有详细的描述操作符的优先级,分享一下网友总结的操作符优先级表,该表中优先级按照从高到低的顺序书写,也就是优先级为1的优先级最高,优先级14的优先级最低。
3.4赋值
1)赋值使用操作符“=”,表示“取右边的值,把它复制给左边”。右值可以使任何常熟、变量或者表达式(它能生成一个值),但左值必须是一个明确的已命名的变量。
2)不能把任何东西赋给一个常数,常数不能作为左值。
3)基本类型存储了实际的数值,而并非指向一个对象的引用,所以在为其赋值的时候,是将一个地方的内容复制到了另一个地方。
3.5算数操作符
1)Java的算术操作符包括了加号(+)、减号(-)、除号(/)、乘号(*)以及取模操作符(%)。
2)整除除法会直接舍弃结果的小数位,而不是四舍五入的圆整结果。
3)Java也是用来自C语言的简化符号同时进行运算和赋值操作,例如 x+=4;
3.6自动递增和递减
1)自动递增操作符是“++”吗,自动递减操作符是“--”。
2)自动递增和自动递减分前缀式和后缀式,前缀式(如++a或--a)会先执行运算再生成值,后缀式(如a++或a--)会先生成值再执行运算。
3.7关系操作符
1)关系运算符包括小于(<)、大于(>)、小于或等于(<=)、大于或等于(>=)、等于(==)、不等于(!=).
2)等于和不等于适用于所有的基本数据类型,而其他比较符不适用于boolean类型,因为boolean类型的值只能为true和false。
3.7.1测试对象的等价性
1)必将两个对象的实际内容是否相同需要使用方法equals()。但这个方法不适用于基本类型。
3.8逻辑操作符
1)逻辑操作符与(&&)、或(||)、非(!)能根据参数的逻辑关系生成一个布尔值(true或false)。
2)与或非操作只可应用于布尔值。
3.8.1 短路
1)使用逻辑操作符时会遇到短路现象,即一旦能够明确无误的确定整个表达式的值就不用再计算表达式剩余部分了。
3.9直接常量
1)程序中需要用与直接常量相关的某些字符来额外增加一些信息,从而让编译器准确的识别数据类型。
2)直接常量后面的后缀字符标志了他的类型,大写的L(或小写)代表long,大写的F(或小写)代表float,大写的D(或小写)代表double。
3.10 按位操作符
1)按位操作符包含:按位与(&)、按位或(|)、按位异或(^)、按位非(~)
2)按位操作符可与等号连接使用,&=、|=、^=都是合法的,但是~属于一目操作符,所以不能与等号联合使用。
3.11移位操作符
1)移位操作符的运算对象是二进制的“位”。
2)左移操作符(<<)能按照操作符右侧指定的位数将操作符左边操作数向左移动(在低位补0)。
3)“有符号”移操作符(>>)能按照操作符右侧指定的位数将操作符左边操作数向右移动,若符号为正则在高位插入0,若符号为负则在高位插入1.
4)Java提供了一种无符号的右移操作符,无论正负,都在高位插入0。
5)移位可与等号组合使用。
3.12三元操作符
1)三元操作符也成为条件操作符,表达形式为:
boolean-esp ? value0 : value1 ;
他的意思为:若果布尔表达式(boolean-esp )的结果为true,就计算value0 ,如果布尔表达式(boolean-esp )的结果为false,就计算value1 。
3.13 字符串操作符 + 和 +=
1)Java中使用 + 和 += 连接不同的字符串。