CHANGEL
SOLID BASICS
CHANGEL

공지사항

  • DEV.CHANGEL PROFILE
  • SOLID BASIC (289)
    • 공부 STUDY (115)
      • JAVA (57)
      • C | C++ (34)
      • CS (11)
      • MySQL (2)
      • ALGORITHM (1)
      • HTML (2)
      • CSS (2)
      • JS (2)
      • CODING (0)
      • MINI PROJECT (3)
    • 스프링 SPRING (21)
      • [SPRING] 김영한 스프링 입문 (11)
      • [SPRING] 남궁성 스프링의 정석 (1)
      • [SPRING] 스프링 핵심원리 (9)
    • 전공 수업 CS (65)
      • Computer Network (13)
      • algorithms (21)
      • Computer Architecture (7)
      • Software Engineering (4)
      • Data Structure (2)
      • DataBase (1)
      • Digital Engineering (14)
      • Discrete Mathematics (3)
      • Introduction to programming (0)
      • Mobile Software (0)
      • Intelligence and Informatio.. (0)
    • 대외활동 (35)
      • 신한은행 대학생 홍보대사 34기 (8)
      • SKT T프렌즈 5기 (13)
      • SK DEVOTION YOUNG 1기 (9)
      • 성균관 대학교 공학교육혁신센터 수강 (3)
      • 수상 기록 (1)
    • 솝트 33기 안드로이드 (7)
      • [솝트 33기] 회고록 (0)
      • [솝트 33기] 안드로이드 왕초보 스터디 (2)
      • [솝트 33기] 코틀린 스터디 (0)
      • [솝트 33기] Git을 털어보자 깃털 스터디 (4)
    • 멋쟁이사자처럼 11기 (6)
      • 멋사 회고록 (4)
      • 백엔드 세션 (1)
      • 기획 세션 (1)
      • 연합해커톤 운영단 (기획팀) (0)
    • 백준 BAEKJOON (16)
    • 독서 BOOK (10)
    • 자격증 CERTIFICATE (1)
    • 준비 서류 및 회고록 MEMOIR (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

최근 댓글

인기 글

CHANGEL

SOLID BASICS

공부 STUDY/JAVA

[JAVA] java.lang 패키지/오토박싱

2023. 1. 15. 12:27

java.lang 패키지/오토박싱

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

  • java.lang패키지의 클래스는 import를 하지 않고도 사용할 수 있다.
  • java.lang패키지에는 기본형타입을 객체로 변환시킬때 사용하는 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패키지에 속해 있다.
    public class WrapperExam {
        public static void main(String[] args) {
            int i = 5; 
            Integer i2 = new Integer(5);
            Integer i3 = 5;     //오토박싱
            int i4 = i2.intValue();
            int i5 = i2;       //오토언박싱
        }
    }
  • 오토박싱(Auto Boxing)
    • Integer i3 = 5; 숫자 5는 원래 기본형이지만 자동으로 Integer형태로 변환된다.
  • 오토 언박싱(Auto unboxing)
    • int i5 = i2; Integer객체타입의 값을 기본형 int로 자동으로 변환되어 값을 할당한다.
  • 오토박싱(Auto Boxing),오토 언박싱(Auto unboxing) 은 JAVA 5부터 지원한다. 이 때 내부적으로 Wrapper클래스들이 사용된다.
 
Integer는 int의 wrapper class이다.
class이기 때문에 속성과 메소드를 가진다. Integer 타입인 경우 필드와 method를 사용할 수 있지만, 기본형 타입인 int의 경우 필드와 method를 사용할 수 없는걸 확인할 수 있다.

java.lang패키지에는 기본형 타입을 객체로 변환시킬 때 사용하는 Wrapper클래스에 대해 알아 보자.

public class WrapperExam {
    public static void main(String[] args) {
        int i = 5; 
        Integer i2 = new Integer(5);
        Integer i3 = 5;                      //오토박싱
        int i4 = i2;                         //오토언박싱
        long i2_long = i2.longValue();
        long i4_long = i4.longValue();       // 오류 발생!
    }
}

이 때, integer타입과 int타입의 오토박싱, 오토언박싱의 경우에도 Wrapper클래스가 사용된다.

i2는 Integer형이므로 longValue()메소드를 사용할 수 있으나 i4는 int형이므로 메소드를 사용하면 오류가 발생한다.


'공부 STUDY > JAVA' 카테고리의 다른 글

[JAVA] java.util패키지 | 컬렉션 프레임워크(Collection Framework)  (0) 2023.01.15
[JAVA] StringBufffer, StringBuilder 사용법 & 차이점이 뭘까?  (0) 2023.01.15
[JAVA] Object 클래스, 오버라이딩  (0) 2023.01.15
[JAVA] 예외처리( exception handing ) - (3)사용자 정의 exception  (0) 2023.01.15
[JAVA] 예외처리( exception handing ) -(2)  (0) 2023.01.15
    '공부 STUDY/JAVA' 카테고리의 다른 글
    • [JAVA] java.util패키지 | 컬렉션 프레임워크(Collection Framework)
    • [JAVA] StringBufffer, StringBuilder 사용법 & 차이점이 뭘까?
    • [JAVA] Object 클래스, 오버라이딩
    • [JAVA] 예외처리( exception handing ) - (3)사용자 정의 exception
    CHANGEL
    CHANGEL
    NOT GIVING UP | SOLID BASICS

    티스토리툴바