Java Top.

使用Spring 5和Spring Boot 2开始,通过学习春天课程:

>>查看课程

1.概述

顾名思义,包装类是封装原始Java类型的对象。

每个Java原语都有一个相应的包装器:

  • 布尔,字节,短,炭,int,long,float,double
  • 布尔,字节,短,字符,整数,长,浮动,双倍的

这些都是定义的java.lang.包裹,因此我们不需要手动导入它们。

2.包装课程

“包装类的目的是什么?”这是最多的常见的Java面试问题

基本上,泛型类仅与对象一起使用,不支持基元。结果,如果我们想与它们一起工作,我们必须将原始值转换为包装器对象。

例如,Java集合框架专门适用于对象。长时间返回(在Java 5,差不多15年后)没有自传,例如,我们不能简单地打电话添加(5)在一系列整数。

那时,那些原始需要手动转换为的值相应的包装课程并存储在收藏中。

今天,随着自动发布,我们很容易做到arraylist.add(101)但内部Java将原始值转换为整数在将它存放之前数组列表使用的价值()方法

3.原始包装类转换

现在,大问题是:我们如何将原始值转换为相应的包装类等级。一个整数或者char特点?

嗯,我们可以使用构造函数或静态工厂方法将原始值转换为包装类的对象。

然而,由于Java 9,构造函数对于许多盒装原语,例如整数或者已被弃用。

所以强烈建议仅在新代码上使用工厂方法

让我们看一下转换一个例子价值到A.整数Java中的对象:

整数object =新整数(1);Integer oderobject = Integer.ValueOf(1);

的价值()方法返回表示指定的实例价值。

它返回高速缓存的值,这使得它有效。它总是缓存-128到127之间的值,但也可以缓存在此范围之外的其他值。

同样,我们也可以转换布尔基布尔,字节字节,字符角色,长长,漂浮漂浮,双倍的双倍的。虽然如果我们必须将字符串转换为整数然后我们需要使用parseint()方法,因为细绳不是包装纸。

另一方面,要将包装器对象转换为原始值,我们可以使用相应的方法,如Intvalue(),doublevalue()等等:

int val = object.intvalue();

可以找到全面的参考这里

4.自传和解密

在上一节中,我们展示了如何手动将原始值转换为对象。

Java 5后,可以使用名为autoboxing和Unboxing的功能自动完成此转换。

“拳击”是指将原始值转换为相应的包装器对象。因为这可能会自动发生,所以它被称为自动框。

相似地,当包装器对象未包装到原始值中,那么这被称为unboxing。

在实践中的这种方式是我们可以将原始值传递给预期包装器对象的方法或为预期对象的变量分配原始:

列表<整数>列表= new arraylist <>();list.add(1);// autoboxing整数val = 2;// autoboxing.

在此示例中,Java将自动转换基元价值到包装器。

在内部,它使用了的价值()促进转换的方法。例如,以下行等同:

整数= 3;整数= integer.valueof(3);

虽然这使得转换容易并且代码更可读,但有一些情况我们不应该使用autoboxing。在循环内

与自动拨款类似,在将对象传递给预期原始的方法或将其分配给原始变量时,将自动完成:

整数object =新整数(1);int val1 = getsquarevalue(对象);// unboxing int val2 =对象;// unboxing public static int getsquarevalue(int i){return i * i;}

基本上,如果我们编写一个接受原始值或包装器对象的方法,我们仍然可以将两个值传递给它们。Java将照顾好右图。原始或包装器取决于上下文。

结论

在此快速教程中,我们讨论了Java中的包装类,以及自动框和拆箱的机制金宝搏官网188be。

Java底部

使用Spring 5和Spring Boot 2开始,通过学习春天课程:

>>查看课程
评论在本文上关闭!