>  기사  >  Java  >  Java의 래퍼 클래스

Java의 래퍼 클래스

王林
王林원래의
2024-08-30 16:00:11604검색

Wrapper 클래스는 java.lang 라이브러리의 중요한 클래스입니다. 래퍼 클래스 객체는 기본 데이터 유형에 대한 래퍼를 생성합니다. 래퍼 클래스의 객체를 생성하는 동안 기본 데이터 유형이 저장되는 메모리에 공간이 생성됩니다. 래퍼 클래스는 객체를 기본 데이터로, 기본 데이터를 객체로 변환하는 몇 가지 기능(예: boxing/unboxing)을 제공합니다. 객체에서 원시 데이터로, 원시 데이터에서 객체로의 변환은 자동으로 이루어집니다. 원시 데이터 유형은 int, float, char, double, byte 등을 의미합니다.

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

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

구문: 

아래 선언은 Java 프로그램에서 Wrapper 클래스가 작동하는 방식을 보여줍니다.

예:

int i = 100;

아래 예시에서 i는 정수 데이터 유형임을 알 수 있습니다. 때때로 Java에서는 정수를 객체 유형으로 전달해야 합니다. 이 경우 래퍼 클래스를 사용하여 정수를 객체로 변환할 수 있습니다.

코드:

Integer intVal = new Integer(i);

위의 구문에서 Integer 클래스 객체를 사용하여 기본 데이터 유형이 객체로 변환되는 방식을 확인할 수 있습니다. 또한, 원시 데이터 유형을 객체로 래핑한다고 할 수 있습니다.

Java에서 래퍼 클래스 사용

아래에는 래퍼 클래스의 몇 가지 용도가 나와 있습니다.

  • 래퍼 클래스를 사용하면 객체를 기본 데이터 유형으로 변환하거나 그 반대로 변환할 수 있습니다.
  • 래퍼 클래스를 사용하면 프로그램 성능이 향상됩니다.
  • Wrapper 클래스는 객체 직렬화에 도움이 되며 그 반대의 경우도 마찬가지입니다. 원시 데이터를 객체로 변환할 수 있습니다. 때로는 객체를 스트리밍해야 할 때도 있습니다. 이 경우 래퍼 클래스는 이를 직렬화 형식으로 변환할 수 있습니다.
  • 컬렉션에서 검색 및 정렬을 수행하는 데 사용되는 래퍼 클래스에서 몇 가지 중요한 메소드를 제공합니다.
  • 뺄셈과 덧셈, 이러한 유형의 연산은 래퍼 클래스 기본 정수의 이전 값을 수정할 수 없습니다. 이것이 Wrapper 클래스가 불변 클래스로 알려진 이유입니다.
  • 멀티스레딩 프로세스에는 프로세스 동기화를 위한 개체가 필요하므로 래퍼 클래스가 멀티스레딩 프로세스에 사용됩니다. 래퍼 클래스는 다양한 데이터 유형을 객체로 변환합니다.

JavaAPI를 기반으로 하는 Wrapper 클래스 계층 구조는 Object를 다양한 기본 클래스의 최상위에 유지합니다. 숫자, 문자 및 부울은 객체 바로 다음의 두 번째 수준에 있습니다. Byte, Short, Int, Long, Float, Double은 세 번째 수준의 Number 데이터 유형에 속합니다.

래퍼 클래스는 데이터 유형의 변환/래핑 또는 객체를 기본 데이터 유형으로 변환하기 위해 다음 두 가지 메커니즘인 Autoboxing과 unboxing을 사용합니다.

  • 오토박싱: 오토박싱은 래퍼 클래스를 사용하여 기본 데이터 유형을 객체로 자동 변환하는 것을 의미합니다. 이를 오토박싱이라고 합니다. 아래 예제에서는 int가 Integer 객체로 변환되고, 예제 c에서는 다른 기본 데이터 유형이 해당 객체로 변환됩니다.
  • 언박싱: 언박싱은 오토박싱의 반대 과정입니다. 래퍼 클래스 개체를 해당 기본 데이터 유형으로 자동 변환하는 것을 Unboxing이라고 합니다. 아래 예제 b에서는 Integer 객체가 int 기본 데이터 유형으로 변환됩니다.

