최신 글
기술과 일상을 함께 기록합니다.
[Java] Generic(제네릭)
Java 제네릭 클래스와 메서드, 상한·와일드카드의 읽기·쓰기 제약을 예제로 살펴보고 타입 소거 뒤의 런타임 경계를 설명한다.
백분율 변환
Java에서 부분값을 전체값의 백분율로 계산하고 0으로 나누기, 소수점 반올림, 로캘별 표시를 분리해 처리하는 방법을 설명한다.
바이트 단위 변환
바이트를 사람이 읽기 쉬운 이진 단위로 바꾸고, KB와 KiB의 차이 및 0·음수 입력을 처리한다.
[Java] Lambda Expressions(람다식)
함수형 인터페이스를 람다식으로 구현하는 방법과 표현식·블록 본문의 반환 규칙, 익명 클래스와 this 동작의 차이를 살펴본다.
규칙 2. 생성자 인자가 많을 때는 Builder 패턴 적용을 고려하라
선택 인자가 많은 Java 객체를 Builder로 구성하고 필수값 검증, 중간 상태 차단, 빌더 재사용 시 주의점을 예제로 살펴본다.
규칙 1. 생성자대신 정적 팩터리 메서드를 사용할 수 없는지 생각해 보라
Java 정적 팩터리 메서드의 이름·반환 타입·객체 재사용 이점을 생성자와 비교하고 선택 시 고려할 제약을 예제로 설명한다.
String 보다는 StringBuilder, StringBuffer를 사용해야하는 이유.
문자열 누적 상황에서 String과 StringBuilder의 생성 비용을 비교하고 StringBuffer의 동기화가 필요한 범위를 예제로 설명한다.
Java static 키워드
Java static 필드·메서드가 인스턴스와 달리 공유되는 방식, 정적 중첩 클래스와 초기화 시점 및 공유 상태의 주의점을 설명한다.
java final 키워드
Java final이 클래스 상속, 메서드 재정의, 변수 재할당에 각각 미치는 영향을 예제로 구분하고 참조 불변성과의 차이를 짚는다.
Java 달력 만들기
java.time으로 월의 첫 요일과 일수를 구해 일요일부터 시작하는 콘솔 달력을 만든다.
Java 줄바꿈 처리
Java에서 LF와 CRLF를 파일에 기록할 때 운영체제 기본 줄 구분자와 파일 형식의 약속을 구분하고 중복 변환을 피하는 방법을 다룬다.