JAVA编程思想第四版笔记 三、操作符

三、操作符

3.1 更简单的打印语句

import static sun.misc.Version.print;
print();

3.2 使用java操作符

操作符能接受一个或多个参数,并生成一个新值。

基本类型:+,-,*,/,=

对象:=,==,!=

String还支持:+,+=

3.3 优先级

先乘后加减 ,括号优先

String后面跟一个+后又跟着非String元素时,会转换为String

3.4 赋值

=取右边值给左边的

3.4.1 方法调用中的别名问题

两个对象含有同名的变量

public static void main(String[] args) {
    Test t1 = new Test();
    Test t2 = new Test();
    t1.value = 1;
    t2.value = 2;
    print("t1 = "+t1+"t2 = "+t2);
    t1 = t2;//对t1赋值这个引用就会被覆盖别名现象;为避免就用t1.value = t2.value;
    print("t1 = "+t1+"t2 = "+t2);
    t1.vlaue = 3;
    print("t1 = "+t1+"t2 = "+t2);
}
//output
t1 = 1 t2 = 2
t1 = 2 t2 = 2
t1 = 3 t2 = 3

3.5 算术操作符

3.5.1 一元加、减操作符

3.6 自动递增和递减

前缀式:++i --i 会先执行运算,再生成值

后缀式:i++ i-- 会生成值,再执行运算

3.7 关系操作符

boolean:true false

<,>,<=,>=,==,!=

3.7.1 测试对象的等价性

==比较两个值是否相等,如果是对象比较两个对象地址是否相同

比较两个对象的内容是否相等用equals()

3.8 逻辑操作符

与&& 或|| 非!根据参数逻辑关系生成布尔值;对浮点数要求严格,有差就不等同

3.8.1 短路

一旦能够明确无误的确定整个表达式的值,就不再计算表达式余下部分了。

例如 test1(0)&&test2(1)&&test3(2) 加入test1为true,继续执行,test2为false,结果肯定为false所以后边不会计算

3.9 直接常量

后缀字符标志了类型L为long,F为float,D为double

前缀0x十六进制数后跟随0-9或小写a-f表示。

3.9.1 指数计数法

e代表2.718

1.39e == 1.39*2.718^-43

3.10 按位操作符

&与 |或 ~非 ^异或

5二进制是 0000 0000 0000 0101

4二进制是 0000 0000 0000 0100

5&4 : 0000 0000 0000 0100//相同位都为1为1,否为0

5|4 : 0000 0000 0000 0101//相同位有一个为1即为1

5^4 : 0000 0000 0000 0001//相同位只有一个1即为1

~5 : 1111 1111 1111 1010//1为0,0为1

3.11 移位操作符

<<左移位 右侧指定位数将操作符左边的操作数向左(低位补0) 
>>右移位 右侧指定位数将操作符左边的操作数向右;有符号扩展;符号为正高位插0;符号为负,高位插1
>>>"零扩展":无论正负都在高位插0.

3.12 三元操作符 if-else

三元操作符也称条件操作符

布尔表达式?value0 :value1

若为true就value0;false就value1

3.13 字符串操作符+和+=

int x = 0,y = 1,z = 2;
String s = "s"
print(s+x+y+z);
print(x+""+s);
print(s+(x+y+z));
//output
s012
0s
s3

3.14 使用操作符时常犯的错误

=用成==;按位与和按位或用成与和或

3.15 类型转换操作符

大转小窄化转换(强制类型转换);小转大扩展转换

3.15.1 截尾和舍入

float和double转换为int要截尾,例如29.7转int为29

想要得到舍入的结果就要用java.lang.Math.roud()方法

3.16 java没有sizeof

sizeof()操作符可为数据项分配字节数。java不需要所有的数据类型在机器中大小都是相同的。

3.17 操作符小结

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孙嵓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值