본문 바로가기

JAVA55

[JAVA] 데몬 스레드 알아보기(특징, 사용 방법) 데몬 스레드(Daemon Thread)개념자바는 일반적으로 여러 개의 스레드가 동시에 실행되면서 기능을 수행하는 멀티 스레드로 동작함이때 스레드들 중에 메인 스레드(Main Thread)가 종료하면 함께 종료되는 스레드가 있음이런 스레드를 데몬 스레드(Daemon Thread)라고 함대표적인 데몬 스레드로는 가비지 컬렉터, 워드프로세서의 자동 저장, 화면 자동 갱신 등이 있음동영상 플레이어를 실행하면 → 동영상 실행 스레드와 자막 실행 스레드가 같이 실행 되는데동영상 플레이어를 종료하면 → 동영상 실행 스레드와 자막 스레드가 같이 종료   특징일반 스레드(데몬 스레드가 아닌 스레드)의 작업을 돕는 보조적인 역할을 수행일반 스레드가 모두 종료되면, 데몬 스레드는 강제적으로 종료됨데몬 스레드를 생성하기 위해.. 2024. 4. 30.
[JAVA] 람다 표현식이란? (특징, 사용 문법) 람다 표현식이 나오게 된 배경자바는 모든 기능을 클래스 기반으로 작성그래서 메서드를 하나 표현하려고 해도 클래스를 정의하여, 클래스 내에서 메서드를 구현해야 했음이전에는 메서드를 클래스를 기반으로 구현해도 문제가 없었으나빅데이터나 인공지능이 출현하게 되면서, 대량의 데이터를 병렬로 빠르게 처리해하는 경우가 발생하여기존의 방식대로 프로그래밍을 하면 수행 속도 면에서 단점이 발생따라서, 자바에서도 이런 기능을 효율적으로 구현하기 위해, 함수형 프로그래밍 방식인 람다식을 도입함 [ 함수형 프로그래밍 ]- 함수형 프로그래밍은 선언적 프로그래밍- 람다 표현식를 지원하기 전의 자바는 완전한 명령형 프로그래밍이었음1. 명령형 프로그래밍 : 클래스에서 메서드를 정의하고, 필요할 때 그 메서드를 호출하는 명령하여 동작2.. 2024. 4. 30.
[JAVA] 자바 스레드 생성(Thread, Runnable) 메인 스레드(Main Thread)- 자바 프로그램에는 최소 1개의 스레드가 있는데, 이것이 메인 스레드- JVM이 자동으로 생성하는 스레드자바의 프로그램의 시작점은 main() 메서드이고이 main() 메서드를 수행되도록 하는 것이 스레드인데이 쓰레드가 메인 스레드모든 자바 프로그램은 JVM(자바 머신 러닝) 위에서 동작하는데,이  JVM은 프로그램의 시작점인 main() 메서드가 있는 클래스를 찾고 메인 스레드를 생성한 후에메인 스레드에서 main() 메서드를 호출하여, 작업이 수행되도록 함따라서, 메인 스레드는 JVM에 의해 자동으로 생성됨  JVM이  자동으로 생성하는 메인 스레드(Main Thread) 이외에 추가로 사용자 정의 스레드를 생성하여 구현해보자      쓰레드를 생성하는 2가지 방법.. 2024. 4. 29.
[JAVA] 프로세스와 스레드, 시스템 발전 과정(멀티 프로그래밍, 멀티태스킹) 프로그램과 프로세스 프로그램어떤 작업을 위해 실행할 수 있는 파일의 형태로 하드디스크에 저장된 것아직 파일이 실행된 상태는 아니기 때문에 정적인 상태프로그램은 코드 덩어리 자체 프로세스프로그램이 실행된다는 것은하드 디스크에 존재하던 실행 파일이 시스템 메모리에 올라간다(로드)는 것이고프로그램이 운영체제(OS)에 의해 CPU를 할당 받고CPU에 의해 프로그램이 실행되고 있는 상태를 말함코드 덩어리인 프로그램을 실행 시켜서정적인 프로그램이 동적으로 변하여 프로그램이 실행되는 상태를 말함프로세스는 자원(메모리, CPU 등)과 쓰레드로 구성됨- 프로그램은 정적- 프로세스는 동적, 프로그램이 실행된 것이므로 동적인 상태  멀티 프로세스1개의 CPU를 사용하여 여러 프로세스를 동시에 수행하는 것여러 개의 프로세스를.. 2024. 4. 29.
[JAVA] wrapper 클래스, 오토박싱과 언오토박싱 wrapper 클래스란?자바의 자료형은 데이터의 타입을 의미하고, 기본 타입(primitive type)과 참조 타입(reference type)으로 나누어짐[ 자료형 ]1. 기본 타입 : byte, short, int, long, float, double, char, boolean2. 참조 타입 : 참조할 수 있는 모든 자료형(배열, class, enum 등)기본 타입의 데이터를 참조 타입으로 표현해야 하는 경우가 있는데, 이 경우에 기본 타입의 데이터를 객체화 해야 할 필요가 있음기본 타입의 데이터를 객체화 하기 위해서 사용하는 클래스를 래퍼 클래스(wrapper class)라고 함따라서, 모든 기본 타입은 객체로 표현할 수 있음이러한 객체를 포장 객체라고 하는데, 기본 타입의 값을 내부에 두고 외부.. 2024. 4. 28.
[JAVA] Map 인터페이스(HashMap, TreeMap) Map 인터페이스 특징키(key)와 값(vale)의 쌍으로 연관지어 이루어져있는 데이터의 집합키(key)는 해당 Map에서 고유해야 하고(중복 허용 X)값(value)는 중복하여 저장할 수 있음기존에 저장된 데이터와 중복된 키(key)와 값(value)를 저장하면기존의 값은 없어지고, 마지막에 저장한 값이 남게 됨저장한 순서가 유지되지 않음키(key) 값은 중복 되어서는 안됨 종류HashMap 클래스HashTable 클래스TreeMap 클래스Properties 클레스    HashMap 클래스특징키(key)와 값(value)을 한쌍으로 묶어 데이터를 저장키(key)를 이용하여 HashMap의 값(value)을 얻을 수 있음중복을 허용하지 않고순서를 보장하지 않음키(key)와 값(value)의 값으로 nu.. 2024. 4. 28.