본문 바로가기
자바(Java)

자바 중급2 - java.lang 패키지/오토박싱

by codeyaki 2022. 1. 14.
반응형

해당 강의를 듣고 정리한 것입니다

https://programmers.co.kr/learn/courses/9

 

자바 중급

평가 5.0 17개의 평가 ★★★★★17 ★★★★0 ★★★0 ★★0 ★0 ds02168 2021.08.20 15:37 Yeonggwang 2021.06.28 01:48 강신우 2021.04.23 10:20 HyeonWoo Jeong 2021.04.08 17:12 이용준 2021.01.26 19:23 리뷰 더보기

programmers.co.kr


 

java.lang

: 자바는 기본적으로 다양한 패키지를 지원하는데 그중에서 중요한 패키지

  • import하지 않고도 사용할 수 있음.
  • wrapper클래스 : 기본형타입을 객체로 변환시킬 때 사용하는 클래스
    Boolean, Byte, Short, Integer, Long, Float, Double 클래스
  • 모든 클래스의 최상위 클래스인 Object또한 java.lang패키지
  • 문자열과 관련된 String, StringBuffer, StringBuilder 또한 java.lang패키지
  • 화면에 값을 출력하던 System클래스 도 java.lang패키지
  • Math클래스도 java.lang 패키지
  • 쓰레드와 관련된 Thread클래스도 java.lang패키지
  • 이외에도 다양한 클래스와 인터페이스가 java.lang패키지에 속해있다.

오토 박싱/오토 언박싱(Auto Boxing/ Auto Unboxing)

: 컴파일러 내부적으로 Wrapper클래스를 사용하여 자동으로 기본형 타입을 참조형 타입으로 변환해주는 것
(오토 언박싱은 참조형 타입 -> 기본형 타입 변환)

 

public class WrapperExam {
	public static void main(String[] args) {
		int i = 5;
		// 기본형 타입 (객체가 아님)
		Integer i2 = new Integer(5);
		// Int를 객체로 바꿔주는 Wrapper클래스인 Integer클래스
		// 숫자5가 객체(참조형 타입)으로 생성해주는 것
		
		Integer i3 = 5;
		//숫자5는 기본형이지만 자동으로 Integer로 형변환 해주는것
		//이를 오토박싱이라고 부름(java5 이후부터 생긴 기능)
		//다른 기본형 타입또한 마찬가지
		
		int i4 = i3.intValue();
		//i3의 값(객체값, 참조형)을 int타입(기본형)으로 변환을 해줘야 int타입으로 사용가능했음
		int i5 = i3;
		//해당 과정을 자동으로 해주는 것을 오토언박싱이라고 부름
		// java5전에는 해당과정을 필수적으로 해주어야 했음.
		
	}
}
  • 오토 박싱(Auto Boxing)
     : Integer i3 = 5; 숫자 5는 원래 기본형이지만 자동으로 Integer형태로 변환
  • 오토 언박싱(Auto Unboxing)
     : int i5 = i2; Integer객체 타입의 값을 기본형 int로 자동으로 변환되어 값을 할당
  • 오토 박싱(Auto Boxing), 오토 언박싱(Auto Unboxing)은 JAVA5부터 지원.
    자동으로 Wrapper클래스들이 사용되는 것.

int와 Integer??

  • int형은 클래스(객체)가 아닌 기본형 타입이므로 필드와 메서드를 가질 수없음
    따라서 int형으로 만든 것은 Integer의 메서드와 필드를 사용할 수 없음

Integer의 필드와 메서드는 https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html 해당 api문서에서 확인할 수 있음.

 

 

 

Integer (Java Platform SE 7 )

Returns the value obtained by rotating the two's complement binary representation of the specified int value left by the specified number of bits. (Bits shifted out of the left hand, or high-order, side reenter on the right, or low-order.) Note that left r

docs.oracle.com

 

반응형