본문 바로가기

Java16

java #5 [Stack] Stack 밑이 막힌 병에 블럭을 하나씩 쌓아가는 형태를 가진 자료구조입니다. LILO(Last In Last Out)이라는 성격을 띠고 있습니다. 내용 메서드 비고 주입 push(Object o) 가장 위에 값 주입 추출 pop() 가장 위에 있는 값 추출 후 확인 확인 peek() 가장 위에 잇는 값 확인 포함 확인 search(Object o) 없는 경우 -1을 반환 빈 자료구조 확인 empty() 비어 잇는 경우 true, 반대의 경우 false 반환 2022. 11. 2.
[Java][AutoCloseable] 파일 I/O에 유용한 코드 및 개념 정리 AutoCloseable java에서는 파일을 읽어 들이기 위해 먼저 메모리에 파일의 바이너리를 등록 하게 됩니다. 그후 파일의 입출력을 담당하는 InputStream/OutputStream 등을 사용하고 메모리 누수(Memory Leak)를 막기 위해 우리는 close 함수를 주로 사용하게 됩니다. 해당 함수를 사용해서 닫아주는게 default 이지만 간혹 깜빡하고 넘어가는 순간 서버에서는 메모리가 차곡차곡 쌓여 결국 프로세스가 죽는 경험을 해보신 분들 많으실 겁니다. 그래서 java 에서는 IO 이후에 자동으로 파일을 닫아주는 interface를 java 7 버전 이후 부터 기용하게 되었습니다. try(InputStream input = new InputStream) { ... } catch (Exc.. 2022. 10. 20.
[자료구조] Priority Queue는 뭔가요? Queue만 쓰면 안되나요? Queue도 List처럼 LinkedList(조회 보다는 수정에 효율이 좋은 자료 구조), 기본 구조(FIFO)를 바탕으로 특수한 상황에 맞춰 사용할 수 있도록 추가적인 자료구조를 찾아 볼 수 있습니다. ArrayBlockingQueue LinkedBlockingQueue PriorityBlockingQueue DelayQueue LinkedTransferQueue SynchronousQueue ConcurrentLinkedQueue ... 여러가지가 있겠지만 제가 주로 사용하던 자료구조를 들고 왔습니다. -> PriorityQueue 사용 이유는 즉슨 데이터가 들어가는 순간 Queue 내부에서 기본 우선순위(작은값 >>> 큰값)를 따라 정렬이 이루어 집니다. Priority.. 2022. 8. 18.
[Lombok] @AllArgsConstructor와 @RequiredArgsConstructor 차이점을 알아보자 Lombok의 사용을 점점 지양하는 추세이지만 아직까지 의존성 주입하는데 코드가 깔끔하게 정리되는데 유용하게 사용되는 두개의 어노테이션을 비교해 보겠습니다. AllArgsConstructor @Service @AllArgsConstructor public class A { private String a; // 생성자 exception이 발생한다. private String b; // 생성자 exception이 발생한다. private Service service; } 위 상황에서 A class 내부에서 사용할 변수 a로 인해 빌드 에러가 발생한다. "Parameter 1 of constructor in '...' required a bean of type 'java.lang.String' that cou.. 2022. 8. 7.