[Java] 자바 Thread의 interrupt 이해하기 처음 자바를 배울때 가장 난해한 개념이 Thread의 인터럽트였던걸로 기억한다. "인터럽트를 건다"는 개념도 생소했거니와 그래서 어떤 영향을 미치는가? 를 도무지 알 길이 없었다. 왜냐하면 thread javafreak.tistory.com
오늘은 자바의 스레드의 상태와 상태 제어 메서드에 대해 알아보겠습니다. 오늘도 "초보자를 위한 java programming" 책을 참고 하였습니다. 그럼 시작 하겠습니다. 스레드의 상태 스레드의 상태는 준비 -> 실행 -> 대기 단계가 있습니다. 대기는 말 그대로 작업을 잠시 중단 하고 스레드가 대기 하고 있는 상태 입니다. Runnable (준비) : 스레드가 실행하기 위한 준비 상태 Running (실행) : 스레드 스케줄러에 의해 선택괸 스레드를 실행하는 상태 Blocked (대기) : 스레드가 작업을 완수하지 못하고 잠시 작업을 멈추는 상태 스레드는 위의 상태를 가지면서 join, yield, sleep 를 통해 스레드의 상태들을 제어 하게 됩니다. 스레드의 상태 제어 메서드 - sleep : ..
안녕하세요. zomder 입니다. 오늘은 Thread를 배우기 전에 도움이 될 법한 내용들을 정리하려고합니다. 해당 내용은 "초보자를 위한 JAVA Programming" 책을 참고 하였습니다. 프로세스의 개념 Process 란? : 실행 파일이 CPU에 의해 실행된 상태를 프로세스라고 합니다. 프로그램 == 실행 파일 프로세스 == 실행 파일이 실행된 상태 프로세스 관련 용어 멀티 프로세싱 : 2개 이상의 CPU에 의해 여러 개의 프로그램이 동시에 실행되는 것 멀티 프로그래밍: 하나의 CPU에서 여러개의 프로그램이 동시에 실행되는 것 멀티 태스킹 : 멀티 프로그래밍과 비슷한 개념, 여러 개의 task를 동시 실행하는 것 스레드가 나온이유 스레드가 나오기 전에는 프로그램을 2개 실행하게 되면 기존에 프로..
오늘은 자바의 접근 지정자에 대해 정리 해 보겠습니다. 접근 지정자라는 것은 나중에 정리할 자바의 캡슐화 라는 속성? 과 맞다아 있습니다. 그렇다면 접근지정자라는 것은 무었일까요? 정의 : 우리가 클래스에 접근할 때 클래스 멤버에 접근 할수 있는 범위를 제한하고 싶을 경우 사용하는 것 종류에는 4가지가 있으며 아래와 같습니다. 접근 지정자의 종류 public : 모든 클래스에서 접근 가능 protected : 같은 패키지에 있는 클래스 이거나 상속 관계의 클래스 들만 접근 가능 ( 같은 패키지 || 상속 관계 ) defaullt : 같은 패키지에 있는 클래스만 접근 가능 private : 같은 클래스 내에서만 접근 가능 지정자는 4가지 이지만 모든 대상에 적용할 수 있는 것은 아닙니다. 아래는 각 지정자..
오늘은 상속에 대해 정리해 보도록 하겠습니다. 상속을 학습하기 전에 가볍게 클래스들의 관계에 대해 정리 하고 갈건데요. 클래스들 간의 관계는 3가지로 정의 할 수 있습니다. is a 관계 : 한 클래스가 다른 클래스를 구체 적으로 구현한 경우 / 대학생 is a 학생, 직업 is a 마법사 has a 관계: 한 클래스가 다른 클래스의 멤버변수가 되는 경우 / 비행기 has a 날개, 자동차 has a 바퀴 use a 관계: 한 클래스가 다른 클래스를 이용하는 경우 / 운전사 use a 자동차, 파일럿 use a 비행기 이 세가지 에서 상속은 is a 관계가 성립되는 것이 변환된 것입니다. 예를 들면 A라는 클래스가 구현한 속성과 기능을 B라는 클래스도 사용할 수 있도록 클래스들의 관계를 맺는 것이죠. 상..
오늘은 메서드 호출시 매개변수 값의 전달 방식에 대해 이야기 하려고 합니다. 이 것을 정리해 놓는 이유는 매개변수에 따라 전달방식의 차이가 존재하는데. 이 부분을 제대로 정리하지 않으면 나중에 코드가 제대로 동작하지 않는 기본적인 이유가 될 수 있다고 생각했기 때문입니다. 크게 3가지로 분류할 수 있는데요. 값에 의한 호출 => 값을 복사해서 전달 참조에 의한 호출 => 값의 주소값을 전달 문자열에 의한 호출 문자열 같은 경우에는 참조형이지만 자바에서는 기본형 값으로 존재하기 때문에 예외적으로 값에 의한 호출과 똑같은 동작을 하게 됩니다. 그럼 코드를 통해 보도록 하겠습니다. 값에 의한 호출 package methodTest; public class CallTest { //값에 의한 호출 public s..
Switch 문을 사용할 때 할 수 있는 간단한 실수에 대해서 적으려고 합니다. Switch 문을 배울 때 대부분 csse 마지막에 break;가 기입된 코드들을 보게 되는 데요. 그래서 그런지 break 문을 작성하는 것이 습관이 되어 break를 사용하지 않고 Switch를 사용하는 것을 생각해본적이 없습니다. 그렇다면 break를 작성하지 않으면 어떻게 될까요? 한번 비교해 보겠습니다. break 작성하고 Switch 실행 public class SwichTest { public static void main(String[] args) { int a = 1; switch(a) { case 1: a =2; break; case 2: a=3; break; case 3: a=4; break; } Syst..
자바를 공부하면서 그냥 넘어간 부분인데 기억 해놓으면 나름 유용하게 사용할 수 있을 것 같아서 미리 포스팅 해놓려고 합니다. 자바에서 반복문을 빠져나가는 방법은 break와 continue 문이 있고 개발자가 원하는 반복 작업을 메소드로 만들어서 return을 통해 빠져나오는 경우가 있습니다. 여기서 break 와 continue는 인접한 반복문을 종료 시키기 때문에 다중 반복문에서 한번에 빠져 나오거나 또는 2개 이상의 내가 원하는 범위의 반복문을 일괄 종료 할 수 없습니다. return은 메소드 자체를 종료시키는 것이기 때문에 반복문 종료 이후의 코드를 진행해야 한다면 곤란 할 수 있을거라 생각합니다. 따라서 break label이나 continue label이 이런 상황에서 상당히 유용하게 사용될 ..
문제 1. 1부터 n번째 까지의 소수를 구하여라 2. 임의의 수 X 와 Y 사이에 소수를 구하여라 이 문제는 다른 분들이 해놓은 코드를 봐도 이해가 잘 안되서 디버깅 모드를 통해서 코드를 이해했습니다. 원리는 같지만 코드는 전부 조금 씩 다릅니다. 다른 분들의 코드를 보면서 생각에 따라서 '조금씩 다 차이가 날 수 있다는 것을 새삼 느꼇습니다. public class PrimeUtil{ public void calcPrime(int num){ for(int i=2; i
안녕하세요. Zomder 입니다. 이번에는 클래스, 객체지향에 대하여 공부한 내용을 적어보려고 합니다. 예전에 객체지향에 대해서 공부 할 때는 이론적인 부분에 대해서 배웠는데 일단 이론 부터 정리를 해보겠습니다. 절차 지향 언어의 특징 일을 처리하는 순서와 과정이 중요하다. 순서, 과정이 달라지면 새로운 작업 모델이 필요하다. 컴퓨터의 작업방식을 프로그래밍에 적용한 것이다. 재사용성이 매우 낮다. 객체 지향언어의 특징 사람이 행동하고 생각하는 방식으로 프로그래밍 한다. 순서, 과정이 중요하지 않다. 이해하기 쉽고, 모듈화하기가 쉽다. 재사용성이 높고, 유지보수가 용이하다. 설계 중심 언어다. 각각 언어의 특징에 대한 이론적인 부분은 이렇습니다. 그렇다면 어떻게 하면 객체 지향적으로 코딩을 할 수 있을까 ..