이 글은 자바의 정석, 다른 블로거님의 글을 참고해 작성한 글입니다. 1. 프로세스와 쓰레드 프로세스는 실행 중인 프로그램을 의미한다. 쉽게 말하면 ctrl + alt + del의 프로세스 탭에 올라와있는 것 하나를 하나의 프로세스라고 부른다. 프로세스는 프로그램을 수행하는데 필요한 데이터, 메모리, 쓰레드로 구성되어있다. 쓰레드는 프로그램이 돌아가게 하는 일꾼이다. 쓰레드는 작업을 처리하기 위해 개별적인 메모리 공간을 요구한다. 프로세스에게 할당된 메모리 공간을 한정적이다. 따라서 한 프로세스에서 생성될 수 있는 쓰레드의 갯수는 한정적이다. 멀티태스킹과 멀티쓰레드 MS-DOS에서는 한번에 하나의 프로세스만 할 수 있었다. 게임을 실행하면 게임만 해야한다. 그렇지만 윈도우에서는 게임을 하면서 음악을 들을..
어노테이션 만들기 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Retry { int maxRetryCount() default 3; int maxAbc() default 10; } @interface로 어노테이션 클래스를 선언한다 @Retention을 통해 어느 시점에 적용할지를 설정한다. @Target을 통해 어떤 곳에 적용할지를 설정한다. (클래스, 메서드, 변수 등등) 어노테이션은 내부적으로 값을 가질 수 있고, 여기에 값을 주면 옵션으로 값을 설정할 수 있다. 타입 + 이름 + () + default형태로 선언한다 어노테이션 사용하기 @Retry(maxRetryCount = 10, maxAbc =..
보호되어 있는 글입니다.
기본 타입과 참조 타입 변수는 기본 타입(Primitive)을 저장하는 변수와 참조(Reference) 타입을 저장하는 변수가 있다. 기본 타입 변수는 값을 실제로 변수에 바로 저장하는 방식이다. 기본 타입 변수에 들어갈 수 있는 값은 정수, 실수 등이 있다. 반면에 참조 타입 변수는 변수에 값을 저장하는 것이 아닌 객체의 주소값을 저장한다. 참조 타입 관련 더 알아보자 먼저 우리가 사용하는 String은 Primitive Type이 아닌 객체 타입이다. String은 실제로 Heap 메모리 영역에 객체를 하나 생성하고, 그 객체에 우리가 넣은 값을 넣어주는 형태로 동작한다고 한다. 이를 참고해서 다시 한번 참조변수에서 대해서 알아본다면, 참조변수에서 '=='을 사용하면, 그 의미는 같은 주소를 가리키고..
Try Catch 일단 Try 내에 있는 코드를 실행해본다. 예외가 발생할 경우 Catch에 있는 구문으로 넘어가고, Catch의 () 안에 있는 것과 동일한 Exception Type이면 그 구문에서 예외처리를 해준다. Try Catch Finally Finally 블록은 항상 실행된다. 이걸 활용한 예외처리 방식이다. 주로 I/O Stream을 할 때 많이 사용한다. I/O Stream을 하게 되면, 열었던 파일을 반드시 닫아줘야한다. 그런데 열었던 파일을 닫아주기 위해서는 파일이 열려있는 상태여야한다. 즉, 예외 처리 안에서 또 다시 예외처리가 발생하면서 코드가 굉장히 지저분해진다. 이 때 Finally 구문을 쓴다. Finally는 무조건 사용이 되기 때문에, 파일이 열든 열리지 않든 Finall..