2015/09/06



자바소개


자바는 운영체제에 독립적입니다. 쉽게 말해서 한번 코딩하면 윈도우(window)를 사용하던 리눅스(Linux)를 사용 하던 상관없이 실행이 가능하다는 장점이 있어요. 자바가 아닌 다른 언어는 운영체제(window or Linux)에 따라서 코딩을 각자 해줘야 하는 불편함이 있었는데 이걸 해결 했다는 말이죠.


자바는 많은 Java API 를 가지고 있습니다. 이미 코딩이 되어 있는? Java API 가 있어 쉽게 다양한 기능들을 사용 할 수 있습니다. (api는 쉽게 누군가가 기능(예_현재시간 알려주는 기능)들을 구현해 둔걸 그저 쓰기만 한다고 생각하시면 편해요.)


자바는 메모리를 쉽게 관리합니다. 하나하나 사용하지 않는 메모리를 지워주거나 그런 불편한 작업 없이 자바가 가지고 있는 가비지컬렉터(garbage collector)가 사용하지 않는 메모리를 지워주죠 프로그래머가 할일을 줄여 준겁니다. 하지만 비효율적인 부분도 있답니다.


자바는 멀티쓰레드를 지원합니다. 멀티쓰레드는 멀티테스킹이라고 생각하면 됩니다. 컴퓨터는 엄청나게 빠른 속도로 일하지만 하나 하나씩 일을 수행하는데 멀티쓰레드를 사용하면 동시에 2가지 3가지 일을 할 수 있어요. 핸드폰 하면서 친구와 대화 하는것 같은 동시에 여러가지 일을 하는거죠.


자바는 분산처리와 네트워크를 지원합니다. 네트워크는 2번째에서 말한 java API가 네트워크 관련된 부분들을 가지고 있어서 쉽게 네트워크 프로그램을 개발 할 수 있습니다. 분산 처리는 한곳에서 모든것을 처리하는 집중 처리와 대비되는 의미인데

여러개의 처리장치로 분산시켜서 일을 하는것을 분산처리 라고 한답니다.


JVM(Java Virtual Machine)


JVM 은 java를 실행시켜주는 소프트웨어 입니다. java는 오직 JVM 하고만 상호작용 하죠. 자바가 운영체제에 독립적이라고 한 것 기억하시죠? (기억 안나면 다시 읽어보세요 ㅎ) 바로 JVM 때문에 가능한겁니다. java로 이루어진 어플리케이션은 오직 JVM 하고만 상호작용을 하고 그 JVM 은 OS(window or Linux) 와 상호작용을 합니다. 그래서 OS(window or Linux) 에 맞는 JVM만 가져오면 java 어플리케이션은 각각의 OS에 맞게 코딩해줄 필요가 없는거죠. 이런 장점이 바로 한번 작성하면 어디서든 실행된다. "Write once, run anywhere"입니다.


OS 마다 다른 의사소통 방식이 있는데 그거에 맞게 코딩을 해주거나(java 가 아닌 언어들) 중간에서 번역자(JVM)이 필요한거죠.

즉 JVM이 java와 OS 중간에서 통역을 해주는 겁니다.




   참조 그림1 ( Java는 JVM과 상호작용을 하고 / 다른 어플리케이션은 OS와 상호작용한다.)




참조 그림2 (java 어플리케이션은 동일하고 OS에 맞는 JVM으로 똑같은 어플리케이션을 실행 할 수 있다.)


+ Recent posts