第3章 操作符

3.1 更简单的打印语句

3.2 使用Java操作符

3.3 优先级

3.4 赋值

    左值必须是一个明确的、已命名的变量。

    右值可以是任何常数、变量或者表达式。

    为对象进行赋值时,实际是把引用的值传给另一个引用。使得两个引用都指向同一个对象所以对对象赋值要非常谨慎。

    Java中的“==”对于基本类型是比较其数值是否相等,而对于引用永远都是比较其指向的对象地址是否相同 

3.4.1 方法调用中的别名问题

    方法传递的对象参数实际是一个引用。方法对参数所指的对象进行修改,实际就修改了方法外的那个对象。

3.5 算术操作符

     在创建Random对象时提供的随机数种子,用于随机数生成器的初始化值,随机数生成器对于特定的种子值总是产生相同的随机数序列。

     如果在创建时未设置随机数种子,则默认将当前时间作为随机数生成器的种子。

     Random类的nextInt(n)会获取的随机数取值范围为0——n-1

   3.5.1 一元加、减操作符

     一元减号是对数字取反,一元加号是较小类型的操作数提升为int。两个的优先级都比四则运算的高

3.6 自动递增和递减

3.7 关系操作符   

  3.7.1 测试对象的等价性

    不可以使用==,!=来直接比较对象,此时实际比较的是对象引用的值,而要做对象比较,就必须使用equals()

    基本类型不适用于以上规则。

    对于自己创建的类,如果未进行equals()的覆盖,则默认比较引用值,与使用==效果相同,而不是做对象比较。

3.8 逻辑操作符

    与或非在Java中只可比较布尔值

   3.8.1 短路

    与C,C++中相同。

3.9 直接常量

  对byte,short,int,char都可以使用Integer.toBinaryString(),将变量值转换为其对应的二进制数字。注意此时的类型将自动转换为int

  对long则使用Long.toBinaryString(),将变量值转换为其对应的二进制数字。

3.9.1 指数记数法

    1.39E-43f代表的是1.39*10的-43次方。

3.10 按位操作符

    &,|,^,~

    可以使用布尔类型进行按位“与”,“或”,“异或”,不可以进行按位“非”。

3.11 移位操作符

    只可用来处理整数类型。左移位操作符:<<,右移位>>

    Java中多了一个>>>无符号右移位操作符,无论正负高位补0

    可以与=连接使用。

3.12 三元操作符if-else

    表达式?值1:值2    会有返回值值1或值2。

3.13 字符串操作符+和+=

    Java不可以自己重载操作符。

    如果表达式以字符串起头,除非有括号,则后面所有操作数圈转换为字符串型,+变为连接作用。但如果先是整形,则+还是相加。

3.15 类型转换操作符

    对于大类型向小类型转换,就必须用显示的强制转换。

    布尔型不能转换,类只能在自己的继承树上转换。

  3.15.1 截尾和舍入

    将浮点型转换为整型值,总是进行截尾,若要进行舍入,就必须要使用Math.round()方法。

  3.15.2 提升

    如果对基本数据类型进行算术运算或位运算,只要比int小,那么在运算之前就会自动转换成int。要赋值给原来类型的变量,就必须进行强制类型转换。注意此时可能会丢失信息。

    表达式中出现的最大的数据类型决定了表达式最终结果的数据类型。

3.16 Java中没有sizeof

3.17 操作符小结

    小心int类型的溢出不会报错。

    除了boolean类型之外,任何一种基本类型都可通过类型转换变为其他基本类型。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值