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

Java 数据类型分类

Java 是一种强类型语言,每个变量和表达式都有明确的数据类型。Java 的数据类型可分为两大类:基本数据类型(Primitive Types)和引用数据类型(Reference Types)。

一、基本数据类型(8 种)

基本数据类型直接存储数据值,而非引用地址,分为以下四类:

1. 整数类型(整数,无小数部分)
  • byte

    • 占用空间:1 字节(8 位)
    • 取值范围:-128 ~ 127
    • 用途:节省内存(如处理文件、网络数据)
  • short

    • 占用空间:2 字节(16 位)
    • 取值范围:-32768 ~ 32767
    • 用途:适用于较小范围的整数
  • int(默认整数类型)

    • 占用空间:4 字节(32 位)
    • 取值范围:-2³¹ ~ 2³¹-1(约 ±21 亿)
    • 用途:最常用的整数类型(如计数、索引)
  • long

    • 占用空间:8 字节(64 位)
    • 取值范围:-2⁶³ ~ 2⁶³-1
    • 用途:存储大整数(声明时需加 L 或 l 后缀,如 100L
2. 浮点类型(带小数部分的数值)
  • float(单精度)

    • 占用空间:4 字节(32 位)
    • 精度:约 6-7 位有效数字
    • 用途:存储精度要求不高的浮点数(声明时需加 F 或 f 后缀,如 3.14F
  • double(默认浮点类型)

    • 占用空间:8 字节(64 位)
    • 精度:约 15-17 位有效数字
    • 用途:最常用的浮点类型(如科学计算、小数存储)
3. 字符类型(单个字符)
  • char
    • 占用空间:2 字节(16 位,Unicode 编码)
    • 取值范围:0 ~ 65535(可表示字符、数字或符号)
    • 声明方式:用单引号 ' 包裹,如 'A''中''\u0061'(Unicode 转义)
4. 布尔类型(逻辑值)
  • boolean
    • 占用空间:未明确规定(通常 1 字节)
    • 取值范围:仅 true(真)或 false(假)
    • 用途:条件判断(如 if 语句、循环控制)

二、引用数据类型

引用数据类型存储的是对象的内存地址,而非数据本身。主要包括:

  1. 类(Class):如 String、自定义类(PersonStudent 等)。例:String str = "Hello";str 引用字符串对象)

  2. 接口(Interface):如 ListRunnable 等,需通过实现类实例化。例:List<Integer> list = new ArrayList<>();

  3. 数组(Array):存储相同类型元素的集合,属于引用类型。例:int[] arr = {1, 2, 3};arr 引用数组对象)

  4. 枚举(Enum):特殊的类,定义固定的常量集合。例:enum Color { RED, GREEN, BLUE }

  5. 注解(Annotation):用于标注代码的元数据(如 @Override)。

三、基本类型 vs 引用类型的核心区别

特性基本类型引用类型
存储内容直接存储数据值存储对象的内存地址
默认值有默认值(如 int 为 0)默认值为 null(未引用对象)
内存分配栈内存(方法调用时)对象在堆内存,引用在栈内存
传递方式值传递(复制数据)引用传递(复制地址)

四、自动装箱与拆箱

Java 提供了基本类型与对应的包装类(引用类型)的自动转换:

  • 装箱:基本类型 → 包装类(如 int → Integer
  • 拆箱:包装类 → 基本类型(如 Integer → int

例:

Integer num = 100; // 自动装箱(int → Integer)
int n = num;       // 自动拆箱(Integer → int)

常用包装类:ByteShortIntegerLongFloatDoubleCharacterBoolean

理解 Java 数据类型是掌握变量声明、运算及对象操作的基础,合理选择类型可提高程序性能和可读性。

http://www.dtcms.com/a/506834.html

相关文章:

  • 定制高端网站建设设计上传网站图片不显示
  • 无人机路径规划与定位技术原理及实现详解
  • 自己做公司网站适用于手机的网站怎么建设
  • 解决前端多标签页通信:BroadcastChannel
  • [css] border 渐变
  • 前端错误监控实践:Sentry 在 Vite + Vue 项目中的配置与原理详解
  • Marin说PCB之GMSL2网络中AC电容前端控制100欧姆和不做差分100欧姆的区别?
  • Oracle 数据库 Schema 备份与导入全攻略
  • PySide6 使用搜索引擎搜索 多类实现
  • 东莞市外贸网站建设公司自己做投票的网站
  • 网站建设的基础服务器专业建站公司的业务内容
  • 【iOS】KVC 与 KVO 的基本了解与使用
  • Day66 DHT11温湿度传感器驱动开发与单总线通信协议
  • 【代码管理】在本地使用github和gitee之后,可能存在冲突,导致再次提交代码时提示Couldn‘t connect to server
  • bash:**:pip:***python: 错误的解释器: 没有那个文件或目录
  • OpenCV(十二):Mat
  • iOS 智能应用开发实践:从模型集成到场景化交互
  • 更好的网站制作系统平台
  • 佛山市手机网站建设网站建设管理工作情况的通报
  • ThinkPad 安装 Ubuntu 系统教程
  • 《未来的 AI 操作系统(四)——AgentOS 的内核设计:调度、记忆与自我反思机制》
  • Platform Health Management 与 EXM/STM 的集成实现方式
  • lambda怎么遍历集合
  • 国外客户推广网站做羞羞事的网站
  • 安装好PySide6后如何找到Qt Designer(pyside6-designer.exe)可执行文件
  • EIT/ERT技术在机器人触觉传感的硬件及电路实现
  • h5游戏免费下载:公园停车
  • FPGA 49 ,Xilinx Vivado 软件术语解析(Vivado 界面常用英文字段详解,以及实际应用场景和注意事项 )
  • 自动化漏洞利用技术颠覆传统:微软生态暴露的攻防新变局
  • Annals of Neurology | EEG‘藏宝图’:用于脑电分类、聚类与预测的语义化低维流形