자바의 특징 ¶
- 자바는 Sun Microsystems 에서 개발한 객체지향형 프로그래밍 언어
- 기존의 프로그래밍 언어에 비해서 간단하며 배우기가 쉽고, 핸드폰에서, 대형 금융권 시스템에까지 그 활용범위가 무궁무진한 프로그래밍 언어이자 플랫폼
장점 ¶
- 간단하다(Simple):
- 객체지향적이다(Object-Oriented):
- 높은 신뢰성(Reliability)을 갖는다:
- 보안성(Security)을 갖는다:
아키텍쳐 중립적(Architecture-neutral)이고 이식성(Portable)이 높다:
자바는 서로 다른 이종(Heterogeneous)의 네트워크 환경에서 분산 되어 실행될 수 있도록 설계되었습니다. 이와 같은 환경에서는 응용 프로그램들이 다양한 하드웨어 아키텍쳐 위에서 실행될 수 있어야만 합니다. 이를 위해 자바 컴파일러는 이종의 하드웨어 및 소프트웨어 플랫폼에서 효율적으로 코드를 전송하기 위해 설계된 아키텍쳐 중립적인 중간 코드인 바이트코드를 생성합니다. 이는 동일한 자바 프로그램의 자바 바이트코드가 자바 가상머신이 설치되어 있는 어떤 플랫폼에서도 실행될 수 있도록 하는 것입니다. 또한, 자바는 기본 언어 정의를 엄격하게 함으로써 효율적인 이식성을 제공해 주고 있습니다. 예를 들어, int 형과 같은 기본 데이터형의 크기를 플랫폼과 무관하게 일정하게 하고, 연산자의 기능을 확실하게 규정하고 있습니다. C 언어를 이용하여 int 형을 선언할 때, 도스에서는 16비트, 윈도우 95/98/NT 등 32비트 운영 체제 환경에서는 32비트, 유닉스에서는 32비트 등 그 플랫폼에 따라 크기가 다르지만, 자바에서는 플랫폼에 상관없이 32비트로 고정되도록 하였습니다. 이는 자바 프로그램이 실행되는 환경이 자바 가상머신으로 동일하기 때문입니다.
- 높은 수행성능(High-performance)을 제공한다:
- 인터프리터(Interpreter) 방식이다:
- 다중 스레드(Multi-thread)를 지원한다:
단점 ¶
- 자바 Applat 에서 - 자바 Bytescode는 소스를 자바 컴파일러로 컴파일한 결과물로서 HTML 문서에 비해 크기가 매우 크며 웹 서버에서 브라우저로 전송되기까지가 많은 시간이 걸린다. 일단 전송된 애플릿은 브라우저가 수행시키므로 그 속도는 클라이언트의 시스템 환경과 브라우저가 내장하고 있는 JVM의 성능에 따라 좌우된다. 28.8K 정도의 모뎀 환경이라면 그럴듯한 애플릿을 다운 받아서 수행하는데는 많은 인내심이 필요하게 된다. 그러나, 점차 인터넷 통신 환경이 좋아지고 있으며 가정집을 제외한 대부분의 사무실과 학교 등에서는 전용 회선이 깔려 있고, 넉넉한 환경의 전용선이라면 애플릿을 구동하는데 무리가 없다. 근래에는 가정에서도 초고속 통신 환경을 싼 값에 구축할 수 있으므로 점차적으로 인터넷 환경에서 애플릿의 전송은 부담이 되지 않을 것이다. JVM도 기술적으로 많이 향상되었고, Sun뿐 아니라, IBM과 같은 매머드급 회사들이 뛰어들어 개발하고 있어 초기 지적받았던 JVM의 구동 속도는 점차 문제가 되지 않는 상황이다.
VM(가상머신)에 대해 ¶
- 자바 가상머신(Java Virtual Machine; Java VM):
사용자는 자바 바이트코드로 컴파일된 자바 프로그램을 실행시키기 위해서 이 자바 가상머신을 이용하면 된다.
- 자바가상머신은 자바로 작성된 프로그램이 어떤 환경에서든지 작동할 수 있도록 해 준다
그 구조를 전반적으로 살펴보면 다음과 같다.
클래스로더는 자바 소스를 컴파일해서 생성된 클래스 파일을 로딩한다.
클래스 파일내의 메서드, 변수들, 객체 변수들을 자바가상머신의 각 메모리에 로딩한다.
메서드 --> 메서드영역에 로딩
변수들은 --> 스택 영역에..
객체변수, 클래스변수 --> 힙 영역..
실행엔진은 메모리에 로딩된 메서드들을 실행한다.
네이티브 메서드는 자바 언어 말고 다른 언어로 된 메서드를 호출해서 수행하는 메서드이다. 이러한 메서드도 자바가상머신에서 처리한다.
자바가상머신은 위의 같은 구조로 어떤 환경이든지 자바로 만든 프로그램이라면 실행시켜주는데 가상적인 하드웨어에 가깝다.
쓰는데 있어서의 단점 ¶
자바의 종류와 버젼 및 그 과정 ¶
자바 프로그램의 종류 ¶
- 자바 언어를 이용하여 작성할 수 있는 자바 프로그램의 종류를 살펴보면 다음과 같다.
- 자바 애플리케이션(Application):
- 자바 애플릿(Applet):
- 자바 서블릿(Servlet):
- 자바 빈(Bean):
- 자바 패키지(package):
자바 언어의 유래 ¶
자바는 처음에는 가전 제품에서 단순하게 사용되다가 플랫폼 독립적인 기능이 인터넷의 기능과 조화를 이룬다는 점을 밝혀져 1995년 썬 마이크로시스템즈(Sun Microsystems)에서 "자바(Java) 언어"를 와 "핫자바(HotJava)"를 발표하면서 세상에 나오기 시작했다. "핫자바(HotJava)"는 자바 언어로 만든 웹브라우저를 말한다. 바로 JDK(Java Developers Kit) 1.0.x버전을 발표하면서 본격적인 자바 개발환경이 지원되기 시작된다. 그리고 Netscape와 라이센스 계약을 통해 Netsacpe 브라우저에서 자바가 시행됨으로서 전 세계로 자바가 확산된다.
그후 1997년 JDK 1.1 을, 1998년 JAVA2의 시작인 JDK 1.2를, 2000년 JDK 1.3, 2002년에는 JDK 1.4가 발표되면서 자바는 빠른 속도로 발전하게 된다. 그리고 곧 JDK 1.5가 출시될 예정이다.
"Hello, World!" 출력 ¶
~cpp class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); } }