자바

    [Java] 예외 종류

    Java에서 예외는 Error, RuntimeException, OtherException 3가지 종류로 나뉜다. 먼저 Error는 메모리 부족(OutOfMemoryError), 스택오버플로우(StackOverFlowError)등 JVM 또는 하드웨어적인 시스템의 문제로 발생하는 것을 의미한다. 다시 말해 개발자의 영역이 아님 시스템 영역의 문제이기 때문에 Error가 발생하면 프로그램을 종료시키는 것이 통상적이다. 다음으로는 큰 분류로 Exception이다. Error와 Exception의 가장 큰 차이점은 개발자가 프로그램적으로 처리할 수 있느냐 없느냐의 차이이다. 즉, 예외가 발생하더라도 프로그램이 비정상 종료되는 일을 막을 수 있다. Exception은 RuntiException과 OtherExc..

    [Java] volatile 키워드

    특징 keyword로 Java 변수를 Main Memory에 직접 저장한다. 변수의 값을 Read 할 때마다 CPU Cache에 저장된 값이 아닌 Main Momory에서 직접 읽는다. 변수의 값을 Write할 때마다 Main Memory에 직접 작성한다. 필요성 멀티 스레드 환경에서 하나의 스레드가 Read&Write 하고 다른 스레드에서 Read 할 때, 해당 변수에 대한 최신 값을 보장한다. 예시 class Object { public int count = 0; } 위 Object를 공유하는 두 개의 스레드 A, B가 있다고 가정하자. 스레드 A는 count의 값을 읽고 1씩 증가시키는 연산(Read&Write)을 하고 스레드 B는 count를 읽는 연산만 수행한다(Read). A는 count값을 ..