회고록 블로그
[자료구조] 네이버 부스트코스 '자바로 구현하고 배우는 자료구조' 공부 필기 (6) 본문
[1] 이전 강의필기
2021.11.30 - [3. Computer Science 공부/자료구조] - [자료구조] 네이버 부스트코스 '자바로 구현하고 배우는 자료구조' 공부 필기 (5)
[2] 출처 및 공부 중인 강의 : '자바로 구현하고 배우는 자료구조', Rob Edwards, https://www.boostcourse.org/cs204/joinLectures/145114
[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 기본 문법 공부 시 배웠기 때문에 필기 생략함
- 예외 상황은 무엇이 코드에서 잘못됐는지를 알려줌
→ 만약 디버깅 하다가 에러 메시지를 만나게 되면 무엇이 잘못됐고 이것을 고치기 위해 어디에서 힌트를 얻어야 하는지 알 수 있음
> 예외 클래스 직접 정의하기
- 만약 사용자가 예외 클래스를 정의하는데 예외 클래스의 정보가 충분하지 않거나, 에러 내용을 유추할 수 없는 클래스의 이름으로 설정해버리면 추후 예외 상황이 발생하고 코드를 고치는데 오랜 시간이 소요될 수 있음
- 예외 클래스를 만들 땐 패키지로 묶는 것이 좋음
→ 무엇이든 서로 관련 있는 것들은 묶어두는 것이 좋음
→ 다양한 예외 상황에 대한 코드를 짤 때 하나로 묶어두면, 예외가 발생할 때 찾기 쉬움
여기까지 자료구조를 본격적으로 공부하기 전에 필요한 기본 내용을 정리했음..
'3. Computer Science 공부 > 자료구조' 카테고리의 다른 글
리스트(list)에 대한 공부_기초 (0) | 2022.03.17 |
---|---|
[자료구조] 네이버 부스트코스 '자바로 구현하고 배우는 자료구조' 공부 필기 (5) (0) | 2021.11.30 |
[자료구조] 네이버 부스트코스 '자바로 구현하고 배우는 자료구조' 공부 필기 (4) (0) | 2021.11.23 |
[자료구조] 네이버 부스트코스 '자바로 구현하고 배우는 자료구조' 공부 필기 (3) (0) | 2021.11.22 |
[자료구조] 네이버 부스트코스 '자바로 구현하고 배우는 자료구조' 공부 필기 (2) (0) | 2021.11.11 |