JAVA14 orElseGet 과 orElse 차이 What Optional의 쓰이는 메소드로서 체이닝 형식으로 사용되어 질 수 메소드이다. 두개의 함수 모두 해당 값이 존재하지 않을 때 라는 의미를 갖는 메소드이다. Optional name = Optional.ofNullable("엘리자베스"); name.~~~ ❓Why 호출로 인해 메모리 상에 이슈가 발생할 수 있다. 혹은 함수를 호출하는데 응답시간에 지연이 생긴다. 결과적으로 createDefault의 호출 여부에 따라 다르다는 것을 알 수 있다. 예제 코드 package com.programmers.objectstudy; import java.time.LocalDateTime; import java.util.Optional; public class Main { public static void m.. JAVA 2022. 8. 25. 객체 판별 Equals를 재정의하려거든 Hashcode도 재정의하라 🔎hash table 간략 설명 - 해쉬 테이블이란 ? - key,value 쌍으로 이루어진 자료구조 충돌 처리 방식에 따른 알고리즘 Separate Chaining 방식 : 충돌이 발생하면 LinkedList에 노드를 추가하는 방식으로 삽입 삭제 가 간편하고 문제가 없다.(추가적 메모리 사용) LinkedList 뿐만 아니라 Tree를 사용함으로 탐색 성능을 높일 수 있다. 노드가 8개 이하일 경우 LinkedList를 사용하고 8개 이상으로 늘어날 때 Tree구조로 데이터 자료구조를 변경한다. Open Addressing 방식 고정 크기의 배열을 사용하는 방식으로 Separate Addressing 에 반해 메모리가 덜 사용된다 Linear P.. JAVA 2021. 10. 18. 동시성 직렬성, 동시성, 병렬성 직렬성 각각의 Transaction이 일정한 순서를 가지고 순차적으로 실행되는 것을 의미. 동시성 Transcacion들이 순차적이 아닌 transaction을 구성하는 각각의 쿼리문들이 transacion의 순서에 상관없이 동시에 실행되는 것을 의미. 한 CPU에서 동시에 여러 작업을 하는 것 처럼 보이게 만든다. 싱글 코어에서 멀티 쓰레드를 동작하는 방법. 여러 개의 스레드가 번갈아가면서 실행되는 성질을 말한다. 멀티 스레드로 동시성을 만족시킬 수 있는 것이다. 동시성과 멀티스레 한 꺼번에 많은 것을 처리하는 논리적인 개념이다. 한 CPU에 2개 이상의 Process들이 있을 때 , CPU는 빠르게 Context Swithching이 일어나면서 작업을 처리하기 때문에 동시에 .. JAVA 2021. 5. 31. Blocking , NonBolocking 동기(Synchronous) vs 비동기(Asynchronous) 동기(Synchronous) Thread1이 작업을 시작 시키고, Task1이 끝날때까지 기다렸다 Task2를 시작한다. 작업 요청을 했을 때 요청의 결과값(return)을 직접 받는 것이다. 요청의 결과값이 return값과 동일하다. 호출한 함수가 작업 완료를 신경 쓴다. 비동기(Asynchronous) Thread1이 작업을 시작 시키고, 완료를 기다리지 않고, Thread1은 다른 일을 처리할 수 있다. 작업 요청을 했을 때 요청의 결과값(return)을 간접적으로 받는 것이다. 요청의 결과값이 return값과 다를 수 있다. 해당 요청 작업은 별도의 스레드에서 실행하게 된다. 콜백을 통한 처리가 비동기 처리라고 할 수 있다. 호출된.. JAVA 2021. 5. 23. Enum class Enum 클래스란 Enum이라는 것은 열거형이라는 뜻이다. 서로 연관되거나 또는 관련이 있는 상수들의 집합을 의미한다. JDK 1.5부터 사용할 수 있다. 이전 까지만 해도 final static 과 같은 방식으로 상수를 정의하였다. 클래스 내부에 상수를 정의하므로써 상수의 개수가 많아지면서 네임 충돌이 발생, 가독성이 떨어지게 된다. Enum 클래스를 사용하는 이유 코드가 간략해지며 가독성이 높아진다. 인스턴스 생성과 함께 상속을 방지하여 타입 안전성이 보장된다. Enum클래스의 각 상수들을 고정된 타입으로서 다른 패키지 또는 클래스에서 변경하지 못한다. 이를 위해 생성자의 접근 제어자를 Private로 설정해야 하며 타입은 final과 같은 성격을 뛴다. 실질적으로 클라이언트에서 Enum 클래스의 인.. JAVA 2021. 5. 17. 이전 1 2 3 다음