将原始数据类型自动转换为其等效的包装器类型的操作称为装箱, 而相反的操作称为拆箱。这是Java5的新功能。因此, java程序员无需编写转换代码。
自动装箱和拆箱的优势
不需要手动在原语和包装器之间进行转换, 因此需要的编码量更少。 |
class BoxingExample1{
public static void main(String args[]){
int a=50;
Integer a2=new Integer(a);
//BoxingInteger a3=5;
//BoxingSystem.out.println(a2+" "+a3);
}
}
立即测试
Output:50 5
Java中取消装箱的简单示例:
包装器类类型自动转换为相应的原始类型, 称为拆箱。让我们看一下拆箱的例子:
class UnboxingExample1{
public static void main(String args[]){
Integer i=new Integer(50);
int a=i;
System.out.println(a);
}
}
【Java自动装箱和拆箱】立即测试
输出:
50
使用比较运算符自动装箱和拆箱
可以使用比较运算符执行自动装箱。让我们看一下使用比较运算符进行装箱的示例: |
class UnboxingExample2{
public static void main(String args[]){
Integer i=new Integer(50);
if(i<
100){//unboxing internally
System.out.println(i);
}
}
}
立即测试
Output:50
具有方法重载的自动装箱和拆箱
在方法重载中, 可以执行装箱和拆箱。对于拳击方法重载, 有一些规则:扩展节拍拳击扩展节拍varargs拳击节拍varargs |
如果有加宽和拳击的可能性, 加宽会击败拳击。 |
class Boxing1{
static void m(int i){System.out.println("int");
}
static void m(Integer i){System.out.println("Integer");
}public static void main(String args[]){
short s=30;
m(s);
}
}
立即测试
Output:int
2)自动装箱示例, 变宽击败可变参数
如果有可能扩大和varargs, 扩大击败var-args。 |
class Boxing2{
static void m(int i, int i2){System.out.println("int int");
}
static void m(Integer... i){System.out.println("Integer...");
}public static void main(String args[]){
short s1=30, s2=40;
m(s1, s2);
}
}
立即测试
Output:int int
3)自动拳击的例子, 其中拳击胜过可变参数
让我们看一下拳击胜过可变参数的程序: |
class Boxing3{
static void m(Integer i){System.out.println("Integer");
}
static void m(Integer... i){System.out.println("Integer...");
}public static void main(String args[]){
int a=30;
m(a);
}
}
立即测试
Output:Integer
方法重载与加宽和装箱
不能按照以下说明进行加宽和装箱: |
class Boxing4{
static void m(Long l){System.out.println("Long");
}public static void main(String args[]){
int a=30;
m(a);
}
}
立即测试
Output:Compile Time Error
推荐阅读
- Java枚举用法详解
- 如何在Mac上免费获取Microsoft Word(详细分步指南)
- 如何加速Windows 11并提高性能(15种有效方式)
- 电脑主机,本文教您电脑主机的相关知识
- hp笔记本怎样进bios,本文教您惠普笔记本怎样进bios
- 显卡怎样安装,本文教您显卡怎样安装
- tf卡与sd卡的区别,本文教您tf卡与sd卡有啥区别
- 固态硬盘4k对齐,本文教您怎样看固态硬盘4k是否对齐
- 安装系统 如何重装系统win7,本文教您win7系统怎样重装