목록Programming (56)
프로그래밍 공부
자바에서 스레드(Thread)는 하나의 프로그램 내에서 동시에 여러 작업을 실행하기 위해 사용하는경량 프로세스이다.자바는 멀티스레딩을 지원하여, 여러 스레드를 병렬로 실행하고, 여러 작업을 동시에 처리할 수 있다.스레드를 사용하면 CPU를 효율적으로 사용하고, 대규모 프로그램의 성능을 개선할 수 있다.자바에서 스레드를 사용하는 방법자바에서 스레드를 구현하는 두 가지 주요 방법이 있다:Thread 클래스를 상속받기Runnable 인터페이스를 구현하기1. Thread 클래스를 상속받는 방법Thread 클래스를 상속받아 스레드를 정의하고, run() 메서드 안에 실행할 작업을 작성한다.스레드를 시작할 때는 start() 메서드를 호출하여 스레드를 시작할 수 있다. run() 메서드는 스레드가시작되면 실행되는 ..
JAVA의 함수형 프로그래밍이란?자바에서 함수형 프로그래밍(Functional Programming)은 주로 Java 8에서 도입된 람다 표현식과 스트림 API를 통해 구현된다. 함수형 프로그래밍의 핵심 개념은 다음과 같다.1. 람다 표현식 (Lambda Expressions)람다 표현식은 자바에서 익명 함수를 구현하는 방법. 자바 8부터 도입되었으며, 코드의 간결성을 높이고, 불필요한 클래스 정의를 줄이는 데 도움을 준다.형식: (parameters) -> expression 또는 (parameters) -> { statements; }예제: 람다 표현식을 사용하여 함수를 구현 interface MyFunctionalInterface { void myMethod(String s); } p..
제네릭은 왜 필요한가?자바 제네릭(Generic)은 클래스, 인터페이스, 메서드에서 사용할 데이터 타입을 매개변수로 받아서컴파일 시 타입 안정성을 제공하는 기능.한 데이터 종류에 묶이지 않은 클래스를 만들기 위해 사용이를 통해 코드의 재사용성을 높이고, 타입 관련 오류를 런타임이 아니라 컴파일 시점에 발견할 수 있게 해줌제네릭의 주요 개념제네릭 클래스: public class Box { private T item; public void setItem(T item) { this.item = item; } public T getItem() { return item; } } 여기서 T는 타입 매개변수로, 실제 사용할 때는 Box, Box 등으로 ..
객체를 정렬 하는 방법Java에서 객체를 정렬하기 위해 Comparable 인터페이스를 구현하거나Comparator를 사용해야함1. Comparable 인터페이스 구현Comparable 인터페이스는 객체의 자연 순서를 정의하는 데 사용.이 인터페이스를 구현하면 객체를 정렬할 수 있는 기준을 제공할 수 있음.compareTo(T o) 메서드를 구현해야 하며, 이 메서드는 두 객체를 비교하여 정렬 순서를 결정.예제: Comparable을 이용한 정렬 import java.util.ArrayList; import java.util.Collections; import java.util.List; class Person implements Comparable { String name; i..
Map자바에서 Map은 키-값 쌍을 저장하는 데이터 구조로, 특정 키에 대한 값을 효율적으로 저장하고 검색할 수 있도록 설계됨Map 인터페이스는 다양한 구현체를 가지고 있으며, 각각의 구현체는 서로 다른 특성과 성능을 제공함.Collection 프레임워크의 일부지만 Collection 인터페이스를 구현하지는 않음HashMap해시맵은 열쇠를 Null값과 저장할 수 있게 해줌정렬되지 않고 순서가 없음HashTableHashtable은 Vector와 비슷함, 동기화가 되어있음스레드가 해시맵에 비해 더 안전하고, 분류되어 있지도 순서가 있지도 않음LinkedHashMap삽입 순서가 유지됨, 정렬되어 있지는 않음해시맵보다 삽입 삭제 속도는 느림요소간 연결이 있어서 이터레이션은 훨씬 빠름TreeMap정럴된 상태로 ..
Queue****FIFO(First In First Out) 방식으로 작동하는 데이터 구조자바에서는 Queue 인터페이스와 그 구현체인 LinkedList, ArrayDeque 등을 사용하여 큐를 구현예제 import java.util.LinkedList; import java.util.Queue; public class QueueExample { public static void main(String[] args) { Queue queue = new LinkedList(); // 요소 추가 queue.add(1); queue.offer(2); queue.add(3); // 큐의 상태 출력 ..