1. 래퍼 유형 목록
Java에는 클래스가 아닌 유형인 8개의 기본 유형이 있다는 것을 알고 있습니다. 한편으로 이것은 좋습니다. 간단하고 공간을 거의 차지하지 않습니다. 반면에 때때로 수업은 우리에게 꼭 필요한 것입니다. 다음 강의에서 그 이유를 정확히 알게 될 것입니다.
그래서 무엇을 할 수 있습니까?
Java의 다섯 번째 버전부터 각 기본 유형에 트윈 클래스가 추가되었습니다. 이러한 각 클래스는 특정 유형의 값이 있는 단일 필드를 저장합니다. 이러한 클래스는 기본 값을 클래스로 래핑하기 때문에 래퍼 유형 이라고 합니다 .
다음은 이러한 유형의 목록입니다. 알고 계십니까?
원시 유형 | 래퍼 클래스 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
기본 유형의 이름은 소문자로 시작하지만 래퍼 클래스의 이름은 대문자로 시작합니다. 일부 클래스 이름은 조금 더 깁니다: Integer
instead of int
и Character
instead of char
.
래퍼 클래스의 모든 개체는 변경할 수 없습니다( immutable ).
클래스 의 단순화된 코드는 Integer
다음과 같습니다.
암호 | 메모 |
---|---|
|
변수 생성자 이 메서드는 값을 반환합니다. 정적 메서드는 변수 에 대한 새 개체를 만듭니다. Integer int |
2. an을 int
an로 변환Integer
래퍼 유형은 기본 유형에 해당하는 것으로 간주됩니다. 기본 유형에 해당하는 래퍼 개체를 쉽게 만들 수 있습니다.
기본 유형이 해당 래퍼 유형과 상호 작용하는 방식을 분석하기 위해 int 유형을 예로 사용하겠습니다. int
an에서 an으로 또는 그 반대로 변환하는 코드는 Integer
다음과 같습니다.
int
an을 로 변환하려면 Integer
다음 코드를 작성해야 합니다.
Integer name = new Integer(value);
여기서 name
는 변수의 이름 Integer
이고 는 value
래핑된 int
값입니다.
예:
암호 | 메모 |
---|---|
|
|
|
|
|
그리고 an을 Integer
an로 변환하려면 int
다음 코드를 작성해야 합니다.
int name = variable.intValue();
여기서 name
는 변수의 이름 int
이고 는 개체 variable
에 대한 참조입니다 Integer
.
예:
암호 | 메모 |
---|---|
|
|
|
|
|
|
|
|
3. 오토박싱 및 언박싱
하지만 Integer
타입을 이용한 간단한 연산조차도 작성하기 쉽지 않습니다.
이전에 말했듯이 Integer
유형은 변경할 수 없습니다( immutable ). Integer
새 값으로 개체를 만들려면 int
명시적으로 새 개체를 만들어야 합니다 Integer
. int
즉, 객체 내부에 저장된 값을 가져오는 것은 쉽습니다 Integer
. intValue()
메소드를 호출하기만 하면 됩니다.
예:
암호 | 설명 |
---|---|
|
5 개체 감싸기 Integer 개체 에서 값 가져오기 새 개체 만들기(10과 같음) Integer Integer |
이것은 다소 성가신 코드라고 생각하지 않습니까?
Java 제작자는 그렇게 생각했기 때문에 컴파일러에게 이러한 작업을 자동으로 수행하는 방법을 가르쳤습니다. int
an을 an으로 자동 변환하는 것을 autoboxing (값을 상자에 자동으로 넣음) Integer
이라고 하고, an을 an으로 변환하는 역 작업을 unboxing 이라고 합니다 .Integer
int
귀하의 코드 | 컴파일러가 보는 것 |
---|---|
|
|
|
|
|
|
오토박싱 및 언박싱 덕분에 변수 int
에 안전하게 할당할 수 Integer
있으며 그 반대도 가능합니다. int
와 유형 을 구분하지 않고 복잡한 표현식을 작성할 수 있습니다 Integer
.
예:
암호 | 컴파일러가 생성할 내용 |
---|---|
|
|
|
|
4. 래퍼 변수 비교
오토박싱 및 언박싱은 간단하고 투명한 프로세스입니다. 필요에 따라 명령문을 사용 new Integer()
하고 필요에 따라 메서드를 호출합니다 intValue()
.
프로그래머에게는 모든 것이 훌륭하고 쉽게 작동합니다. an 과 an 을 비교하는 경우 비교는 값이 아닌 참조를 기반으로 합니다 .Integer
Integer
암호 | 콘솔 출력 |
---|---|
|
|
|
|
및 변수 a
는 값을 b
저장하지 않습니다 int
. 개체에 대한 참조를 저장합니다. 즉, 올바르게 비교하는 방법을 기억하는 것이 중요합니다.
잘못된 | 오른쪽 |
---|---|
|
|
GO TO FULL VERSION