목록Programming/JAVA (25)
프로그래밍 공부
자바 스레드는 여러 상태(state)를 가지며, 각 상태는 스레드가 실행 중이거나 실행을 기다리는다양한 단계를 나타낸다.자바 스레드의 상태는 Thread.State 열거형(Enum)으로 정의되어 있으며총 6가지 주요 상태가 있다:NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED.아래는 각 상태에 대한 설명이다.1. NEW (새로운 상태)설명: 스레드 객체가 생성되었지만 아직 start() 메서드가 호출되지 않은 상태.이때는 스레드가 시작되지 않았으며, 작업을 수행하지 않고 있음상태 진입 시점: 스레드가 처음 생성되었을 때. Thread t = new Thread(); // 상태: NEW2. RUNNABLE (실행 가능한 상태)설명: 스레드가 실행..
Runnable 인터페이스를 사용하는 이유는 주로 다중 상속의 유연함과 객체 지향적인 설계를 위해 사용한다.자바는 다중 상속을 지원하지 않기 때문에, 이미 다른 클래스를 상속받은 클래스가 동시에 스레드 기능을 가지려면 Runnable 인터페이스를 사용해야 한다.주요 이유:다중 상속의 제약 해결:자바에서는 단일 상속만 가능하므로, 클래스가 이미 다른 클래스를 상속받고 있을 때 Thread 클래스를 상속받는 것이 불가능하다.Runnable 인터페이스는 다중 상속을 대신할 수 있다. 즉, 이미 클래스를 상속받고 있는 상태에서도 Runnable을 구현하여 스레드 기능을 사용할 수 있는 것 이다.예를 들어, 클래스가 이미 Car 클래스를 상속받고 있다면 Thread 클래스를 상속받을 수 없다.하지만 Runnabl..
자바에서 스레드(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..