Optinal은 자바 8부터 도입된 클래스이다. 값이 존재할 수도 있고 존재하지 않을 수도 있는 경우에 사용된다. null을 직접 다루는 것보다 안전하고 명확한 코드를 작성할 수 있으며 적절히 사용하면 가독성이 좋아진다. of로 옵셔널 객체 생성이 가능하며 get으로 객체를 언박싱 할 수 있다.String a = "hello"; // 옵셔널 객체 생성 Optional optional = Optional.of(a); // String 객체로 꺼내기 System.out.println(optional.get()); ofNullable로 비어있는 옵셔널 객체로도 생성이 가능하다.Optional nullOptional = Optional.ofNullable(null); isPresent로 객체가 비어있는지도 확인..
Language
Framework의 이해 프레임워크는 여러 분야에서 사이한 개념으로 사용되기 때문에 이에 대한 정확한 의미 파악은 쉽지 않다. 하지만 공통적으로 "잘 정의된 구조 또는 골격" 이라는 의미를 가진다. 따라서 자바에서 말하는 프레임워크는 "잘 정의된 구조의 클래스들" 이라 볼 수 있다. 즉 프레임워크는 프로그래머들이 쓸 수 있도록 잘 정의된 클래스들의 모임이라 할 수 있는데, 이는 '라이브러리'라 불리게 된다. 하지만 '컬렉션 라이브러리'가 아닌 '컬렉션 프레임워크'라 한다. 그 이유는 관련된 클래스의 정의에 적용되는 설계 원칙 또는 구조가 존재하기 때문이다. Collection Framework 데이터의 저장 방법, 그리고 이와 관련 있는 알고리즘에 대한 프레임워크이다. 자료구조, 알고리즘, 제네릭 기반의..
Instanceof 인터페이스의 instanceof의 문장은 다음과 같다. if(인스턴스 instanceof (interface or extends class) ) 인스턴스의 클래스가 직접 구현한 interface인지, 아니면 상속받은 클래스가 구현한(간접구현) 것이면 True를 반환한다. package interFaces; interface PrinterA{ void PrintA(String str); } class SimpleP implements PrinterA { @Override public void PrintA(String str) { System.out.println("프린터"); } } class MultiP extends SimpleP{ public void PrintA() { super..
인터페이스 원리 인터페이스의 기본 골격은 클래스와 동일하다. 대신 class 대신 interface라 선언 되어있고, 메소드는 몸체없이 마무리된다. interface interF{ public void print(String dog); } 메소드의 몸체가 비어있는 메소드를 가리켜 추상 메소드(Abstract Methods)라 하며 인스턴스 대상으로는 인스턴스 생성이 불가능하다. 다만 클래스에 implements 키워드가 사용되어 상속이 아닌 '구현'의 대상이 된다. 구현할 인터페이스를 명시할 떄는 implements를 사용 한 클래스는 둘 이상의 인터페이스를 구현 가능 상속과 구현은 동시에 가능 두 인터페이스를 선언 package interFaces; public interface Printer{ pub..