Java语言提供了八种基本类型

Java 语言提供了八种基本类型

Java 中的基本数据类型(primitive types)一共有 8 种,它们不是类(没有 new),而是直接存储在栈上的值类型,效率最高。

下面是完整的八种基本类型及其详细说明:

序号类型关键字占用字节位数默认值取值范围包装类(Wrapper Class)
1整型-字节byte180-128 ~ 127Byte
2整型-短整型short2160-32,768 ~ 32,767Short
3整型int4320-2³¹ ~ 2³¹-1(约 -21亿 ~ 21亿)Integer
4整型-长整型long8640L-2⁶³ ~ 2⁶³-1Long
5浮点-单精度float4320.0f±3.4E38(有效数字约6~7位)Float
6浮点-双精度double8640.0±1.8E308(有效数字约15~16位)Double
7字符型char216” (空字符)0 ~ 65535(Unicode 字符)Character
8布尔型boolean1(理论)false只有两个值:true、falseBoolean

常用记忆口诀

“一二四八,长浮双 char 布”

  • 一:byte
  • 二:short
  • 四:int / float
  • 八:long / double
  • 长:long
  • 浮:float
  • 双:double
  • char:字符
  • 布:boolean

重要特性与注意事项

  1. 默认类型
  • 整数字面量默认是 int 类型
  • 浮点字面量默认是 double 类型
  • 示例: long l = 10000000000; // 编译错误 long l = 10000000000L; // 正确,加 L 或 l float f = 3.14; // 编译错误 float f = 3.14f; // 正确,加 f 或 F
  1. 自动类型转换(从小到大)
   byte → short → int → long → float → double
             ↑
           char → int

规则:小范围 → 大范围 可以自动转换(隐式转换)

  1. 强制类型转换(可能丢失精度)
   int i = 100;
   byte b = (byte)i;     // 正确
  1. 包装类与自动装箱/拆箱(JDK 5+)
   Integer num = 100;          // 自动装箱
   int value = num;            // 自动拆箱
  1. boolean 特别说明
  • 不能和整数进行转换(不像 C/C++)
  • 不能写 if (flag == 1)
  • 占用字节在 JVM 中实现相关,通常是 1 字节(不是 1 bit)

快速对比总结表(面试/刷题常用)

需求推荐类型说明
日常计数、循环索引int最常用,默认类型
大整数(超过 21 亿)long加 L 后缀
精确小数(货币、金融)BigDecimal不用 float/double
科学计算、普通小数double默认浮点类型,性能较好
节省内存(大数据量)byte/short数组中常用
字符处理char单个 Unicode 字符
逻辑判断boolean唯一可选的布尔类型

小练习(巩固理解)

public class PrimitiveTest {
    public static void main(String[] args) {
        byte b = 127;
        short s = 32767;
        int i = 2147483647;
        long l = 9223372036854775807L;

        float f = 3.14f;
        double d = 3.141592653589793;

        char c = 'A';           // 65
        char c2 = '\u4e2d';     // 中

        boolean flag = true;

        System.out.println("char 对应的 Unicode 值: " + (int)c);
    }
}

如果想深入了解某个类型的使用场景、精度丢失问题、包装类的缓存机制(IntegerCache)、自动装箱的性能陷阱等,欢迎继续提问!

文章已创建 4424

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部