회고록 블로그

[자료구조] 네이버 부스트코스 '자바로 구현하고 배우는 자료구조' 공부 필기 (6) 본문

3. Computer Science 공부/자료구조

[자료구조] 네이버 부스트코스 '자바로 구현하고 배우는 자료구조' 공부 필기 (6)

김간장 2021. 12. 1. 21:33

[1] 이전 강의필기

2021.11.30 - [3. Computer Science 공부/자료구조] - [자료구조] 네이버 부스트코스 '자바로 구현하고 배우는 자료구조' 공부 필기 (5)

 

[자료구조] 네이버 부스트코스 '자바로 구현하고 배우는 자료구조' 공부 필기 (5)

시간날때마다 자료구조 강의를 청강하려고 노력중..2 출처 강의 : '자바로 구현하고 배우는 자료구조', Rob Edwards, https://www.boostcourse.org/cs204/joinLectures/145114 자바로 구현하고 배우는 자료구조..

cinnamonc.tistory.com

 

[2] 출처 및 공부 중인 강의 : '자바로 구현하고 배우는 자료구조', Rob Edwards, https://www.boostcourse.org/cs204/joinLectures/145114

 

자바로 구현하고 배우는 자료구조

부스트코스 무료 강의

www.boostcourse.org

 

[3] 유의사항

※ 강의 들으며, 개인적으로 필요한 내용만 필기함

 

 

※ 본 글은 강의 내용을 여러번 청강하고 혼자 깨달음을 얻으며 필기한 글임

※ 강의 자체는 너무 명강의이고 교수님도 명강사이지만,

      필자의 이해력이 부족해서(ㅜㅜ) 맞지 않는 사실이 존재할 수 있음 + 교수님의 설명(혹은 의도)과 다른 내용이 있을 수 있음..


1. Autoboxing

[개요]

- 기본 자료형을 객체의 형태로 바꿔주는 Autoboxing

 

[내용]

- 일단 기본자료형과 메모리에 공간이 어떻게 할당되는지 정리할 필요가 있음

 

- Java에는 기본 자료형(byte, short 등)이 있는데 이 자료형은 객체가 아니기 때문에 상속이라는 관계도 없음

   → 당연히 Object 객체의 메소드인 equals, hashCode 등도 없음

- 만약 어떤 값(정수 등)을 기본 자료형(int 등)으로 할당하면 JVM은 필요한 만큼(int는 4바이트 등)만 메모리에 공간을 할당함

 

- 또 다른 자료형으로 래퍼 클래스(Wrapper Class)가 있고, 이 래퍼 클래스는 객체임 (설명은 뒤에서)

- Java에서 객체가 생성될 땐, JVM이 4바이트짜리 포인터를 설정해서 스택에 공간을 할당함

   힙에는 (객체와 관련된 정보들을 저장하기 위해) 메모리 공간을 계산해서 공간을 할당함

   그리고 스택에 있는 4바이트짜리 포인터는 힙의 공간을 가리키게 됨

 

 

> Wrapper Class(래퍼 클래스)

- 객체가 아닌 기본 자료형은 byte, short 등이 있다고 했는데, Wrapper Class는 기본 자료형의 객체 버전이라고 볼 수 있음

- 기본 자료형 byte의 래퍼 클래스는 "Byte"이고 기본 자료형 short의 래퍼 클래스는 "Short"임

   → 대부분 기본 자료형의 첫 문자를 대문자로 하면 래퍼 클래스명이 되는 듯함

   → 하지만 애매하게도 기본 자료형 int의 래퍼 클래스는 "Integer"임

- Byte, Short 등 래퍼 클래스는 객체이기 때문에 당연히 Object 클래스를 상속받았을 것

 

- Java는 Autoboxing을 이용해서 이 둘을 적절하게 바꿔줌

 

 

2. 예외

[개요]

- Java에서의 예외 설정 방법

 

[내용]

- Java에는 java.lang.Exception 클래스가 있는데, 이 클래스는 별도로 프로그래머가 불러올 필요가 없음

   (Java가 자동으로 java.lang을 불러오기 때문)

- 모든 예외 상황은 이 java.lang.Exception 클래스를 상속받음

 

※ 예외 관련 문법은 Java 기본 문법 공부 시 배웠기 때문에 필기 생략함

 

- 예외 상황은 무엇이 코드에서 잘못됐는지를 알려줌

   → 만약 디버깅 하다가 에러 메시지를 만나게 되면 무엇이 잘못됐고 이것을 고치기 위해 어디에서 힌트를 얻어야 하는지 알 수 있음

 

> 예외 클래스 직접 정의하기

- 만약 사용자가 예외 클래스를 정의하는데 예외 클래스의 정보가 충분하지 않거나, 에러 내용을 유추할 수 없는 클래스의 이름으로 설정해버리면 추후 예외 상황이 발생하고 코드를 고치는데 오랜 시간이 소요될 수 있음

 

- 예외 클래스를 만들 땐 패키지로 묶는 것이 좋음

   → 무엇이든 서로 관련 있는 것들은 묶어두는 것이 좋음

   → 다양한 예외 상황에 대한 코드를 짤 때 하나로 묶어두면, 예외가 발생할 때 찾기 쉬움

 

 

여기까지 자료구조를 본격적으로 공부하기 전에 필요한 기본 내용을 정리했음..

 

 

Comments