Iteration특징컬렉션의 요소를 순회하는 과정명령형(Imperative) 프로그래밍 스타일로, 상태를 명시적으로 관리데이터 처리 로직을 직접 작성하며 가독성이 떨어질 수 있음코드 실행 순서를 한눈에 알 수 있음 장점직관적이고 디버깅이 쉬움간단한 작업에는 Stream API보다 효율적일 수 있음상태를 직접 제어할 수 있어 더 세밀한 제어 가능단점반복문이 복잡해질수록 코드의 유지보수가 어려움병렬 처리를 지원하지 않음 전통적 for 루프사용 사례: 인덱스를 통해 요소에 접근하거나 요소를 수정해야 할 때.예제:List list = Arrays.asList("A", "B", "C");for (int i = 0; i 향상된 for 루프사용 사례컬렉션의 요소를 읽기만 할 때예제for (String element ..
JAVA 컬렉션 프레임워크란?Java 컬렉션 프레임워크는 데이터를 효율적으로 저장하고 조작하기 위한 인터페이스와 클래스의 집합컬렉션 프레임워크는 데이터 구조를 간단하게 관리하고, 성능을 최적화하며, 데이터의 일관성을 유지하는 데 도움을 줌주요 인터페이스와 구현 클래스 1️⃣ List 인터페이스 특징순서가 있는 데이터의 집합중복을 허용1.1 ArrayList특징배열 기반의 자료구조로, 순차적 데이터 접근이 빠름데이터 추가와 삭제는 느리지만, 검색이 빠름장점인덱스를 통해 O(1)의 속도로 데이터 접근 가능크기 동적 변경 가능단점중간에 데이터를 삽입하거나 삭제할 경우 O(n) 시간 복잡도가 발생예시 코드import java.util.ArrayList;public class ArrayListExample { ..
Java 플랫폼의 특징 (WORA: Write Once, Run Anywhere)Java는 "한 번 작성하면 어디서나 실행할 수 있다"는 WORA 특성을 가짐이는 Java 프로그램이 플랫폼 독립적인 바이트코드로 컴파일되고, JVM이 이 바이트코드를 실행 환경에 맞게 처리하기 때문JVM과 JDK, JRE의 관계JDK(Java Development Kit)Java 애플리케이션 개발을 위한 도구와 라이브러리를 제공하며, JRE와 컴파일러, 디버거 등을 포함JRE(Java Runtime Environment)Java 프로그램을 실행하기 위한 환경으로, JVM과 Java 표준 라이브러리를 포함JVMJava 프로그램의 실행 엔진으로, 바이트코드를 해석하거나 컴파일하여 실행자바에서의 코드 컴파일 과정개발자가 .jav..
Enum의 기본 개념Enum은 상수 값을 정의하기 위한 특수한 데이터 타입예를 들어, 요일, 계절, 방향 등 고정된 값의 집합을 나타낼 때 사용public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;}Enum의 특징상수 집합Enum으로 정의된 값은 변경될 수 없으며 고정된 집합을 나타냄객체 생성 불가Enum은 암묵적으로 final이고 인스턴스를 직접 생성할 수 없음타입 안전성잘못된 값을 방지하기 위해 타입 안전성을 제공더보기Enum의 타입 안정성이란?Java Enum은 특정 값 집합만 사용할 수 있도록 제한하기 때문에 잘못된 값의 사용을 방지이는 컴파일 타임에서 오류를 잡아낼 수 있도록 도와주며, 프로그램의 안..
Object 클래스란?Object 클래스는 자바의 최상위 클래스로, 자바에서 모든 클래스는 암묵적으로 Object 클래스를 상속따라서, 자바의 모든 객체는 Object 클래스의 메서드들을 상속받아 사용할 수 있다주요 특징최상위 클래스Object는 자바 클래스 계층 구조의 최상위 클래스모든 클래스는 명시적으로 상속하지 않아도 자동으로 Object를 상속기본 메서드 제공모든 객체에서 공통적으로 필요한 메서드를 정의하고 제공예) equals, hashCode, toString, clone직접 객체 생성 가능다른 클래스처럼 Object 객체를 직접 생성할 수도 있다예) Object obj = new Object();메모리 관리 및 스레드 관련 메서드 포함wait, notify, notifyAll 같은 스레드 관..
인터페이스 (Interface)정의인터페이스는 추상 메서드와 상수를 포함할 수 있는 자바의 참조형 타입클래스가 특정 인터페이스를 구현하도록 강제하여 일관된 설계와 다형성을 제공특징추상 메서드모든 메서드는 기본적으로 public abstract이며, 구현체를 가질 수 없다Java 8 이후에는 default 및 static 메서드로 구현 가능상수모든 필드는 기본적으로 public static final이다다중 상속 허용한 클래스는 여러 인터페이스를 구현할 수 있다사용 사례클래스 간의 공통된 동작을 정의하고, 이를 강제하고자 할 때다중 상속이 필요한 경우코드 예제더보기기본 사용법interface Animal { void eat(); // 추상 메서드 void sleep(); // 추상 메서드}cla..
클래스(Class)정의클래스는 객체를 생성하기 위한 청사진(설계도)객체의 속성(필드)과 동작(메서드)을 정의구성 요소필드 (Field)객체의 상태를 저장하는 변수들메서드 (Method)객체의 행동이나 기능을 정의하는 함수들생성자 (Constructor)객체를 초기화하는 특별한 메서드예제 코드// 사람 클래스를 정의public class Person { // 필드 String name; int age; // 생성자 public Person(String name, int age) { this.name = name; this.age = age; } // 메서드 public void introduce() { System.out.pr..
문자열(String) 기본 개념불변성 (Immutability)한 번 생성된 문자열 객체는 변경할 수 없음예를 들어, "Hello"라는 문자열에 다른 문자를 추가하거나 변경하려면 새로운 문자열 객체가 생성String str = "Hello";str = str + " World"; // 새로운 문자열 객체 생성 힙 메모리와 String Pool문자열 리터럴은 String Pool에 저장됩니다. 동일한 값을 가진 문자열은 중복 없이 하나의 객체로 관리new String()을 사용하면 항상 새로운 객체가 생성String str1 = "Hello"; // String Pool에 저장String str2 = "Hello"; // 기존 String Pool의 객체를 참조String str3 = new Stri..
배열 (Array)배열은 같은 데이터 타입의 값을 고정된 크기로 저장하는 자료구조특징고정 크기배열을 생성할 때 크기를 지정하며, 한 번 생성되면 크기를 변경할 수 없음인덱스배열의 각 요소는 0부터 시작하는 인덱스를 통해 접근단일 데이터 타입배열은 같은 타입의 데이터만 저장할 수 있음예) int[], String[].메모리 연속성배열 요소들은 메모리에 연속적으로 저장배열 선언과 초기화// 선언int[] numbers; // 또는 int numbers[];// 생성 및 초기화numbers = new int[5]; // 크기가 5인 배열 생성numbers[0] = 10; // 첫 번째 요소에 값 할당// 한 번에 선언과 초기화int[] scores = {90, 80, 70, 60, 50};배열 주요 ..
멀티스레딩정의하나의 프로세스 내에서 여러 스레드를 생성해 작업을 동시에 수행하는 방식특징공유 메모리모든 스레드는 동일한 메모리 공간을 공유데이터 공유 및 통신은 원활하지만, 동기화 문제가 있음빠른 문맥 교환 (Fast Context Switching)스레드 간 전환이 프로세스 간 전환보다 빠름적은 리소스 소비스레드는 프로세스 생성보다 리소스가 적게 듬I/O 작업에 적합I/O 바운드 작업( 네트워크 요청, 파일 읽기 / 쓰기 )에 적합임계 구역정의여러 스레드(또는 프로세스)가 공유 자원에 접근하고자 할 때 동시에 접근하게 되면 문제가 발생할 수 있는 코드 블록공유 자원에 동시 접근해서 나타나는 문제는 데드락과 레이스컨디션이 존재한다데드락(Deadlock)정의두 개 이상의 스레드(또는 프로세스)가 서로가 보..
- Total
- Today
- Yesterday
- 백트래킹
- restful api
- k8
- Spring
- i/o모델
- 분할 정복
- 해시 테이블
- 자료구조
- db
- 자바
- 그리디 알고리즘
- 데이터베이스
- CPU 스케줄링
- 탐색 알고리즘
- Spring Boot
- CS
- B+Tree
- 우테코
- devops
- MSA
- 알고리즘
- 우아한 테크코스
- 운영체제
- 스프링
- 동적 프로그래밍
- 프리코스
- Java
- HTTP
- TRIE
- 우선순위 큐
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |