Java의 원시 래퍼 클래스

Primitive wrapper class in Java

오브젝트 지향 프로그래밍에서 래퍼 클래스는 타입캡슐화하는 클래스입니다.이러한 타입을 사용하여 오브젝트인스턴스와 그 타입을 필요로 하는 메서드를 다른 클래스에 작성할 수 있습니다.따라서 primitive wrapper 클래스는 8개의 primitive 데이터 [1]유형에서 데이터 유형을 캡슐화, 숨기거나 래핑하는 래퍼 클래스입니다.이러한 클래스는 다른 클래스 또는 다른 [2][3]클래스의 메서드를 사용하여 인스턴스화된 개체를 만드는 데 사용할 수 있습니다.기본 래퍼 클래스는 Java API에 있습니다.

Primitive 래퍼 클래스는 Primitive 래퍼 클래스가Object원형을 나타낼 필요가 있다Collection(Java API의 경우 등)의 클래스,java.util패키지 및 내부java.lang.reflect 리플렉션 패키지컬렉션 클래스는 배열과 같은 데이터 구조가 int, double, long 또는 char 등의 원시 데이터 유형을 저장하는 것과 유사한 방식으로 개체를 저장할 수 있는 Java API 정의 클래스입니다. 그러나 어레이는 원시 데이터 유형을 저장하는 반면 컬렉션은 실제로 개체를 저장합니다.[2]

원시 래퍼 클래스와 대응하는 원시 유형은 다음과 같습니다.

원시형 래퍼 클래스 생성자 인수
byte Byte byte또는String
short Short short또는String
int Integer int또는String
long Long long또는String
float Float float,double또는String
double Double double또는String
char Character char
boolean Boolean boolean또는String

래퍼 클래스와 원시 유형의 차이

원시 래퍼 클래스는 원시 유형과 다릅니다.예를 들어 Java에서는 double, short, int 등으로 변수를 선언할 수 있지만 원시 래퍼 클래스는 데이터 유형 [2]을 할당하는 변수와 달리 원시 데이터 유형을 상속하지만 숨기는 인스턴스화된 개체 및 메서드를 생성합니다.

따라서 원시 래퍼 클래스라는 용어는 래퍼 클래스가 원시 유형이라는 을 의미하지 않습니다.원시형을 랩하는 클래스로 이해해야 합니다.래퍼 클래스는 원시 유형 변수와 동일한 값을 저장하는 데 사용할 수 있지만 래퍼 클래스의 인스턴스/개체 자체는 Non-Primitive입니다.Wrapper 클래스 자체가 Privitive 타입이라고는 할 수 없습니다.그들은 원시적인 유형들을 싸매고 있을 뿐이다.

Byte,Short,Integer,Long,Float,그리고.Double래퍼 클래스는 모든 서브클래스입니다.Number학급.

래퍼 클래스BigDecimal그리고.BigInteger 원시 래퍼 클래스 중 하나가 아니지만 [4][5]불변합니다.

원자성 래퍼 클래스

Java 5.0에서는 추가 래퍼 클래스가 에 도입되었습니다.java.util.concurrent.atomic패키지.이러한 클래스는 변경 가능하며 일반 래퍼 클래스의 대체로 사용할 수 없습니다.대신 추가, 증가 및 할당을 위한 원자 연산을 제공합니다.

원자성 래퍼 클래스와 대응하는 유형은 다음과 같습니다.

원시형 래퍼 클래스
int AtomicInteger
long AtomicLong
boolean AtomicBoolean
V AtomicReference<V>

AtomicInteger그리고.AtomicLong클래스는 의 서브클래스입니다.Number수업.AtomicReferenceclass는 type 파라미터를 받아들입니다. V오브젝트 참조의 유형을 지정합니다.(Java의 유형 매개 변수에 대한 설명은 "Java의 일반"을 참조하십시오). V

「 」를 참조해 주세요.

레퍼런스

  1. ^ S. J. 채프먼, Prentice Hall, Java 소개, 1999.
  2. ^ a b c J. Murach, Murach's Java Programming, 제4판, Mike Murach and Associates, Inc, 2011.
  3. ^ J. R. Hubbard, Java를 사용한 프로그래밍, Schaum's Outline Series/McGraw Hill, 1998.
  4. ^ David O'Meara (April 2003). "Mutable and Immutable Objects: Which classes are Immutable?". Java Ranch. Retrieved 2012-05-14. The classes java.math.BigInteger and BigDecimal are not immutable either, although maybe they should have been.
  5. ^ Oracle. "Java documentation from oracle". Immutable arbitrary-precision integers.