JAVA
Image credit: Unsplash자바의 문법과 기능을 단순히 알기만 하는 것이 아니라, 그 기능이 왜 필요하고 어떻게 실무에 적용할 수 있는지에 대해 깊이 있게 탐구하기 위해 공부를 시작하였다.
지금까지 공부한 내용은 다음과 같다.
Object 클래스
Object 클래스는 모든 클래스의 최상위 부모이다. Object 클래스가 필요한 이유와 Object 클래스가 제공하는 기능과 equals()를 통해 자바의 동일성과 동등성 개념도 함께 공부하였다.
불변 객체
한번 생성하면 그 이후로 변하지 않는 객체를 불변 객체라 합니다. String, 래퍼, 날짜와 시간을 포함해서 자바가 제공하는 많은 객체들은 불변 객체로 제공된다. 불변 객체가 왜 필요한지, 그리고 어떻게 불변 객체를 만드는지 공부하였다.
String 클래스
String 클래스는 자바에서 문자열을 다룰 때 사용되는 클래스이다. String 객체의 기본 기능 뿐만 아니라, StringBuilder와 String의 기능과 성능 차이, 또한 자바가 String 클래스를 어떻게 최적화하는지 공부하였다.
래퍼, Class 클래스
자바 기본형의 한계를 알아보고 그 한계를 극복하기 위한 래퍼 클래스를 공부하였다. 추가로 클래스의 정보를 나타내는 Class 클래스, 시스템의 정보를 제공하는 System 클래스, 자주 사용하는 Math, Random 같은 클래스도 함께 공부하였다.
열거형 - ENUM
열거형은 높은 타입 안전성을 제공하는 훌륭한 기능이다. 단순히 열거형의 문법을 배우는 것이 아니라 본질적으로 열거형이 왜 필요한지 공부하였다. 그리고 열거형이 없던 시절 직접 구현했던 타입 안전 열거형 패턴도 구현해보았다.
중첩 클래스, 내부 클래스
클래스 내부에 클래스를 두는 것을 중첩 클래스 또는 내부 클래스라 한다.
예외 처리
자바에서 예외 처리 문법은 단순하지만 예외 처리가 왜 필요한지 공부하였다.