자바에서 여러가지 일을 동시에 처리하기 위해 사용되는 것이 스레드(Thread)이다. 먼저 프로세스와 스레드를 알아보자 프로세스프로세스(Process)는 일반적으로 cpu에 의해 실행중인 프로그램을 말하고, 자신만의 메모리 공간을 포함한 독립적 실행 환경을 가지고 있다. 우리가 사용하는 프로그램의 일부는 여러 프로세스간 상호작용을 하는 것일수 있다.자바JVM(Java Virtual Machine)은 주로 하나의 프로세스로 실행되며, 동시에 여러 작업을 수행하기 위해 멀티 스레드를 지원하고 있다.스레드스레드(Thread)는 프로세스안에서 실행하는 작은 단위를 말하며 JVM에 의해 관리된다. 프로세스는 적어도 한 개 이상의 스레드가 있으며, Main 스레드 하나 시작하여 스레드를 추가 생성하게 되면 멀티스레..
Java
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로 객체가 비어있는지도 확인..
Framework의 이해 프레임워크는 여러 분야에서 사이한 개념으로 사용되기 때문에 이에 대한 정확한 의미 파악은 쉽지 않다. 하지만 공통적으로 "잘 정의된 구조 또는 골격" 이라는 의미를 가진다. 따라서 자바에서 말하는 프레임워크는 "잘 정의된 구조의 클래스들" 이라 볼 수 있다. 즉 프레임워크는 프로그래머들이 쓸 수 있도록 잘 정의된 클래스들의 모임이라 할 수 있는데, 이는 '라이브러리'라 불리게 된다. 하지만 '컬렉션 라이브러리'가 아닌 '컬렉션 프레임워크'라 한다. 그 이유는 관련된 클래스의 정의에 적용되는 설계 원칙 또는 구조가 존재하기 때문이다. Collection Framework 데이터의 저장 방법, 그리고 이와 관련 있는 알고리즘에 대한 프레임워크이다. 자료구조, 알고리즘, 제네릭 기반의..
인터페이스 원리 인터페이스의 기본 골격은 클래스와 동일하다. 대신 class 대신 interface라 선언 되어있고, 메소드는 몸체없이 마무리된다. interface interF{ public void print(String dog); } 메소드의 몸체가 비어있는 메소드를 가리켜 추상 메소드(Abstract Methods)라 하며 인스턴스 대상으로는 인스턴스 생성이 불가능하다. 다만 클래스에 implements 키워드가 사용되어 상속이 아닌 '구현'의 대상이 된다. 구현할 인터페이스를 명시할 떄는 implements를 사용 한 클래스는 둘 이상의 인터페이스를 구현 가능 상속과 구현은 동시에 가능 두 인터페이스를 선언 package interFaces; public interface Printer{ pub..