Java八大基本类型

1. 整数类型:精确的数值计算

byte (字节型)
  • 内存:1字节 (8位)

  • 范围:-128 ~ 127

  • 场景:是最小的整数类型,适合用于节省内存,例如在处理文件或网络流时存储小范围整数数据

short (短整型)
  • 内存:2字节 (16位)

  • 范围:-32,768 ~ 32,767

  • 场景:较少使用,通常用于在需要节省内存且数值范围在该区间的场景。

int (整型) - 最常用
  • 内存:4字节 (32位)

  • 范围:-2^31 ~ 2^31-1 (约±21亿)

  • 细节:最常用的整数类型,可满足大多数日常编程中整数计算的需求。

long (长整型)
  • 内存:8字节 (64位)

  • 范围:-2^63 ~ 2^63-1

  • 声明 :用于表示非常大的整数,当 int 类型无法满足需求时使用,定义时数值后需加 L 或 l。

    long lightYear = 9460730472580800L; // 一光年的米数


2. 浮点类型:科学计算的利器

float (单精度浮点)
  • 内存:4字节

  • 范围:约±3.4e38 (7位有效数字)

  • 声明 :单精度浮点数,用于表示小数,精度相对较低,定义时数值后需加 F 或 f

  • 注意 :金融计算禁用(精度问题)

    float piApprox = 3.14159F; // 圆周率近似值

double (双精度浮点) - 推荐默认
  • 内存:8字节

  • 范围:约±1.7e308 (15位有效数字)

  • 细节 :Java中浮点字面量默认是double

    double atomSize = 0.0000000001d; // 原子尺寸

浮点陷阱 :

永远不要用==直接比较浮点数!

正确做法:

复制代码
double a = 0.1 + 0.2;
double b = 0.3;
boolean isEqual = Math.abs(a - b) < 1e-10; // 允许微小误差

3. 字符类型:文本的基础单元

char (字符型)
  • 内存:2字节 (Unicode编码)

  • 范围:\u0000 ~ \uFFFF (0~65535)

  • 本质 :本质是无符号整数

    char letter = 'A';
    char chineseChar = '中'; // 支持Unicode
    char newLine = '\n'; // 转义字符

注意:char ≠ String!
String是对象,而char是基本类型。


4. 布尔类型:逻辑的开关

boolean (布尔型)
  • 取值 :仅true或false

  • 内存:JVM未明确定义(通常按1字节处理)

  • 核心作用:控制程序流程

    boolean isRaining = true;
    if (isRaining) {
    System.out.println("带伞出门!");
    }

重要规范 :

Java中禁止 用0/1代替false/true,与C语言不同。


关键特性总结表

类型 内存 默认值 典型场景
byte 1字节 0 二进制数据、紧凑数组
short 2字节 0 兼容性场景、小范围整数
int 4字节 0 通用整数计算(默认选择)
long 8字节 0L 极大整数(时间戳、天文数字)
float 4字节 0.0f 低精度科学计算
double 8字节 0.0d 高精度计算(默认浮点)
char 2字节 '\u0000' 单个字符处理
boolean - false 逻辑判断
相关推荐
特立独行的猫A3 小时前
用仓颉语言 cj-tauri 框架,五分钟给娃做了个鸿蒙形近字游戏
java·后端·python
大可不必了8 小时前
03 函数定义和调用
开发语言·python
I_belong_to_jesus8 小时前
C++关于分支预测的优化1
开发语言·c++·算法
承渊政道9 小时前
【Python编程—从入门到实践】(记分与闯关:用Python+Pygame,打造越战越精彩的太空大战!)
开发语言·python·pycharm·游戏程序·pygame
爱学习的程序媛9 小时前
Python常用框架梳理
开发语言·后端·python·ai·web·后端框架·python框架
budingxiaomoli10 小时前
Spring统一功能处理
java·后端·spring
eggwyw10 小时前
Anaconda安装卸载的详细流程指南
开发语言·python
Flynn Liang11 小时前
可观测性与成本治理:一次对话的 17 个观测点
java·langchain·可观测性·micrometer·langchain4j·token 成本·llm 监控
金銀銅鐵12 小时前
带您看懂字节码指令(三):同一行加法,为什么有四种指令
java·jvm
another heaven15 小时前
【C/C++ Ranges 是零开销抽象吗?拆开管道、惰性求值和编译期膨胀】
c语言·开发语言·c++