Java的字面量和基本数据类型

手写笔记的转换

字面量

数据在程序中的运行格式

字面量类型

  • 整数类型:不带小数点的数字
  • 浮点数类型:带小数点的数字
  • 字符串类型:用双引号括起来的多个字符
  • 字符类型:用单引号括起来的单个字符
  • 布尔类型:true/false
  • 空类型:null

基本数据类型

  • 整型

    整型 取值范围 内存占用
    byte $-2^7 到 2^7-1 $ 1
    short $-2^{15} 到 2^{15}-1 $ 2
    int $-2^{31} 到 2^{31}-1 $ 4
    long(字面量之后加上大写L) $-2^{63} 到 2^{63}-1 $ 8
  • 浮点数

    浮点数 取值范围 内存占用
    float(字面量之后加上大写F) 4
    double 8
  • 字符

    字符 取值范围 内存占用
    char 2
  • 布尔

    布尔 取值范围 内存占用
    boolean

拓展知识

基本数据类型的特性

  • 大小固定:每种基本类型在不同的操作系统和平台上占用的内存大小是固定的,保证了跨平台的一致性。
  • 不支持 null:基本类型不能为 null,它们在声明时会有默认值,例如 int 的默认值是 0,boolean 的默认值是 false
  • 性能更高:基本类型直接存储在栈内存中,操作效率高于包装类型(如 IntegerDouble)。

基本数据类型的默认值

  • byteshortintlong 的默认值是 0
  • floatdouble 的默认值是 0.0
  • char 的默认值是 '\u0000'
  • boolean 的默认值是 false

提示

boolean 的存储

虽然 boolean 类型在逻辑上只占用 1 位,但 Java 的虚拟机对 boolean 的存储通常会根据系统架构分配 1 字节或更多位数的空间。这是因为 CPU 通常按字节操作内存,而非按位。

数据类型转换

数据类型不同不能直接参与运算,需要进行类型转换后再进行运算

隐式类型转换

将取值范围小的数据赋值给取值范围大的数据类型时,程序自动进行类型转换

提升规则

  • 取值范围小的数据类型和取值范围大的数据类型大的进行运算,取值范围小的数据类型先提升为取值范围大的数据类型大的再进行运算
  • byte,short,char在运算时直接提升为int再运算

显式类型转换

不允许直接将取值范围大的数据赋值给取值范围小的数据类型,需要开发者进行强制类型转换

语法格式

1
目标格式 变量名 = (目标格式) 被强制类型转换的变量名

注意事项

  • double/float 强制转为 int 时会截断小数部分
  • Java具有常量优化机制,编译器在编译过程中,将能够在编译期确定的常量表达式直接计算并替换成结果
最后更新于 2025-04-16 14:45 UTC
그 경기 끝나고 좀 멍하기 있었는데 여러분 이제 살면서 여러가
使用 Hugo 构建
主题 StackJimmy 设计