본문 바로가기
Today I Learned 2024. 4. 3.

(24.04.03) Java의 정석 학습(내부 클래스, 예외처리 exception handling 심화 )

생각보다 학습내용이 많아보여서 발등에 불이 떨어진 상황이 되어버렸다

주말에 심지어 중요한 개인적인 약속도 잡혀져서 지금 오전 08:00 부터 저녁 09:00까지의 학습시간으로 내일 모레까지 밀어붙일 계획이다..

 

개인적으로 억지로라도 한번씩은 읽어야하는 Java의 정석이기도 하고 이렇게 해놔야 코드를 짜는데 어려움이 없을 테고

또, 팀 프로젝트에도 좀더 기여를 할 수 있을 것이라 생각해서

유지하면서 진행하도록 한다!


Java의 정석 학습 간단 정리

  간단하게 아래 정리를 해보면 양은 없어보이지만 진짜 아침부터 쭈우욱 읽고 이해하고 나름대로 나의 말로 Notion에 정리하는데 하루가 다 지나가 버렸다..

그냥 넘어갈 수 는 있는 부분인데 예외처리할 때 기존에 왜 try-catch문에 ()넣어서 객체생성을 왜 하는지 그냥 훌렁 넘겼는데 가장 중요한 부분이었고., 책 안봤으면 진짜 모르고 넘어갔을 부분이라 아찔하다 

  java.lang패키지와 유용한 클래스 부분역시 정리를 하기는 했으나 진짜 클래스 마다 메서드는 끝이 없이 나오는 걸 보면 다 외우는 것 보다 진짜 많이 쓰는 것을 기록하고 한번씩 읽어보고 실습하는 방법으로 진행을 했다.

  오늘도 역시 간단한 정의 외에는 블로그에 옮겨선 적으면서 공부할 시도를 했는데, 마크다운을 잘 지원을 하지 않는점 그리고 기타 그래프 등은 저작권 이슈라고 생각해 Notion 에 옮겨서 적도록 한다.

 

더보기

내부 클래스 inner class

  • 클래스 안에 선언된 클래스
  • 코드 복잡성을 줄이기 위해 = 캡슐화

인스턴스 클래스

스태틱 클래스

지역 클래스

익명 클래스

 

예외처리 exception handling

자동 자원 반환 try-with-resource문

AutoCloseable 인터페이스

억제된 예외 Surpressed

사용자 정의 예외

  • 실제 Java의 예외 클래스 계층 외 사용자가 직접 정의한 예외

예외 되던지기 exception re-throwing 

  • 한 메서드에서 여러개의 예외가 발생할 경우, 예외를 나눠서 처리하기 위해 다시 예외를 인위적으로 발생시키는 방법

연결된 예외 chained exception

  • SpaceException예외가 발생한 InstallException 예외를 다루는 상황
  • 예외 unchecked 해야하는 상황

java.lang패키지와 유용한 클래스

Object클래스

  • Object 클래스는 모든 클래스의 최고 조상 클래스

equals(Object obj)

hashCode()

toString()

clone()

공변 반환타입 convariant return type

얇은 복사 shallow copy 깊은 복사 deep copy

getClass()

 

String클래스

String클래스 메서드

join() & StringJoiner

String의 기본형값으로 변화

 

StringBuffer클래스

StringBuffer 생성자

StringBuffer 변경

StringBuffer 비교

 

Math클래스

Math클래스 메서드

예외발생 메서드


아침에 잠깐 밖을 보니까 꽃이 이제 스리슬슬 만개하는 와중인것 같다..

하지만 Java 의 정석에서 너무 질질 끌고 있는 학습 시간때문에 빠르게 좀 정리를 하고

팀 프로젝트도 진행하면서 주말에는 잠깐 바람좀 쐬러 리프레쉬할 시간이 필요할 듯 보인다