news 2026/4/18 8:42:23

Java 基本数据类型与包装类:从内存到封箱拆箱

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java 基本数据类型与包装类:从内存到封箱拆箱

Java中有byte、short、int、long、char、float、double、boolean 8种基本数据类型,这些数据类型的变量在内存中存储真正的“值”。而数组、字符串、对象等引用数据类型的变量,在内存中存储的是对象的引用,也就是内存地址。

Java系统,为每一个基本变量类型,都定义了一个专属的类,又被称为包装类。8大基本类型,对应的包装类如下:

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

基本数据类型可以使用包装类的构造函数,生成包装类的对象,这个过程又叫封箱。包装类的对象,也可以使用方法,生成基本数据类型的数值,这个过程又叫拆箱。

在Java9后,包装类的构造函数的封箱方法被弃用,官方建议使用静态的valueOf()方法进行手动封箱,之后又支持直接使用字面量或者赋值给包装类对象,又叫自动封箱。自动封箱实际上是隐式调用valueOf()方法。

同理,Java也支持自动拆箱,也就是隐式调用拆箱方法。比如:

publicclassApp{publicstaticvoidmain(String[]args){bytea=127;Byteaa=Byte.valueOf(a);// 手动封箱 也可 Byte aa = a 又叫自动封箱byteb=aa.byteValue();// 手动拆箱 也可 byte b = aa 又叫自动拆箱System.out.println(b);// 127shortc=32767;Shortcc=c;// 自动封箱shortd=cc;// 自动拆箱System.out.println(d);// 32767inte=2147483647;Integeree=e;// 自动封箱intf=ee;// 自动拆箱System.out.println(f);// 2147483647charg='a';Charactergg=g;// 自动封箱charh=gg;// 自动拆箱System.out.println(h);// alongi=9223372036854775807L;Longii=i;// 自动封箱longj=ii;// 自动拆箱System.out.println(j);// 9223372036854775807floatk=3.14f;Floatkk=k;// 自动封箱floatl=kk;// 自动拆箱System.out.println(l);// 3.14doublem=3.15;Doublemm=m;// 自动封箱doublen=mm;// 自动拆箱System.out.println(n);// 3.15booleano=true;Booleanoo=o;// 自动封箱booleanp=oo;// 自动拆箱System.out.println(p);// true}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:32:51

3个实用技巧:让你的MacBook显卡性能与续航兼得

3个实用技巧:让你的MacBook显卡性能与续航兼得 【免费下载链接】gfxCardStatus gfxCardStatus is an open-source menu bar application that keeps track of which graphics card your unibody, dual-GPU MacBook Pro is using at any given time, and allows you …

作者头像 李华
网站建设 2026/4/8 5:31:23

Hap QuickTime编解码器:免费GPU加速视频处理完整解决方案

Hap QuickTime编解码器:免费GPU加速视频处理完整解决方案 【免费下载链接】hap-qt-codec A QuickTime codec for Hap video 项目地址: https://gitcode.com/gh_mirrors/ha/hap-qt-codec Hap QuickTime编解码器作为一款革命性的开源视频处理工具,通…

作者头像 李华
网站建设 2026/4/18 8:41:32

bsdiff/bspatch:重新定义二进制文件增量更新的技术边界

bsdiff/bspatch:重新定义二进制文件增量更新的技术边界 【免费下载链接】bsdiff bsdiff and bspatch are libraries for building and applying patches to binary files. 项目地址: https://gitcode.com/gh_mirrors/bs/bsdiff 在当今快速迭代的软件开发环境…

作者头像 李华
网站建设 2026/4/8 16:23:30

ESP32技术路线优劣势对比

一、ESP32技术路线优劣势对比技术方案优势劣势ESP-IDF(C语言)$$低延迟(<10ms)$$开发周期较长内存占用<50KBArduino框架开发效率提升40%实时性较差MicroPython原型开发速度提升60%内存占用>200KBFreeRTOS多任务支持并行任务数≥8调试复杂度高二、行业痛点与需求功耗难题…

作者头像 李华
网站建设 2026/4/18 8:25:01

Go OAuth2 完全指南:5分钟快速集成第三方登录

Go OAuth2 完全指南&#xff1a;5分钟快速集成第三方登录 【免费下载链接】oauth2 Go OAuth2 项目地址: https://gitcode.com/gh_mirrors/oa/oauth2 Go OAuth2 库是一个功能强大的 Go 语言 OAuth2 客户端实现&#xff0c;支持完整的授权认证流程和令牌管理机制。该库提供…

作者头像 李华
网站建设 2026/4/16 14:43:35

智能续杯革命:自动化测试账户管理的终极解决方案

智能续杯革命&#xff1a;自动化测试账户管理的终极解决方案 【免费下载链接】free-augment-code AugmentCode 无限续杯浏览器插件 项目地址: https://gitcode.com/gh_mirrors/fr/free-augment-code AugmentCode智能续杯浏览器插件通过创新的邮箱地址生成技术&#xff0…

作者头像 李华