본문 바로가기
반응형

Java11

JVM STW 시간 : minor GC < full GC 기본적인 GC 방법으로 Minor GC에서 Copy & Scavenge 알고리즘을 사용하고, Full GC에서 Mark & Compact 알고리즘을 사용하는 방법입니다. Copy & Scavenge Minor GC가 발생하면 Eden과 Survivor1의 활성 객체를 Survivor2로 복사하고, Eden과 Survivor1 영역을 비웁니다. 다음 Minor GC가 발생하면 Eden과 Survivor2의 활성 객체를 Survivor1로 복사하고, Eden과 Survivor2 영역을 비웁니다. 다음과 같은 작업을 반복적으로 수행해 오래된 객체는 Old 영역으로 옮겨지게 됩니다. Hit(GC에서 살아남은 횟수)가 Tenuring Threshold 만큼 수행된.. 2021. 6. 28.
Optional 빈 값 Optional optHouse = Optional.empty(); not null Optional optHouse = Optional.of(new House()); flatMap 으로 연결 person.flatMap(Person::getHouse) .flatMap(House::getInsurance) .map(Insurance::getName).orElse("DolphaGo"); -> Optional house와insurance + name있다면 실행 없다면 orElse실행 isPresent() : null이면 false, 아니면 true ifPresent(Consumer block) : 있다면 인자 실행 ifPresentOrElse(Consumer 2021. 2. 19.
스트림 filter, sorted, map, collect 와 같은 여러 빌딩 블록 연산을 연결해서 복잡한 데이터 처리 파이프라인을 만들 수 있습니다. 여러 연산을 파이프라인으로 연결해도 여전히 가독성과 명확성이 유지가 됩니다. filter 메서드의 결과는 sorted 메서드의 input으로, 다시 sorted의 결과는 map메서드의 input으로, map 메서드의 결과는 collect로 연결됩니다 고수준 빌딩 블록(high-level building block)으로 이루어져 있으므로 특정 스레딩 모델에 제한되지 않고 자유롭게 어떤 상황에서든 사용 List lowCaloriesDishNames = menu.stream() .filter(d-> d.getCalories() Optional을 Optional으로 평.. 2021. 2. 19.
함수형 인터페이스 인터페이스에 함수가 하나라면 @FunctionalInterface을 붙여 람다식으로 활용가능 @FunctionalInterface interface RunSomething { void doIt(); } RunSomething runSomething = new RunSomething() { @Override public void doIt() { System.out.println("Hello, I'm DolphaGo"); } }; RunSomething runSomething = () -> System.out.println("Hello, I'm DolphaGo") 기본 함수형 인터페이스 Function plus10= (i) -> i+10; // -> UnaryOperator plus10 = (i) ->(i+.. 2021. 2. 19.
반응형