Java 17

데몬 쓰레드와 사용자 쓰레드, 쓰레드 그룹 및 우선순위

데몬 쓰레드 데몬 쓰레드란, background에서 실행되는 낮은 우선순위를 가진 쓰레드를 칭한다. 보조적인 역할을 담당하며 대표적인 데몬 쓰레드로는 메모리 영역을 정리해주는 GC가 있다. 데몬 쓰레드 생성코드 //쓰레드 생성 Thread thread = new Thread(deamon); //true입력 시 데몬 쓰레드가 됨 //데몬 쓰레드는 사전에 정의된 횟수와 상관없이 메인 쓰레드가 동작 완료 시 종료됨 thread.setDaemon(true); 사용자 쓰레드 사용자 쓰레드는 foreground에서 실행되는 높은 우선순위를 가진 쓰레드를 칭한다. 프로그램 기능을 담당하며 대표적인 사용자 쓰레드로는 메인 쓰레드가 있다. 쓰레드 우선순위와 쓰레드 그룹 작업의 중요도에 따라 쓰레드의 우선순위를 다르게 부..

Java 2023.05.29

싱글 쓰레드와 멀티 쓰레드

싱글 쓰레드 싱글 쓰레드란, 프로세스 안에서 하나의 쓰레드만 실행되는 것을 의미한다. Main 메서드(public static void Main)만 실행시켰을 경우, 싱글 쓰레드라고 한다. Java에서 Main 메서드를 실행하는 쓰레드를 메인 쓰레드 라고 한다. JVM의 메인 쓰레드가 종료되면 JVM도 같이 종료된다. 멀티 쓰레드 멀티 쓰레드란, 프로레스 안에서 여러개의 쓰레드가 실행되는 것을 말한다. 하나의 프로세스는 여러개의 쓰레드를 가질 수 있으며, 이 쓰레드들은 프로세스의 자원을 공유한다 Java의 프로그램은 메인 쓰레드 외에 다른 작업 쓰레드들을 생성하여 여러개의 실행흐름을 만들 수 있다. 멀티 쓰레드의 장점 여러개의 작업을 동시에 수행함으로써 성능이 향상된다. 스택을 제외한 모든 영역에서 메모..

Java 2023.05.29

프로세스와 쓰레드

프로세스란, 프로세서(처리기, CPU)에 의해 처리되는 프로그램(실행중인 프로그램)을 의미한다. OS가 프로그램 실행을 위한 프로세스를 할당할 때, 프로세스 안에 프로그램 Code와 Data, 메모리 영역(Stack, Heap)을 함께 할당해준다. 1. 코드(Code)는 프로그램의 명령어(Instructions)를 포함하는 영역이다. 프로세스가 수행해야 할 특정 작업을 정의하며, Java main 메소드와 같은 코드를 의미한다 2. 데이터(Data)는 프로그램이 실행될 때 초기화되거나 할당되는 데이터들을 저장한다 프로세스가 사용하는 변수(전역 변수, 정적(Static) 변수, 상수(Constants)) 등이 저장된다. 3. 메모리(Memory)는 데이터와 명령어를 저장하는 물리적인 공간이다. 프로세스 실..

Java 2023.05.29

제네릭(Generic) 2

제네릭은 객체의 static 멤버에 사용할 수 없다 타입변수는 인스턴스 변수로 간주되고, 모든 객체에 동일하게 동작해야 하는 static 필드 특성 상 사용할 수 없다. 제네릭의 문법 1. 다수의 타입변수를 사용할 수 있다. public class Generic { //E를 출력타입, 나머지 값들을 입력 타입으로 사용 public E multiTypeMethod(T t, U u) { ... return E; } Generic instance = new Generic(); instance.multiTypeMethodA(longVal, intVal); } 2. 상속과 타입 관계는 그대로 적용된다. ex : 부모 클래스로 제네릭 타입변수를 지정하고, 그 안에 자식 클래스를 넘기는 것은 잘 동작한다 3. 와일드..

Java 2023.05.26

제네릭(Generic)의 개념

제네릭이란 타입을 명시해야하는 java 언어에서 타입을 명시하지 않고 사용할 수 있게 해주는 기능이다. 클래스나 메서드에 사용가능 하며, 실제로 사용될 때 타입을 구현하여 사용한다. 제네릭을 사용하면 타입 안정성을 보장할 수 있다. 동일한 로직을 다양한 타입에 대해 코드의 재사용성을 높일 수 있다. 타입 캐스팅을 일일이 처리하는 번거로움을 줄일 수 있다. 제네릭 타입 타입 설명 Type Element Key Value Number 제네릭 클래스 작성법 //제네릭 클래스. 원시 타입 이라고도 한다. public class Generic { private T t; public T get() { retrun this.t; } public void set(T t) { this.t = t; } //메인클래스 pu..

Java 2023.05.26

자바의 특징 및 JVM 동작 과정

자바는 1990년대에 발표되었고, 어디서나 동작 가능하며, 많이 쓰이는 개발언어이다 ✅ 자바의 주요 특징공통 실행환경(JVM)이 있어서 다양한 OS에서도 실행이 가능하다.C/C++의 구조를 따르면서도 포인터 같은 복잡한 개념을 제거해서, 접근하기 쉬운 언어다.객체지향적인 구조 덕분에 코드 유지보수와 재사용이 용이하다.안정성이 높아 오류를 방지하고 보안상 안전하다.네트워크 및 DB 연결 등 작업을 처리하는 API를 제공하여 대규모 앱 개발에 유용하다.다양한 개발도구와 라이브러리를 사용 가능하다. 🔍 JVM이란? (Java Virtual Machine)JVM은 자바 프로그램을 실행해주는 가상 컴퓨터(실제 하드웨어가 아닌, 소프트웨어로 구현된 가상의 환경)다. 자바로 작성된 모든 프로그램은 JVM이 있어야..

Java 2023.05.22