
Java中自动排版的介绍
自动排版是JAVA中遵循的一个过程,其中原始数据的转换被编译器转换为对象类型。因此,举例来说,如果变量被声明为 "int",那么该变量就会被编译器从原始的整数转换为对象数据类型,并以该格式使用。还有一个过程是自动装箱的反转,被称为 "拆箱"。
定义。将原始数据类型的任何值转换为各自封装类的对象,称为自动装箱。
语法
用于自动装箱的语法如下
primitive_DataType variableName = ‘VariableValue’;
自动排版在Java中是如何进行的?
JAVA编译器将原始数据类型转换为包装类的对象。然后,只有在满足以下两点的情况下,编译器才会工作。
- 变量被作为参数传递给函数,这就需要创建包装类的对象。
- 原始值被分配给变量,这样编译器就可以进行自动对接。
- 所有的原始数据类型都被链接到它们各自的封装类上(这已经由JAVA在它们的库中完成)。原始数据类型及其链接的封装类的链接方式如下。
| 原始数据类型 | 封装器类 |
| Boolean | Boolean |
| byte | Byte |
| long | Long |
| double | Double |
| short | Short |
| char | Character |
| Int | Integer |
| float | Float |
下面是JAVA中自动划线的例子,有助于进一步理解这个概念。
例子#1
代码
import java.io.*;
class example1
{
public static void main (String[] args)
{
//here we are creating an integer "test1" having value of "100".
Integer test1 = new Integer(100);
System.out.println("Here is the value of integer test1 which is created into object of the wrapper class integer: " + test1);
//here we are autoboxing a character "test2" with a value of "a".
Character test2 = 'a';
System.out.println("Here is the value of test2 variable after autoboxing using character wrapper class: " + test2);
}
}
输出

解释
我们导入了名为 "java.io "的JAVA库,这样就可以使用JAVA的主要功能。首先,我们创建了一个名为 "example1 "的主类,其中包含主函数。主函数是程序开始执行的地方。接下来,我们创建了一个名为 "test1 "的整数,并将其赋值。这与正常的声明和赋值方式略有不同;正如你所看到的,封装类 "Integer "被实例化了,要分配的值被作为参数传递给封装类。这个过程被称为使用包装器类对原始数据类型进行对象化。毫无疑问,"JAVA "被称为一种完全面向对象的语言。
在下一节代码中,Character原始数据类型被分配给一个名为 "test2 "的变量,其值为 "a"。这是一种通常的声明和赋值变量的方式。这样做是可行的,因为JAVA编译器很聪明,会在后面自动将原始数据类型转换为其包装类的对象。这种功能在JAVA中被称为自动排版。
例子 #2
代码
public class BoxingWidening
{
// The function below is demonstrating the boxing functionality in JAVA.
static void testFunction(char i)
{
System.out.println("Program output for boxing:: ");
System.out.println("char in short");
}
// This function is demonstrating the widening functionality in JAVA.
static void testFunction(Character i)
{
System.out.println("Program output for widening: ");
System.out.println("Character in full");
}
public static void main(String args[])
{
char ch='a';
testFunction(ch);
}
}
输出

解释一下
在这个例子中,我们展示了 "拓宽 "和 "装箱 "的区别。拓宽是一种使用全类名称的功能,例如,用Integer或char来代替int或char。用相同的名字 "testFunction "定义了两个函数,一个使用拓宽,另一个使用盒式语法声明和赋值。在主函数中,一个名为 "ch "的字符被声明并分配了一个值 "a",并以其函数名调用了一个函数。这个函数在其名称上有两个定义。由于JAVA更喜欢装箱,所以调用了该函数的装箱定义,并将参数 "ch "传递给装箱定义。最后的结果用print()函数显示。这个函数在输出屏幕上显示了装箱定义,而不是采取拓扑定义。当然,与JAVA语言提供的拓宽功能相比,自动装箱功能要强大得多。
优点
下面列举了一些从JAVA语言的这一有用功能中获得的优点。
- 开发人员只需编写较少的代码,这就减轻了编码人员的负担,从而使编码人员可以集中精力处理复杂的逻辑。
- 由于编译器的智能性,创建对象和实例化的复杂性被抽象化,因此代码更简洁。
- 信息的最佳策略是由编译器利用这一点拾取的。例如,如果我们希望整数的值被拾取,那么我们应该使用代码:valueOf(int)而不是new Integer(int)。这提高了周转时间。
- 促进了抽象性。
- 减少了因为抽象而在冗长的代码/项目中出现错误的可能性。
总结
Autoboxing是通过增加编译器的智能来从开发人员那里抽象出复杂代码的最佳策略之一。这减少了开发者编写没有逻辑关系的小代码片段的开销。这被开发人员广泛使用,以至于许多开发人员不知道实例化一个包装类。Autoboxing无疑是一种强大而简洁的声明和为变量赋值的方式。