基本数据类型——Java

一、基本数据类型分类

Java共有 8种基本数据类型,分为4类:

类别数据类型位数默认值取值范围/描述
整型byte8位0-128 ~ 127
short16位0-32,768 ~ 32,767
int32位0-2³¹ ~ 2³¹-1
long64位0L-2⁶³ ~ 2⁶³-1
浮点型float32位0.0f单精度,IEEE 754
double64位0.0d双精度,默认浮点类型
字符型char16位'\u0000'Unicode字符(0 ~ 65,535)
布尔型boolean1位*falsetrue 或 false

注意

  1. 局部变量必须显式初始化,无默认值(否则编译错误)。

二、类型

1、整型(Integer Types)

(1)特点
  • 直接存储数值,无小数部分。

  • 字面量表示方式:

int decimal = 100;       // 十进制
int binary = 0b1100100;  // 二进制(前缀0b)
int octal = 0144;        // 八进制(前缀0)
int hex = 0x64;          // 十六进制(前缀0x)
long big = 100L;         // long类型需加L/l后缀

(2)数值可读性优化:允许用下划线分隔

int million = 1_000_000; // 等价于1000000

(3)使用场景:

  • byte:节省空间(如文件读写、网络传输)。

  • int:最常用,循环计数、数学运算。

  • long:处理极大整数(如时间戳)。

2、浮点型(Floating-Point Types)

(1)特点
  • 遵循IEEE 754标准,存在精度问题。

  • 字面量默认是 double 类型,声明 float 需加 F/f 后缀:

float f = 3.14f;    // 必须加f
double d = 3.14;    // 默认double
double sci = 1.23e5; // 科学计数法(123000.0)

(2)精度问题示例

System.out.println(0.1 + 0.2); // 输出0.30000000000000004
(3)使用场景
  • float:节省内存(如大规模浮点数组)。

  • double:默认选择,高精度计算。

3、字符型(char

(1)特点
  • 单引号包裹,表示单个Unicode字符。

  • 可转义特殊字符(如 \n\t\\)。

  • 可直接赋值Unicode编码或整数值:

char c1 = 'A';          // 直接字符
char c2 = 65;           // ASCII码('A')
char c3 = '\u0041';     // Unicode形式('A')
注意事项
  • 与 int 兼容(可通过ASCII码转换):

int code = 'A'; // code = 65

4、布尔型(boolean

特点
  • 仅允许 true 或 false,不能与整数互换。

  • 用于条件判断(如 ifwhile)。

错误示例
if (1) { ... } // 错误:Java不支持非布尔条件

5、类型转换

(1)自动转换(隐式转换)
  • 小类型 → 大类型(如 byte → int):

byte b = 10;
int i = b; // 自动转换
(2)强制转换(显式转换)
  • 大类型 → 小类型,需强制转换,可能丢失数据:

int i = 200;
byte b = (byte) i; // b = -56(溢出)

(3)转换规则

byte → short → int → long → float → double
char → int → ...

三、包装类(Wrapper Classes)

每个基本类型对应一个包装类,用于对象操作(如集合类):

基本类型包装类示例
byteByteByte.valueOf((byte)1)
shortShortShort.valueOf((short)2)
intIntegerInteger.valueOf(3)
longLongLong.valueOf(4L)
floatFloatFloat.valueOf(5.0f)
doubleDoubleDouble.valueOf(6.0)
charCharacterCharacter.valueOf('a')
booleanBooleanBoolean.valueOf(true)
(1)自动装箱与拆箱
Integer a = 10;    // 自动装箱(int → Integer)
int b = a;         // 自动拆箱(Integer → int)

(2)默认值与内存分配

  • 成员变量:有默认值(如 int 为 0)。

  • 局部变量:必须显式初始化,否则编译错误。

  • 内存位置:基本类型变量存储在栈内存,对象在堆内存。

四、示例代码

public class PrimitiveTypes {
    // 成员变量(有默认值)
    int defaultInt;         // 0
    double defaultDouble;   // 0.0
    boolean defaultBoolean; // false

    public static void main(String[] args) {
        // 局部变量必须初始化
        int localInt = 100;
        char grade = 'A';
        float price = 19.99f;
        long population = 7_900_000_000L;

        // 强制类型转换
        double pi = 3.14159;
        int approxPi = (int) pi; // approxPi = 3
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值