003.数据类型

1. java 的数据类型

  • 分为两大类型: 基本数据类型和引用数据类型

  • 基本数据类型又称为原生数据类型, 引用数据类型又称为对象数据类型

  • 基本数据类型:
    不同数据类型所占用的内存空间并不一样, 选择时按需选取

    • 数值型:
      • 整数类型: byte, short, int, long
      • 小数类型: float, double
    • 字符型: char, string
    • 布尔型: boolean
  • 引用数据类型:

    • 数组
    • 接口

2. 基本数据类型

boolean 类型

  • 作用: 通常用于逻辑运算和程序流程控制(条件选择/循环)
  • 取值: 该类型只能是 true/false (不可用1/0取代) (但在 JVM 实际处理是非 0 为真, 0 为假)
  • 占位: 1bit

整数类型类型

  • byte-short-int-long
    这几个类型区别在于数据类型所占内存空间的位数长短

  • 占位: 分别为 1-2-4-8 字节

  • 不同进制数字表示

    • 二进制数: 要求 0B 或 0b 开头
    • 八进制数: 要求以 0 开头
    • 十进制数: 直接写即可
    • 十六进制数: 要求 0X 或 0x 开头
  • java 语言的整形常量默认用 int 类型, 声明 long 类型变量后,
    在名称后面加上 "l" 或 "L", 一般来说加 "L"

  • 可在数字之间加下划线 "_", 用以分辨位数, 输出其实不影响

小数类型

  • float-double float 为单精度浮点数, 占位 4 字节,
    double 为双精度浮点数, 占位 8 字节.
    但是二者都不能表示精确的小数.

  • java 的浮点类型常量有两种表现形式:

    • 十进制形式: 直接写即可
    • 科学计数法形式: 如 3.25e2, 1000E-2 等
      科学计数法表达式返回的结果是 double 类型 注: java 中只有浮点型的变量才可接收科学计算式结果
  • 默认情况下, 一个浮点类型的字面量默认是 double 类型,
    若要声明一个常量为 float 类型, 则需在后面加 f 或 F.

  • float 和 double 都不能精确表示小数, 因此在精确度要求高的系统中,
    会用 BigDecimal 类型表示, 它可以表示任意精度的数据

字符类型

  • char
    char 表示 2 字节的无符号整数或 Unicode 字符

  • String
    String 是一个类, 表示字符串.

3. 数据类型转换

数据过大和溢出

  • 当要表示的数据超出数据类型的临界范围时, 称为溢出.
  • 溢出情况发生时, 程序没有做数据范围检查处理, 此时会出现数据紊乱情况.

自动类型转换

  • 在八大基本数据类型中, boolean 不属于数值类型, 不参与转换
  • 自动类型转换, 占位小的数据类型转换成占位大的数据类型,
    系统可以可以自动进行转换,
    反之不行, 因为可能会造成精度损失.

强制类型转换

  • 若想占位大的数据类型转换成占位小的数据类型,
    需要使用强制转换符
  • 使用格式 (目标类型)目标转换变量
  • 如:
double pi = 3.14;
float pi2 = (float)pi;

表达式类型的自动提升

  • 当一个算术表达式中包含多个基本数据类型(boolean 除外)的值时,
    整个算术表达式的数据类型将在数据运算时出现自动提升,
    其规则是:
    所有的 byte short char 类型被自动提升到 int 类型;
    整个表达式的最终结果类型被提升到表达式中类型最高的类型;

你可能感兴趣的:(Java,笔记)