java
package-info.java란
서론 팀 내 코드리뷰를 하다 패키지에 package-info.java 파일이 존재한다는 사실을 알게 되었습니다. package-info.java가 무엇인지 잘 몰랐기에 이번 기회에 알아보고자 합니다. package-info.java란 package-info는 모든 Java 패키지에 추가할 수 있는 Java 파일입니다. package-info.java 파일은 2가지 목적으로 사용됩니다. 패키지 단위의 문서 작성 패키지 단위의 애노테이션 적용 1) 패키지 단위의 문서 작성 JDK5 이전에는 package.html을 통해 패키지 단위의 Javadoc 코멘트를 body 태그 안에 작성했습니다. 그러나 JDK5 이후에는 package-info.java가 등장해 package.html의 역할을 대신하기 시작했습니다..
Optional
서론 면접 질문으로 Optional에 대한 꼬리질문을 받았다. 옵셔널에 대한 소개와 이점 null을 그냥 반환하면 안되나요? 옵셔널 처리 방법? 옵셔널을 사용하면서 주의해야할 점은? 인텔리제이 옵셔널을 파라미터로 넣으면 경고가 뜨는데 왜그럴까? 꼬리 질문에 대해 제대로 답변하지 못했기에 Optional을 다시 공부하는 마음가짐으로 이 글을 작성하게 되었다. NullPointerException 피하기 NullPointerException는 골치 아픈 문제이다. 1965년 처음으로 null을 도입한 토니 호어(Tony Hoare)도 null을 만들었을 때를 회상하며, 이는 10억 달러짜리 실수라고 했다. null 때문에 발생할 수 있는 문제는 아래 예제를 통해 살펴보자. public class Person..
자바 추상클래스와 인터페이스
추상 클래스와 인터페이스의 차이에 대해 설명해주세요. 1. 추상메소드와 추상클래스 추상 메소드는 빈 껍데기이다. 추상메소드란 선언은 되어 있으나 코드가 구현되지 않은 것을 말한다. //추상 메소드 public abstract String getName(); //추상 메소드가 아님. why? 코드가 구현되어 있기 때문에! public abstract String getName() { return "hello"; } 추상 클래스를 사용하는 이유 : 추상 클래스를 상속받은 클래스는 추상 클래스 안에 있는 모든 추상 메소드를 구현해야 한다. 위 설명만 들으면 인터페이스와 추상 클래스가 같다고 느낄 수 있다. 인터페이스도 인터페이스 안에 있는 모든 추상메소드를 구현해야하기 때문이다. 2. 인터페이스 vs 추상클래..