进制

  • 计算机中所有数据均以字节形式存储
  • 字节byte是计算机能够寻址的最小单位
  • integer 占用4个字节 第一个位为符号位
  • short 占用2个字节
  • char 占用2个字节,以ASCII码(最常用的字符对照表)表的方式与相应的数字一一映射
  • int 可以用八进制 0开头或十六进制 0x开头来表示

    原生数据类型

  • 变量的值就是那个数据的值

  • 可通过相应的装箱类型访问一些api,例如 MAX_VALUE
  • 超出最大容纳范围会进行溢出(无报错的风险)
  • 算数表达式类型不一致时,会默认提高低精度类型至高精度 1.0*a可以等价于(double)a
  • char类型参与计算时,使用的是对照表中的数字 char c=’1’ 等价 char c = 49

    装箱类型

  • 基本类型都有其对应的装箱类型,通过自动装拆箱完成

  • 容器类不接受原生数据类型,需要装箱类型
  • 可以赋值为null
  • 提供额外的方法 Integer.parseInt

    byte

  • 1个字节

    short

  • 2个字节

    int

  • 4个字节

  • 最大范围约21亿
  • 二进制0b、八进制0、十六进制0x

    long

  • 8个字节

  • 声明需要在后面加L,例如long c = 22_0000_0000L

    float

  • 4个字节

  • 浮点数是小数在计算机中的近似表示,不要对其进行相等比较,应使用Math.abs(f-0.1)<0.000001之类的判断
  • 声明需要在后面加F加F,例如float d = 0.0F

    double

  • 8个字节

  • 可以使用科学计数法,例如2e-3

    char

  • 2个字节

    boolean

  • true、false

    void

  • 在虚拟机内部也有对应的类型表示

引用数据类型

  • 变量的值是一个地址,数据真实值在堆内存中
  • 所有类声明的类型

    ==与equals

  • ==用来比较两者是否相同

  • equals 比较两个对象是不是相等,由各个类自身的方法来具体定义

    数组类型

    创建方式

  • int[] a = new int[10];

  • int[] b = new int[]{5,4,3,2,1}
  • int[] b = {5,4,3,2,1}
  • 二维 int[][] cc = new int[][]{}

    特性

  • jdk内部创建的类型,具有length属性,可用下标读写,for循环迭代

  • 长度不可变,不能扩容,不同于集合collection
  • 类型安全