杰瑞科技汇

Java基本数据类型取值范围有哪些?

Java 的基本数据类型共有 8 种,可以分为四大类:整数类型浮点类型字符类型布尔类型

Java基本数据类型取值范围有哪些?-图1
(图片来源网络,侵删)

整数类型

整数类型用于没有小数部分的数字,它们可以是正数、负数或零。

数据类型 大小 (字节) 默认值 取值范围 备注
byte 1 0 -128 到 127 [-2⁷, 2⁷-1]
节省空间,常用于大型数组,替代 int
short 2 0 -32,768 到 32,767 [-2¹⁵, 2¹⁵-1]
较少使用,除非有特殊需求(如 JNI 调用)
int 4 0 -2,147,483,648 到 2,147,483,647 [-2³¹, 2³¹-1]
最常用的整数类型,默认选择
long 8 0L -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 [-2⁶³, 2⁶³-1]
用于表示非常大的整数,后面需要加 Ll

代码示例:

public class IntegerTypes {
    public static void main(String[] args) {
        byte b = 100;
        short s = 20000;
        int i = 1000000;
        long l = 15000000000L; // 注意:long类型的字面量需要加L
        System.out.println("byte: " + b);
        System.out.println("short: " + s);
        System.out.println("int: " + i);
        System.out.println("long: " + l);
    }
}

浮点类型

浮点类型用于表示带有小数部分的数字,即实数,它们遵循 IEEE 754 标准。

数据类型 大小 (字节) 默认值 取值范围 精度 备注
float 4 0f 大约 ±3.40282347E+38F (正负) 约 7 位十进制数字 单精度浮点数,内存占用小,但精度有限
double 8 0d 大约 ±1.79769313486231570E+308D (正负) 约 15 位十进制数字 双精度浮点数,精度更高,是默认的浮点类型

注意:

Java基本数据类型取值范围有哪些?-图2
(图片来源网络,侵删)
  • float 类型的字面量需要加 fF14f
  • double 类型的字面量可以加 dD,也可以不加,1414d
  • 浮点数不精确:由于二进制表示的局限性,浮点数无法精确表示所有十进制小数,因此在需要精确计算的场景(如金融)中应避免使用。

代码示例:

public class FloatingPointTypes {
    public static void main(String[] args) {
        float f = 3.14f; // 必须加f
        double d = 3.141592653589793; // 默认是double
        System.out.println("float: " + f);
        System.out.println("double: " + d);
        // 浮点数不精确的例子
        System.out.println("0.1 + 0.2 = " + (0.1 + 0.2)); // 输出 0.30000000000000004
    }
}

字符类型

数据类型 大小 (字节) 默认值 取值范围 备注
char 2 '\u0000' \u0000\uffff (即 0 到 65,535) Unicode 字符,用单引号括起来,如 'A''好'

注意:

  • Java 使用 Unicode 字符集,char 类型可以存储任何字符,包括中文字符。
  • char 本质上是一个无符号的 16 位整数,所以可以进行算术运算。

代码示例:

public class CharType {
    public static void main(String[] args) {
        char c1 = 'A';
        char c2 = '中';
        char c3 = 65; // 等同于 'A'
        System.out.println("c1: " + c1);
        System.out.println("c2: " + c2);
        System.out.println("c3: " + c3);
    }
}

布尔类型

数据类型 大小 (字节) 默认值 取值范围 备注
boolean 1 (理论上) false truefalse 用于逻辑判断,只能取这两个值

注意:

Java基本数据类型取值范围有哪些?-图3
(图片来源网络,侵删)
  • boolean 类型的大小在 Java 语言规范中并未明确规定,JVM 会将其实现为 1 字节(int)或 4 字节(int)以提升性能。不要依赖其具体大小
  • boolean 类型不能与整数类型(如 int)进行转换或运算,这与 C/C++ 不同。

代码示例:

public class BooleanType {
    public static void main(String[] args) {
        boolean isJavaFun = true;
        boolean isFishTasty = false;
        System.out.println("Is Java fun? " + isJavaFun);
        System.out.println("Is fish tasty? " + isFishTasty);
    }
}

总结表格

分类 数据类型 大小 (字节) 默认值 取值范围
整数 byte 1 0 -128 ~ 127
short 2 0 -32,768 ~ 32,767
int 4 0 -2,147,483,648 ~ 2,147,483,647
long 8 0L -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
浮点 float 4 0f 大约 ±3.40282347E+38F
double 8 0d 大约 ±1.79769313486231570E+308D
字符 char 2 '\u0000' \u0000\uffff (0 ~ 65,535)
布尔 boolean 1 (理论) false true, false

何时使用哪种类型?

  • 整数
    • 优先使用 int,除非有特殊原因。
    • 如果确定数值不会超过 byteshort 的范围,并且有大量数据需要存储(如数组),可以考虑使用 byteshort 以节省内存。
    • 当数值可能超过 int 的范围时,必须使用 long
  • 浮点数
    • 优先使用 double,它的精度更高,是 Java 中浮点数的默认选择。
    • 只有在内存极其紧张,且单精度(7位小数)足够满足需求时,才考虑使用 float
  • 字符
    • 使用 char 存储单个字符。
  • 布尔
    • 使用 boolean 表示逻辑真/假,用于条件判断和循环控制。

希望这份详细的总结能帮助你完全理解 Java 的基本数据类型!

分享:
扫描分享到社交APP
上一篇
下一篇