chapter04_Java基础知识_10_基本类型与运算

  • char和short类型都是2个字节,区别是char的范围是[0,65535], short的范围是[-32768, 32767]

  • 不可变类

    (1) 一旦创建了不可变类的实例,实例中的成员变量就不能被修改了(只读)

    (2) 常见的不可变类有 Integer, String等

    (3) 创建不可变类的原则

    1° 类中所有成员变量使用private修饰

    2° 类中没有更改成员变量的方法(如setXXX()),只能通过构造函数一次生成

    3° 确保类中的方法不被子类覆盖(用final修饰类或者方法)

    4° 如果类中的成员变量不是不可变类或基本类型,在__构造函数__和__getXXX()__方法中,通过clone的方式初始化或返回值

  • 基本类型转换

    (1) 自动转换: 低精度可以向高精度自动转换

    注意事项

    byte,char,short类型的数据在参与运算时,会自动转换为int,然后再运算,返回的结果也是int, 所以short a = 1; a = a + 1; 会报错。

    但是,+=, -=, *=, /=, ++, --返回的还是类型本身,不会报错

    所有基本类型和boolean都不存在自动转换

    不同类型的数据运算时,先转为容量最大的那种,再运算,返回的结果也是容量最大的数据类型

    (2) 强制转换:从高精度数据向低精度数据转换时,要显式进行转换

  • Math.round(x) <=> (x + 0.5)

  • (1)

      >> : 有符号右移
    
      >>>: 无符号右移(可以把多的一个>想象成最前面的0)
    
      << : 左移
    

    (2) char, byte, short使用左右移运算符时,先将数值转为int,再左/右移,返回的也是int类型

  • __Java默认使用Unicode,因此一个char如果代表英文,那么它实际是1个字节;如果代表中文,那么实际是2个字节

你可能感兴趣的:(chapter04_Java基础知识_10_基本类型与运算)