1. BufferedReader Buffer 라는 개념을 활용하기 때문에, FileReader 보다 더 효율적으로 파일을 읽어올 수 있다. 버퍼를 이용하는 것이 얼핏 보기에는 더 비효율적으로 보일 수도 있지만 한 번에 모아서 처리함으로 인해 빠른 연산이 가능해진다. 예를 들면 땅을 팔 때, 한 번 삽으로 흙을 푼 후 외부로 버리러 가는 것보다 하나의...
Java Application 은 기본적으로 JVM 에서 구현된다. 자바를 처음 공부할 때, 자바 언어의 장점/특징을 배우는 과정에서 garbage collection 이 존재한다라고 배운다. 그런데 이 가비지 콜렉션이 정확히 무엇인지를 가르켜주지는 않는다. garbage collection은 약칭 GC라고 사용한다. 자바에서 사용하는 자료형 중, ...
1. JVM이란? JVM(ava Virtual machine) : 자바를 실행하기 위한 가상 기계라는 의미로 *.java 파일이 javac.exe 라는 java compiler 에 의해 class 파일로 컴파일 된 자바 바이트코드를 OS에 특화된 코드로 변환하여 실행한다. JVM은 <spa...
🔰 프로세스(Process) > 실행중인 하나의 프로그램 ex) 엑셀, 파워포인트, 메모장, 게임, 카카오톡... 등등 프로그램이 실행되기 위해서는 os로부터 Resource(자원)을 할당받아서 실행 여기서 할당받게 되는 Resource란 code : 실행 명령어 코드 data : 전역(global variable), 정적 변수(static variab...
🔰 Thread 생성과 실행 Java에서 Thread 를 만들기 위해서는 Java가 제공하는 Thread class 를 이용한다. 방법에는 2가지가 존재한다. Thread class를 상속받는 하위 클래스를 생성하여 사용하기. 인터페이스를 구현하여 Thread 클래스로부터 직접 생성하여 사용하기. 1. Thread를 상속받는 하위 클래스 생성 상속...
🔰 동기화(synchronized) > 하나의 쓰레드가 특정 작업을 마치기 전까지 다른 쓰레드에 의해 방해받지 않도록 처리하는 방법 이를 이해하기 위해선 두 가지 개념을 접근해야 한다. 1. Critical Section(임계영역) critical section, 임계영역 혹은 공유변수 영역이라고도 부르는 개념은 병렬처리가 이루어지는 프로그래밍에서...