자바에서 언박싱

王林
풀어 주다: 2024-08-30 15:09:02
원래의
746명이 탐색했습니다.

Unboxing은 JAVA의 Wrapper 클래스 객체를 원시 데이터 유형으로 변환하는 과정입니다. 이는 "java.lang" 패키지의 일부로 존재하며 이 패키지를 가져온 후 jAVA 프로그램에서 사용할 수 있습니다. 예를 들어 래퍼 클래스 Integer의 객체를 Int로 변환합니다. JAVA의 오토박싱(autoboxing)과 반대입니다. JAVA 5에서 개발의 일부로 도입되어 개발자의 삶이 훨씬 편해졌습니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

구문

JAVA에서 unboxing에 사용되는 구문은 다음과 같습니다.

으아아아

여기서 래퍼 클래스 "Integer"의 객체는 기본 데이터 유형 Int에 할당되고 해당 값은 래퍼 클래스 생성자의 매개 변수로 전달됩니다. 이는 오토박싱에서 암묵적으로 발생합니다.

Java에서 언박싱은 어떻게 작동하나요?

언박싱은 객체를 기본 데이터 유형으로 변환하는 과정입니다. 이 프로세스는 JAVA의 라이브러리가 JAVA 5판 이상에서 지원하므로 JAVA 컴파일러에 의해 자동으로 수행됩니다. JAVA 컴파일러에서 unboxing을 실행하려면 두 가지 전제 조건이 필요합니다. 이 두 가지 전제 조건은 다음과 같습니다.

  1. 컴파일러는 사용된 래퍼 클래스의 객체가 관련 기본 데이터 유형의 "값"을 기대할 때 언박싱을 사용합니다.
  2. 사용된 래퍼 클래스의 객체는 차례로 기본 데이터 유형의 변수에 할당됩니다.

아래는 래퍼 클래스와 관련 기본 데이터 유형이 포함된 표입니다.

Wrapper class Related primitive data-type
Boolean boolean
Integer Int
Float float
Character char
Byte byte
Long long
Short short
Double double

The data flow and explanation of unboxing in JAVA is explained properly with examples in the below section.

Examples of Unboxing in Java

Some examples are provided below will provide a conceptual clarity of the unboxing technique.

Example #1

Code:

public class test1 { public static void main(String args[]) { Integer var1=new Integer(50); if( var1 > 10) // Unboxing using comparator. { int var2=var1 + 10; int var3=var2; System.out.println(" The value of variable using unboxing functionality is JAVA is :"+ var3); } else { int var2=var1 - 10; //Unboxing using assignment operator. int var3=var2; System.out.println(" The value of variable using unboxing functionality is JAVA is :"+ var3); } } }
로그인 후 복사

Output:

자바에서 언박싱

Explanation: In this program, The main class is declared as “test1” as it contains the main() method. The program execution starts with the main() function. An object of the wrapper class “Integer” is created with the name “var1” and assigned with the value “50”. You should focus on the syntax of assigning value to variable “var1”, which is different in comparison to autoboxing. Here, the object is used instead of the data type for declaration and assignment purposes. Once the assignment is done, unboxing is done for that object.

Here, a comparison operator is used to unboxing the object. “If” logic checks if the value of “var1” is more than 10 or not. If not, then the control flows to another part of the program, starting with the “else” keyword and the whole code snippet under if loop will be skipped. In the else section, there is no comparator operator, so it enters the control logic. Assignment operator “=” does the unboxing part in case else is invoked. You can change the value of “var1” by changing the parameter provided to the wrapper class’s constructor (“Integer()” in this example). Finally, value is added or subtracted and printed as per logic.

Example #2

Code:

public class test2 { public static void main(String args[]) { Character charName = 'M'; // Autoboxing. char charName2 = charName; // Unboxing System.out.println("The process used here is auto-unboxing to display the character : "+ charName2 ); } }
로그인 후 복사

Output:

자바에서 언박싱

Explanation: Here, unboxing is done using the assignment operator. The data flow and control execution will work, as explained in the previous example. Here one thing to notice is that we have not used the object of a wrapper class to declare and assign the value to the variable “charName”. Although unboxing is done on “charName” using the assignment operator.

Example #3

Code:

public class test3 { public static void main (String args[]){ Integer varName = new Integer("1000"); int varName2 = varName.intValue(); System.out.println("Variable name is printed after unboxing using a built-in function is : " + varName2); } }
로그인 후 복사

Output:

자바에서 언박싱

Explanation:This works similar to the previous example with an added function called “intValue(). This function should extract the value from the variable “varName” and assign it to another variable named “varName2”. The function “intValue()” explicitly returns the value of object ”varName”. This is exactly what the compiler does in the backend. You should try removing this function and see the results to compare it with example number 2.

Advantages

Some of the primitive advantages of unboxing in JAVA is presented in the form of the list below:

  1. It represents the true use of JAVA’s object-oriented features.
  2. Standard code and syntax style used throughout the project but increased the number of lines in code.
  3. Cleaner and understandable code.
  4. Easy to maintain by the AMS (Application maintenance support) team for big projects.

Conclusion

Unboxing is the reverse of autoboxing in JAVA. It is converting the wrapper class’s object into a primitive data type. Although we have the functionality of declaring and assigning variables using primitive data type directly (That is called the autoboxing feature of JAVA), objectification of wrapper class and then assigning this object to a primitive data type is used several times when standardization of code is important. This reveals the true object-oriented property of JAVA. It is used mostly in big projects for easy maintenance.

위 내용은 자바에서 언박싱의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!