자바의 사용법과 동작원리에 대해 학습합니다. 어떻게 해당 자료구조를 사용할 수 있는가? 어떻게 값을 전달하는가? 물음으로부터 시작하여 자바 구조와 동작 원리를 깊이 학습합니다. 이를 통해 최적화된 구조로 프로그래밍하고 동시성 문제를 해결하며, 기본적인 스프링 구조에 대한 학습 난이도를 낮춥니다.
<aside> 💡 목차
</aside>
서술 ⇒
자바의 자료형에는 원시형(기본형_char, int, float, double. . .)과 참조형(class, interface. . )으로 나누어짐. 기본 타입의 데이터를 객체로 표현해야 하는 경우 → 원시 타입의 값을 해당하는 Wrapper 클래스의 객체로 바꾸는 과정을 의미.
Wrapper 클래스란 기본 자료 타입을 객체로 다루기 위해 사용하는 클래스들을 말함.
Primitive type | Wrapper class |
---|---|
byte | Byte |
char | Character |
int | Integer |
float | Float |
double | Double |
boolean | Boolean |
long | Long |
short | Short |
JDK 1.5 부터는 박싱과 언박싱에 필요한 상황에 자바 컴파일러가 자동으로 처리해줌.
자동화된 박싱과 언방식을 AutoBoxing, AutoUnBoxing이라 부름.
래퍼 클래스의 주요 용도는 기본 타입의 값을 박싱 해서 포장 객체로 만드는 것임.
하지만 문자열을 기본 타입 값으로 변환할 때에도 사용. 대부분의 래퍼 클래스에는 parse + 기본 타입명으로 되어있는 정적 메서드가 존재. 이 메서드는 문자열을 매개 값으로 받아 기본 타입 값으로 변환.
이러한 Wrapper class를 사용하는 이유는
래퍼 클래스는 모두 java.lang 패키지에 포함되어 제공됨. ⇒ 별다른 패키지 불러오기 없이 곧바로 소스 단에서 사용이 가능함.
래퍼 클래스를 이용하면 각 타입에 해당하는 데이터를 파라미터로 전달받아 해당 값을 가지는 객체로 만들어준다.
예시 코드
public class Wrapper_Ex {
public static void main(String[] args) {
String str = "10";
String str2 = "10.5";
String str3 = "true";
byte b = Byte.parseByte(str);
int i = Integer.parseInt(str);
short s = Short.parseShort(str);
long l = Long.parseLong(str);
float f = Float.parseFloat(str2);
double d = Double.parseDouble(str2);
boolean bool = Boolean.parseBoolean(str3);
System.out.println("문자열 byte값 변환 : "+b);
System.out.println("문자열 int값 변환 : "+i);
System.out.println("문자열 short값 변환 : "+s);
System.out.println("문자열 long값 변환 : "+l);
System.out.println("문자열 float값 변환 : "+f);
System.out.println("문자열 double값 변환 : "+d);
System.out.println("문자열 boolean값 변환 : "+bool);
List<Integer>list = new ArrayList<>();
list.add(200);//자동박싱
}
}
//출력