当前位置: 首页 > ds >正文

Java 数据类型全解析:基础、引用与包装类全面梳理

Java 中的数据类型分为两大类:

🧩 一、基本数据类型(Primitive Types)

共 8 种,分为 数值类型、字符类型、布尔类型

类型占用内存默认值说明
byte1 字节0整数类型,范围 -128 ~ 127
short2 字节0整数类型,范围约 ±32K
int4 字节0常用整数类型
long8 字节0L长整型,大整数用它
float4 字节0.0f单精度浮点数
double8 字节0.0d双精度浮点数,推荐使用
char2 字节‘\u0000’字符类型,存储单个字符
boolean1 bitfalse逻辑类型,true 或 false

✅ 整数类型取值范围计算公式:

最小值:-2^(n-1)
最大值:2^(n-1) - 1

其中 n 是位数,short 是 16 位。
一个字节占 8 位

🔢 举例 short 的取值范围(2字节16位):

最小值:-2^(16 - 1) = -2^15 = -32,768
最大值:2^15 - 1 = 32,767

✅ 所以 short 范围为:

-32,768 ~ 32,767

🔍 补充理解:为什么是 2^(n-1) 而不是 2^n

因为:

  • Java 的整数都是带符号的二进制数(采用补码表示)
  • 最高位(第 n 位)是符号位
    • 0 表示正数
    • 1 表示负数
  • 所以有效数值的位数只有 n - 1

💡 补充说明:

  • 整数类型默认是 int,使用 long 需加 L 后缀。
  • 小数类型默认是 double,float 需加 f 后缀。
  • char 使用单引号包字符,例如 'A'
  • boolean 只表示真假,不能像 C 那样用整数代替。

🧩 二、引用数据类型(Reference Types)

引用类型存储的是对象的地址(引用),不直接存储数据。

类型示例说明
类(Class)自定义类或 Java 内置类,如 StringScanner
接口(Interface)Runnable, List, Map
数组(Array)int[], String[]
枚举(Enum)自定义枚举类型
注解(Annotation)Java 特有的一种元数据类型

🔄 基本类型 vs 引用类型

特性基本类型引用类型
存储内容真实值(直接存储)引用(地址)
是否可为空❌ 不可以为 null✅ 可以为 null
是否有方法❌ 没有(除包装类)✅ 有方法
默认值如 0, 0.0, falsenull

📦 包装类(Wrapper Classes)

Java 提供了基本类型的封装类,用于在需要对象的场景下使用基本类型(如集合):

基本类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

包装类是对象,可以和泛型、集合等一起使用。


📊 总结图:Java 数据类型分类

在这里插入图片描述

http://www.xdnf.cn/news/283.html

相关文章:

  • 【杂说杂谈】国产替代计划的思考
  • 使用droidrun库实现AI控制安卓手机
  • C++17 信号量模拟实现
  • AI测试用例生成平台
  • 4090租用,各云GPU平台价格对比清单及建议
  • 第十五节:实战场景-React路由权限控制方案
  • ModbusTCP 转 Profinet 主站网关
  • 2 celery环境搭建
  • 从实验室到肌肤:解码抗衰老科学革命与Dr.Jin麦角硫因胶囊的抗氧化突围
  • 香港服务器CPU对比:Intel E3与E5系列核心区别与使用场景
  • Aladdin显卡多任务运行教程
  • TVM计算图分割--Collage
  • 红黑树insert笔记
  • 2025年03月中国电子学会青少年软件编程(Python)等级考试试卷(六级)真题
  • 使用Service发布应用程序
  • std::set (C++)
  • #手动控制windows更新时间(非常安全,可随时恢复)
  • C++ 网络层接口设计与实现:基于 Socket 编程
  • L2-018 多项式A除以B
  • SQL-exists和in核心区别​、 性能对比​、适用场景​
  • 2.1 数据处理
  • 【 解决Cline插件无法激活及DeepSeek模型请求卡顿或者无法加载问题】
  • CMake使用教程
  • IO流(二)
  • 从 Transformer 到文本生成 (From Transformer to Text Generation)
  • STM32---GPIO
  • Linux——进程通信
  • Spring MVC 初体验~~
  • 自定义 el-menu
  • 【jenkins】首次配置jenkins