패키지 클래스(Java)
JAVA 는 단순히 대상 을 향 한 언어 가 아니다.자바 언어 는 대상 을 대상 으로 하 는 언어 이지 만 자바 의 기본 데이터 형식 은 대상 을 대상 으로 하지 않 습 니 다.그러나 우 리 는 실제 사용 에서 기본 데 이 터 를 대상 으로 바 꾸 어 조작 하기에 편리 하도록 해 야 한다.
예 를 들 어 집합 작업 중.예 를 들 어 Map 대상 이 put()방법 을 조작 하려 면 기본 데이터 형식 이 아 닌 대상 이 들 어 와 야 합 니 다.이 부족 함 을 해결 하기 위해 디자인 클래스 에서 모든 기본 데이터 유형 에 대응 하 는 클래스 를 설계 하여 대표 한다.이렇게 8 개 와 기본 데이터 유형 에 대응 하 는 클래스 를 포장 클래스(Wrapper Class)라 고 통칭 한다.
포장 류 는 모두 java.lang 패키지 에 위치 하고 포장 류 와 기본 데이터 유형의 대응 관 계 는 다음 과 같다.
기본 데이터 형식
포장 류
byte
Byte
short
Short
int
Integer
long
Long
float
Float
double
Double
char
Character
boolean
Boolean
int 가 Integer 대상 으로 전환
Integer int1 = new Integer(10); //
// jdk9 Integer int2 = Integer.valueOf(20);
//
Integer int1 = 10;
Integer 대상 이 int 로 전환
Integer int1 = 10;
int a = int1.intValue();
//
int a = int1
문자열 이 Integer 대상 으로 바 뀌 었 습 니 다.
Integer int3 = Integer.parseInt("334");
Integer int4 = new Integer("999"); //
Integer 대상 문자열 로 변환
String str1 = int3.toString();
일반적인 int 유형 과 관련 된 상수
System.out.println("int :"+Integer.MAX_VALUE);
// :
int :2147483647
자동 포장 및 해체
자동 포장 과정:하나의 유형의 대상 이 필요 할 때마다 이러한 기본 유형 은 자동 으로 그것 과 같은 유형의 포장 에 봉 인 됩 니 다.
자동 으로 상 자 를 뜯 는 과정:값 이 필요 할 때마다 포장 대상 의 값 을 자동 으로 추출 합 니 다.intValue()와 doubleValue()방법 을 호출 할 필요 가 없습니다.
자동 으로 상 자 를 포장 하고 뜯 는 기능 은 사실상 컴 파 일 러 가 당신 을 도와 주 는 것 입 니 다.컴 파 일 러 는 컴 파 일 러 시기 에 당신 이 작성 한 문법 에 따라 상 자 를 포장 하거나 뜯 는 동작 을 할 지 여 부 를 결정 합 니 다.
자동 포장 및 분해 주의 점:
그래서 자동 으로 포장 하고 상 자 를 뜯 는 기능 은 이른바'컴 파일 러 꿀'(Compiler Sugar)입 니 다.이 기능 을 사용 하 는 것 이 편리 하지만 프로그램 실행 단계 에서 자바 의 의 미 를 알 아야 합 니 다.예 를 들 어 아래 프로그램 은 컴 파일 할 수 있 습 니 다.
Integer i = null;
int j = i;
이러한 문법 은 컴 파일 시기 에 합 법 적 이지 만 운영 시기 에 오류 가 있 을 수 있 습 니 다.왜냐하면 이런 문법 은 다음 과 같 기 때 문 입 니 다.
Integer i = null;
int j = i.intValue();
null 은 i 가 대상 의 실 체 를 참고 하지 않 았 음 을 표시 합 니 다.대상 에 게 참고 이름 을 합 법 적 으로 지정 할 수 있 습 니 다.실제 i 는 어떠한 대상 도 참고 하지 않 았 기 때문에 intValue()방법 을 조작 할 수 없습니다.이러한 위의 쓰기 방법 은 실행 할 때 NullPointer Exception 오류 가 발생 할 수 있 습 니 다.
캐 시
자동 으로 상 자 를 풀 때-128-127 사이 의 값 에 대해 컴 파일 러 는 기본 형식 으로 처리 합 니 다.
public class test2 {
public static void main(String[] args) {
System.out.println("------ --------");
Integer a1 = 127;
Integer a2 = 127;
Integer a3 = new Integer(127);
System.out.println(a1==a2);
System.out.println(a2==a3);
System.out.println("------ --------");
Integer a4 = 128;
Integer a5 = 128;
Integer a6 = new Integer(127);
System.out.println(a4==a5);
System.out.println(a5==a6);
}
}
// :
------ --------
true
false
------ --------
false
false
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.