Category230
-
[Java] 제네릭 - 2
본 포스팅에서는 제네릭에서 유연성 캐스팅에 유연성을 더해주는 와일드카드에 대해 다룹니다. 정의 와일드카드는 아래와 같이 타입 변수를 지정할 때, 상속 관계를 어떤 방식으로 지정할지에 대해 "?"를 사용하여 지정하는 것을 말합니다. 1. : 제한 없음 와일드카드 도입 이유 기본적으로 자바의 타입기본형타입,참조형타입은 다운, 업 캐스팅을 지원합니다. 예제코드는 아래와 같습니다. // 업캐스팅공변성 Object[] Covariance = new Integer[10]; // 다운캐스팅반공변성 Integer[] Contravariance = Integer[] Covariance; 하지만 제네릭은 아래와 같은 상황에서 다운,업 캐스팅을 지원하지 않습니다. public static void pri..
2024.02.19 -
[Java] 제네릭 - 1
본 포스팅은 제네릭의 기본 문법과 사용법에 대해 다룹니다. 기본개념 제네릭은 자바에서 데이터 타입을 일반화하여 보다 쉽게 사용할 수 있도록하는 것을 말합니다. 예제 코드는 아래와 같습니다. 아래와 같이 자바는 강타입 언어이기 때문에 메소드나 클래스에서 입력, 반환 데이터 타입을 지정해주어야합니다. 그렇기 때문에 메소드 오버로딩을 사용한다면 아래와 같이 타입별로 메소드를 따로 만들어주어야합니다. 이런 것들을 해결하기 위한 것이 제네릭입니다. public class Generic { public String plusReturnFunctioninta,intb { ... } public String plusReturnFunctioninta,longb { ... } public String pl..
2024.02.19 -
[Java] 프로세스와 스레드 - 4
본 포스팅에서는 스레드의 상태와 스레드의 상태를 제어할 수 있는 메소드인 sleep, interrupt, join, yield에 대해 다룹니다. 스레드의 상태 스레드는 new키워드를 통해서 스레드 객체를 생성하면, start 메소드를 호출하여 실행 대기 상태로 넘어갈 수 있습니다. 이 후 실행 대기 상태의 스레드 중에서 스레드 스케줄링으로 특정 스레드가 선택되면, 그 스레드의 run 메서드를 실행합니다. 그리고 스레드의 run 메소드의 작업이 모두 끝나면 그 스레드는 종료하게 됩니다. 위의 내용을 그림으로 정리하면 아래와 같습니다. 또한, 스레드의 상태는 아래와 같이 사전 정의되어 있습니다. 스레드의 제어 스레드의 상태를 여러가지 메소드를 호출하여 제어할 수 있습니다. 스레드의 상태를 제어하는 여러 메소..
2024.02.17 -
[Java] 프로세스와 스레드 - 3
본 포스팅에서는 스레드를 만들고 실행할 때, 사용할 수 있는 부가적인 개념들에 대해 다룹니다. Daemon Thread 데몬 스레드는 "보이지 않는 곳에서 실행되는 낮은 우선순위의 스레드"입니다. 보이지 않는 곳이라는 것은 "background"프로세스로 실행된다는 것을 의미합니다. 데몬 프로세스에 대해서는 다른 게시물에 포스팅할 예정입니다. 데몬 스레드의 특징은 Main스레드가 종료되면 작업이 다 수행되지 않았더라도 같이 종료된다는 것입니다. 예제 코드는 아래와 같습니다. public class Main { public static void mainString[]args { Runnable demon = -> { for inti=0;i<1000000;i++ { System.o..
2024.02.17 -
[Java] 프로세스와 스레드 - 2
본 포스팅에서는 Thread를 java에서 어떻게 생성할 수 있는지에 대해 다룹니다. Thread 가장 기본적인 방법으로 Thread 클래스를 상속받아 스레드를 만들 수 있습니다. 예제 코드는 아래와 같습니다. 스레드를 new를 통해서 생성한 후, start메서드를 호출하면 스레드가 실행되고, run메서드를 호출하게됩니다. public class TestThread extends Thread { @Override public void run { // 쓰레드 수행작업 } } ... TestThread thread = new TestThread; // 쓰레드 생성 thread.start // 쓰레드 실행 Runnable Thread보다 널리, 많이 쓰이는 방법으로 Runnable 인터페이스를 이용..
2024.02.17 -
[Java] 프로세스와 스레드 - 1
본 포스팅은 프로세스와 스레드에 대해 다룹니다. 프로세스는 "실행 중인 프로그램"을 의미합니다. 카카오톡, 크롬 브라우저 등도 모두 프로세스라고 할 수 있습니다. 운영체제OS에서는 프로세스를 할당할 때, 프로세스에 code, data, 메모리 영역Stack,Heap을 함께 할당해줍니다. 각각의 간단한 설명은 아래와 같습니다. 1. Code 는 Java main 메소드와 같은 코드를 말합니다. 2. Data 는 프로그램이 실행중 저장 할 수 있는 저장공간을 의미합니다. 1. 전역변수, 정적변수static, 배열등 초기화된 데이터를 저장하는 공간 3. Memory 메모리영역 - Stack : 지역변수, 매개변수 리턴 변수를 저장하는 공간 - Heap : 프로그램이 동적으로 필요한 변수를 저..
2024.02.17