Language/Java 4

검색이 빠른 자료구조

O(1) > O(log n) > O (n) > O(n log n) > O(n^2) > O(n^3) > O(2^n) > O(n!) HashMap 단건 검색 시간 복잡도 : O(1) 범위 탐색 시간 복잡도 : O(N) 전방 일치 탐색 불가 ex) like 'AB%' List 정렬되지 않은 리스트 탐색 시간 복잡도 : O(N) 정렬된 리스트 탐색 시간 복잡도 : O(logN) 정렬 되지 않은 리스트 정렬 시간 복잡도 : O(N) ~ O(N * logN) 삽입/삭제 비용이 매우 높다 Tree 트리 높이에 따라 시간 복잡도 결정 트리의 높이를 최소화 하는 것이 중요! 한쪽으로 노드가 치우치지 않도록 균형을 잡아 주는 트리 사용 ex) Red-Black Tree, B+Tree B+Tree 삽입/삭제시 항상 균형을 ..

Language/Java 2023.07.12

버퍼링(Buffering)과 스트림(Stream)

버퍼링(Buffering)과 스트림(Stream)데이터를 효율적으로 처리하기 위한 두 가지 개념입니다.📌 버퍼링 (Buffering)정의: 데이터를 임시로 저장하는 메모리 공간(버퍼)을 활용하여 데이터 전송을 효율화함역할:데이터를 작게 나누어 여러 번 처리하는 대신, 한 번에 묶어 처리하여 성능 향상I/O 횟수를 줄여 리소스 절약✅ 특징입력/출력 시 작은 데이터를 모아 한 번에 처리Java에서는 다음과 같은 클래스로 지원:BufferedReader, BufferedWriterBufferedInputStream, BufferedOutputStream📌 스트림 (Stream)정의: 데이터를 연속된 흐름(순차적)으로 처리하는 개념유형:바이트 스트림: InputStream, OutputStream문자 스트림..

Language/Java 2023.07.01

JVM 메모리 구조

소개 JVM(Java Virtual Machine)은 자바 프로그램을 실행하기 위한 가상 머신입니다. 이 블로그 포스트에서는 JVM의 메모리 영역 구조와 각 영역의 역할에 대해 자세히 알아보겠습니다. 메서드 영역 (Method Area 또는 Class Area) JVM이 시작될 때 생성되며, 모든 스레드가 공유하는 영역입니다. 클래스 파일의 정보, 상수, 메서드 코드 등이 저장됩니다. 클래스 로더에 의해 로딩된 클래스들의 정보와 정적 변수(static variables)가 할당됩니다. PermGen 영역이라고도 불리며, Java 7 이전 버전에서는 PermGen 영역에 존재했지만, Java 8부터는 Metaspace 영역으로 대체되었습니다. 힙 (Heap) 객체 인스턴스와 배열이 동적으로 할당되는 영역입..

Language/Java 2023.06.10

클래스(class), 객체(object), 인스턴스(instance) 차이

Object_객체 Class의 Instance나 Array를 말한다. 즉 어떤한 것을 정의 할수 있는 모든 것을 뜻한다. 자동차, 컴퓨터, 사람, 개념 등 Class_클래스 객체를 정의 하는 틀 또는 설계도 이다. Instance_인스턴스 Class 타입의 Object를 인스턴스 라고 합니다. 메모리에 할당된 객체 // 클래스 public Class Earth{ private String name; private int width; } // obj -> 인스턴스 Object obj = new Earth();참고 -- 코딩하는 보디 빌더 Java/Study

Language/Java 2023.04.16