Java의 래퍼 클래스 예

다음은 Java에서 래퍼 클래스의 다양한 예입니다.

예시 #1

아래 예시에서는 래퍼 클래스를 통해 int i에서 객체 k로 수동 변환이 어떻게 이루어지는지 확인할 수 있습니다.

코드:

import java.util.*;
class WrapperExample {
public static void main(String args[]){
int j=100;
//converting int j to integer k as an object
Integer k = new Integer(j);
System.out.println(j + "\n" + k);
}
}

출력:

Java의 래퍼 클래스

위의 예에서 변환이 명시적으로 어떻게 이루어지는지 확인할 수 있습니다.

예시 #2

아래 예에서는 이러한 변환 프로세스가 자동으로 발생하는 경우가 있습니다. 즉, 오토박싱이라고 합니다.

코드:

import java.util.*;
class AutoboxingUnboxingExample {
public static void main(String args[]){
int j = 500;
ArrayList<Integer> arrValues = new ArrayList();
arrValues.add(j);  // autoboxing takes place implicitly
System.out.println(arrValues.get(0));
}
}

출력:

Java의 래퍼 클래스

위의 예에서는 int 값이 객체로서 암시적으로 객체로 변환됩니다. 또한 이 값은 ArrayList에서 가져올 수 있습니다.

예시 #3

이번 예시에서는 Unboxing 구현을 살펴보겠습니다. 언박싱은 오토박싱의 역과정입니다.

코드:

import java.util.*;
class AutoboxingUnboxingExample {
public static void main(String args[]){
ArrayList<Integer> arrValues = new ArrayList();
arrValues.add(250);
//unboxing here as int data type from Integer object
int k = arrValues.get(0);
//value printed is in primitive data type
System.out.println(k);
}
}

출력:

Java의 래퍼 클래스

위의 예에서 ArrayList 객체 필드는 k 기본 데이터 유형, 즉 int k로 변환됩니다.

Example #4

The following given example have all the details of Autoboxing & Unboxing.

Code:

import java.util.*;
class WrapperConversionExample {
public static void main(String args[]){
int i = 15;
float j = 9.6f;
double k = 120.8;
byte l = 1;
//creating instance of Integer object
Integer iObj = new Integer(i);
//creating instance of Float object
Float fObj = new Float(j);
//creating instance of Double object
Double dObj = new Double(k);
//creating instance of Double object
Byte bObj = new Byte(l);
//value printed is in object
System.out.println("Value as an Integer object > " + iObj);
System.out.println("Value as a Float object > " + fObj);
System.out.println("Value as a Double object > " + dObj);
System.out.println("Value as a Byte object > " + bObj);
//primitive data type from the object
int m = iObj;
float n = fObj;
double o = dObj;
byte p = bObj;
//value printed is in primitive data type
System.out.println("Value as an int primitive type > " + m);
System.out.println("Value as a float primitive type > " + n);
System.out.println("Value as a double primitive type > "+ o);
System.out.println("Value as a byte primitive type > " + p);
}
}

Output:

Java의 래퍼 클래스

In the above-given program, we can see the implementation of Wrapper classes. Wrapper classes are converting the primitive data type to object & object to the primitive data type. The wrapper class provides separate classes for each primitive data type.

Conclusion

Through the Wrapper classes, we can easily understand autoboxing & unboxing how conversion takes place from primitive to object & its vice versa, which can be easily understood through Wrapper classes. For each of the primitive data types, there is a dedicated class in java.

위 내용은 Java의 래퍼 클래스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.