Java에서 AutoBoxing 및 Unboxing이란 무엇입니까?



이 기사는 더 나은 이해를 위해 몇 가지 예제와 함께 Java의 Autoboxing에 대한 포괄적 인 접근 방식을 제공합니다.

대부분의 경우 우리는 모든 언어로 프로그램을 작성하는 동안 원시 데이터 유형을 사용합니다. 그러나 원시 데이터 유형이 영역에서 부족한 상황이 있습니다. 과 그들 중 하나입니다. Primitive 데이터 유형의 단점을 극복하기 위해 래퍼 . 이 절차를 오토 박싱이라고합니다. 아래 문서를 통해 Java의 자세한 Autoboxing에 대해 설명합니다.

의 시작하자.





Java에서 Boxing 및 Autoboxing이란 무엇입니까?

Boxing과 Autoboxing은 동일한 개념을 나타내는 데 자주 사용됩니다. 그러나 실제로는 정확히 동일하지 않습니다. 먼저 권투의 개념에 대해 이야기하겠습니다. 권투는 무엇입니까? 상자 안에 뭔가를 보관하고있는 것 같지 않나요? 예, 우리가 기본 데이터 유형을 boxing 또는 래핑한다고 말할 때 이는 개체를 형성하기 위해 래핑한다는 의미입니다. 아직도 헷갈 리 시나요? 예를 들어 보겠습니다.

int FirstNumber = 1

변수‘FirstNumber’는 int 유형입니다. . 이제 변수‘FirstNumber’를 객체로 변환하려면 어떻게해야합니까? Java는이를 수행하는 방법을 제공합니다.



정수 SecondNumber = new Integer (2)

'SecondNumber'는 int 유형이 아니지만 Integer 유형의 개체입니다. 기본 데이터 유형을 객체로 변환하는이 프로세스를 boxing이라고합니다. 이것이 어떻게 가능한지 물어볼 수 있습니다. 이 작업을 수행하는 가장 간단한 방법이 무엇인지 생각해 봅시다. 우리는 수업 int 유형의 단일 속성, int 유형 값을 가져 와서 클래스 속성에 할당하는 생성자,이 int 값을 조작하는 일부 메소드를 포함합니다. 그것에 대해 더 알아 보려면 이것을 참조하십시오 문서 .

int 유형을 Java로 변환하는 방법을 살펴 보았습니다. 다른 원시 데이터 유형을 객체로 변환하는 방법이 있습니까? 예, Java에는 각각 래퍼 클래스 다른 기본 데이터 유형에 대해. 이 게시물의 다음 섹션에서 이에 대해 살펴 보겠습니다.

오토 박싱

이 시점에서 우리는 권투가 무엇인지 압니다. 이제 Autoboxing이 무엇인지 이해하겠습니다. 복싱 프로세스가 명시 적으로 언급되지 않은 채 컴파일러에 의해 수행되는 경우를 오토 박싱이라고합니다.



예를 들어 이해해 보겠습니다.

import java.util.ArrayList import java.util.Listclass Box {public static void main (String [] args) {List Mylist = new ArrayList () for (int i = 0 i<10 i++) Mylist.add(i) } }

앞서 논의했듯이 객체 만 허용하고 기본 데이터 유형은 작동하지 않습니다. 위의 프로그램에서 우리는 타입을 Integer 타입 객체로 변환하지 않았습니다. 여전히 프로그램은 오류없이 실행됩니다. 어떻게? 이 질문에 대한 대답은 컴파일러가 값을 'Mylist'에 추가하기 전에 자동으로 복싱 프로세스를 수행했기 때문에 이름이 Autoboxing이라는 것입니다.

Mylist.add (Integer.valueOf (i))

위의 코드 줄은 컴파일러에 의해 프로그램에 추가됩니다.

노트- 위의 코드 줄에서 'Integer'는 valueOf () 메서드가 정적 메서드이기 때문에 valueOf () 메서드 앞에 언급되었습니다. 더 많은 예는 문서 .

Unboxing 및 Autounboxing

우리는 방법을 보았다 원시 데이터 유형의 개체로 변환됩니다. 그러나 이것은 이야기의 절반에 불과합니다. 이야기의 나머지 절반은 랩퍼 클래스 유형의 객체를 기본 데이터 유형으로 변환하는 것입니다. 개봉 .

예를 들면

정수 FirstNumber = new Integer (1) int SecondNumber = FirstNumber.intValue () System.out.println (SecondNumber)

출력 -1

Autounboxing- 컴파일러가 명시 적으로 언급하지 않고 수행하는 unboxing 프로세스를 Autounboxing이라고합니다.

예를 들어-

정수 숫자 = new Integer (20) int num = Number

위 코드는 Autounboxing의 예입니다. 다음 섹션에서 우리는 래퍼 클래스에 대해 배울 것입니다.

래퍼 클래스

유형 변수 intl Integer 유형 객체로 변환했습니다. 이 정수 클래스는 래퍼 클래스입니다. Java에서는 각 래퍼 클래스를 사용할 수 있습니다. . 이러한 래퍼 클래스는 변수를 기본 형식에서 각 래퍼 클래스 형식 개체로 변환하는 데 도움이됩니다. 래퍼 클래스의 메서드는 값을 조작하는 데 유용합니다.

아래 표는 기본 데이터 유형과 각각의 래퍼 클래스에 대해 알려줍니다.

원시 유형 래퍼 클래스

부울

부울

안녕

바이트

캐릭터

흙손

흙손

int

정수

짧은

짧은

더블

더블

래퍼 클래스의 대소 문자를 확인하십시오.

자바에서 스윙은 무엇입니까

따라서 우리는 '자바의 오토 박싱'에 대한이 기사를 끝 맺었습니다. 자세한 내용은 다음을 확인하십시오. 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 제공합니다. Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.

질문이 있으십니까? 이 블로그 '자바의 autoboxing'의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 연락 드리겠습니다.