基于STM32的智能交通灯控制系统设计与实现
2026/3/30 3:33:50
Java中有byte、short、int、long、char、float、double、boolean 8种基本数据类型,这些数据类型的变量在内存中存储真正的“值”。而数组、字符串、对象等引用数据类型的变量,在内存中存储的是对象的引用,也就是内存地址。
Java系统,为每一个基本变量类型,都定义了一个专属的类,又被称为包装类。8大基本类型,对应的包装类如下:
| 基本类型 | 包装类 |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| char | Character |
| long | Long |
| float | Float |
| double | Double |
| boolean | Boolean |
基本数据类型可以使用包装类的构造函数,生成包装类的对象,这个过程又叫封箱。包装类的对象,也可以使用方法,生成基本数据类型的数值,这个过程又叫拆箱。
在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}}