Java

    [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값을 ..

    [Java] Scanner와 BufferedReader

    Scanner Java에서 데이터를 입력받을 때, 가장 손쉽고 빠르게 입력받을 수 있도록 도와주는 클래스이다. 이 Scanner 클래스는 java.util 패키지에 포함되어 있으며 문자, 정수, 실수를 입력받을 수 있도록 도와주고, 무엇보다 쓰기 너무 편하다. Scanner의 객체를 만들 때는 System.in을 넣어 만드는데 이 System.in은 입력값을 바이트 단위로 입력받는 것을 의미한다. 한번 코드로 알아보자. Scanner scanner = new Scanner(System.in); 이렇게 객체를 만든 뒤, scanner를 통하여 next() 메서드를 이용하여 입력값을 받을 수 있는데, 공백 이전까지의 값이 입력된다. 또한 각 입력 값을 받을때 원하는 자료형으로 입력받도록 메서드를 지원한다. ..