보통 Java 라는 언어를 언급할 때 가장 자주 등장하는 것이 바로 객체지향이라는 단어입니다. 이것은 Java라는 언어의 중요한 software 기술 중의 하나입니다. Java라는 언어는 그리 오래 되지 않은 프로그래밍 언어입니다. 그렇기 때문에 비교적 최신의 Software 기술이 적용되어 있습니다. 그 중 하나가 객체지향인 것입니다. 그 밖에도 Multi-Threading, SEH(Structured Exception Handler), Garbage Collection, Dynamic Linking, Dynamic Extension 등의 기술들이 접목되어 있습니다.

Java의 Class 파일은 JVM 위에서 다시 실행 가능한 형태로 변형되는데 이 때 Linking 작업이 발생하게 됩니다. 그래서 Class 파일은 실행 시 Link를 할 수 있도록 Symbolic Reference 만을 가지고 있습니다. 이 Symbolic Reference는 Runtime 시점에서 메모리상에서 실제로 존재하는 물리적인 주소로 대체되는 작업인 Linking이 일어나게 되는 것입니다. 이러한 Link 작업은 필요할 때마다 이루어지기 때문에(동적행위) 이를 가리켜 Dynamic Linking이라고 합니다.

이 Dynamic Linking이라는 기술 덕분에 Class 파일의 크기를 작게 유지할 수 있습니다. C언어와 같이 모든 정보를 가지고 있지 않기 때문에 파일 크기가 작고, 그래서 Network를 통해 객체를 전송하고, 배포하는데 있어 유리합니다.

또한 Class파일은 JVM이 읽을 수 있는 형태(Bytecode)로 되어 있습니다. 어떤 시스템이든 JVM만 설치되어 있으면 어디서 작성되었든 Class파일은 실행이 가능합니다. 즉, 플랫폼에 독립적입니다. 그렇기 때문에 생산성을 극대화 할 수 있으며, 이러한 이유로 인해 Java는 비약적으로 발전 할 수 있게 되었습니다.

Java는 Runtime Memory를 직접 핸들링 하지 않습니다. 다시 말해 Java 사용자는 Runtime Memory를 핸들링 해서도 안되고, 또한 할 수 있는 방법도 전혀 없다는 의미입니다. 그 밖에도 객체지향의 특성인 Source Code의 재사용, Array Bound Check 등과 같은 엄격한 Type Rule, 그리고 Object Reference Check 등을 통한 프로그램의 안정성의 제공 등도 Java의 장점으로 꼽을 수 있습니다.

'Information Technology > Programming' 카테고리의 다른 글

The Java Application Interface  (0) 2013.04.18
The Java Class File Format  (0) 2013.04.14
The Java Language and JVM  (0) 2013.04.14
Java Basic Architecture  (0) 2013.04.11
Regular Expressions Debugger  (0) 2013.03.04
ClassLoader 3 : Classloader & JAVA Packages  (0) 2012.11.28

+ Recent posts