java编程思想3-操作符

1. 赋值

  1. 基本类型的复制中基本类型存储了实际的数值,而并非指向一个对象的引用,所以赋值时候是直接将一个地方的内容复制到另一个地方,例如a=b,b的内容就复制给了a,若修改a,则不会影响b;但是在为对象赋值时候,真正操作的是对对象的引用,对象赋值是对引用进行复制
  2. Random类里面有个参数 ,种子,用于随机数生成器的初始化值,随机数生成器对于特定的 种子值总是产生相同的随机数序列,为空就会将当前时间作为种子。nextInt()的参数设置的是随机数的上限,下限为0,生成 0(包含)到n(不包含)的整数
  3. 自动递增和递减:前缀递增会先执行运算,再生成值;后缀递增会先生成值,再执行运算
a = 2
++a		3
a++		2
  1. 关系操作符:
    a. ==比较的是对象的地址 ,equals方法比较的是对象的实际内容。但是equals()的默认行为是比较引用,所以除非自己覆盖equals方法。但是这个不适用于基本类型,基本类型直接使用==或!=即可。
  2. 指数计数法:
    a. 1.39e-43代表:1.39x10-34
  3. 按位操作符:
    a. 按位与(&)、按位或(|)、按位异或(^)(位数相同为0,不同为1)、非(~)
  4. 移位操作符:
    a.
    Column 1 Column 2 Column 3
    左移位操作符 << 将操作符左边的操作数向左移动右侧指定的位数,低位补0
    有符号右移位操作符 >> 将操作符左边的操作数向右移动右侧指定的位数,符号为正,则高位插0
    无符号右移位操作符 >>> 无论正负,都在高位插0
    b.
    对char、byte、short类型的数值移位处理,移位前会被转换成int类型,只有右侧的5个低位才会用到。若对long类型数值进行处理,最后结果也是long,只会用到数值右端的低6位。
    c.
    负数移位操作举例:

-3 << 2

00000000 00000000 00000000 00000011      +3在计算机中表示
11111111 11111111 11111111 11111100      反码
11111111 11111111 11111111 11111101      在反码基础上加1,结果即-3
11111111 11111111 11111111 1111110100    左移2位,补0,结果为负数,就是补码了,求原码(去掉前面多出两位)
10000000 00000000 00000000 00001011      反码
10000000 00000000 00000000 00001100      在反码基础上加1,即结果-12

-6 >> 2

00000000 00000000 00000000 00000110       +6在计算机中表示方法
11111111 11111111 11111111 11111001        反码
11111111 11111111 11111111 11111010        -6在计算机中的表示
1111111111 11111111 11111111 11111010       右移两位,负数补1,结果为负数
1000000000 00000000 00000000 000001       反码
1000000000 00000000 00000000 000010       结果为-2

-6 >>> 2

00000000 00000000 00000000 00000110      +6在计算机中表示方法
11111111 11111111 11111111 11111001      反码
11111111 11111111 11111111 11111010      -6在计算机中的表示
0011111111 11111111 11111111 11111010  右移两位,补充0,结果为1073741822
  1. 类型转换操作符
    a. float或double强转为int时,采取舍,如果想人,用Math.round()

  2. 负数知识拓展:

    a. 无符号数和有符号数的范围区别:无符号数中,所有的位都用于直接表示该值的大小;有符号数中最高位用于表示正负
    b. 无论是字符类型,或者是整数类型,也无论这个整数是几个字节。它都用全1来表示 -1。比如一个字节的数值中:1111 1111表示-1。1111 1111 - 1 = 1111 1110,而1111 1110就是-2。当减到只剩最高位用于表示符号的1以外,其它低位全为0时,就是最小的负值了,在一字节中,最小的负值是1000 0000,也就是-128。
    

你可能感兴趣的:(java编程思想,java)