본문 바로가기

Java

(26)
[Java] HashMap 이란? HashMap개요정의: HashMap은 키(key)와 값(value) 쌍으로 데이터를 저장하는 Map 인터페이스의 구현체이다.키는 고유해야 하며, 각 키는 하나의 값에 매핑된다.내부 구조: HashMap은 해싱(hashing) 기법을 사용하여 데이터를 저장한다. 해싱은 키를 해시 함수에 입력하여 해시 코드를 생성하고, 이를 기반으로 데이터가 저장될 위치를 결정하는 방법이다.속성키-값 쌍으로 데이터를 저장한다.키는 중복될 수 없지만, 값은 중복될 수 있다.순서가 보장되지 않으며, 삽입된 순서와 상관없이 데이터를 저장한다.null 키와 null 값을 허용한다.주요 메서드put(K key, V value): 키와 값을 추가한다. 만약 이미 존재하는 키라면, 기존 값을 새 값으로 대체한다.get(Object k..
[Java] Stack(스택)과 Queue(큐) Java에서 Stack과 Queue는 기본적인 자료구조로, 데이터를 저장하고 관리하는 방식이 다르다.두 자료구조는 데이터를 삽입하고 삭제하는 규칙이 다르며, 각기 다른 상황에서 사용된다.1. Stack (스택)개요정의: Stack은 LIFO(Last In, First Out) 원칙에 따라 데이터를 관리하는 자료구조이다. 가장 나중에 삽입된 데이터가 가장 먼저 삭제된다.예시: 접시 쌓기, 웹 브라우저의 뒤로 가기 기능주요 연산push(E item): 스택의 맨 위에 데이터를 삽입한다.pop(): 스택의 맨 위에 있는 데이터를 제거하고 반환한다. 스택이 비어있을 경우 EmptyStackException을 던진다.peek(): 스택의 맨 위에 있는 데이터를 제거하지 않고 반환한다.isEmpty(): 스택이 비..
[Java] 가비지 컬렉터(Garbage Collector)는 무엇일까? Java의 Garbage Collector(GC)는 메모리 관리를 자동으로 수행하는 기능이다.Java에서는 객체를 생성할 때 메모리에 할당하지만, 개발자가 명시적으로 메모리를 해제할 필요는 없다.개발자를 대신해서 Garbage Collector가 불필요한 객체를 자동으로 감지하고 메모리를 해제시켜 준다.Garbage Collector의 작동 방식 객체의 생성과 참조: Java 프로그램이 실행되면서 객체들이 메모리에 생성된다. 이 객체들은 변수나 다른 객체에 의해 참조된다. 어떤 객체도 참조하지 않는 객체는 "가비지(garbage)"로 간주된다.가비지 객체의 식별: Garbage Collector는 주기적으로 Heap 메모리를 검사하여 더 이상 참조되지 않는 객체, 즉 가비지 객체를 식별한다. 이 작업은 ..
[Java] DTO와 VO 개념과 차이 Java에서 DTO(Data Transfer Object)와 VO(Value Object)는 객체지향 프로그래밍에서 자주 사용되는 개념으로, 데이터를 캡슐화하는 데 사용되지만 그 목적과 사용 방법이 다르다.오늘 포스팅에서는 각 개념을 자세히 설명하고, 이들의 차이점에 대해 알아보자!!DTO (Data Transfer Object)DTO는 주로 데이터를 전송하기 위해 설계된 객체이다. 데이터베이스나 서비스 레이어에서 데이터를 가져와서 다른 계층, 예를 들어 프레젠테이션 레이어나 클라이언트로 전달할 때 사용된다. DTO는 데이터의 전송에 최적화되어 있으며, 일반적으로 비즈니스 로직은 포함하지 않고 데이터를 단순히 담고 전달하는 역할만 한다.기능과 특징:데이터 전송의 용이성: DTO는 데이터를 캡슐화하여 전송..
[Java] Enum 데이터 타입 Enum은 코드에서 상수를 그룹화하여 사용하기 쉽게 만들어주고, 코드의 가독성과 안전성을 높여준다.오늘 포스팅에서는 예시를 통해 Enum을 사용하는 방법과 그 장점들을 자세히 설명하겠다.1. 예시: 프로그램 상태를 관리하는 Enum프로그램의 상태를 나타내는 Enum을 정의하여, 상태에 따라 프로그램이 다르게 동작하도록 할 수 있다. 이를 통해 상태에 따른 코드를 간결하고 명확하게 작성할 수 있다.public enum ProgramState { STARTING, RUNNING, PAUSED, STOPPED}여기서 ProgramState는 Enum이며, STARTING, RUNNING, PAUSED, STOPPED는 각각 프로그램의 특정 상태를 나타내는 상수이다. 2. Enum을 사용하..
[Java] for문과 향상된 for문 오늘 포스팅에서는 우리가 자주 사용하는 반복문에 대해서 이야기해보려 한다. Java의 기본 for문과 향상된 for문에 대해 간단하게 알아보고 둘의 장단점 및 차이를 비교하는 것으로 포스팅을 마무리 하겠다. 기본 for문과 향상된  for문1. 기본 for문기본 for문은 반복의 횟수를 명확하게 설정하거나, 인덱스 값을 기반으로 배열이나 리스트의 요소를 순회할 때 주로 사용한다.for (초기화; 조건; 증감) { // 실행할 코드}이 구조에서 초기화 부분에서 반복을 시작할 변수를 선언하고, 조건 부분에서 반복이 계속될 조건을 설정하며, 증감 부분에서 매 반복마다 변수의 값을 변경한다. 예시:for (int i = 0; i 이 코드는 i의 값을 0부터 4까지 출력한다. 반복이 시작될 때 i는 0으로 ..