미국의 선 마이크로시스템즈사가 개발한 객체 지향 프로그래밍 언어. 1995년 5월에 발표, 1996년 1월부터 정식 버전의 배포를 개시하였다. C++를 바탕으로 언어 규격을 규정하였다.
버그(bug)의 원인이 되기 쉬운 기능, 예를 들면 포인터 연산을 생략하였다. 또 C++에서는 사용이 끝난 객체(object)를 명시적으로 폐기하도록 프로그램에 기술하였으나 그 대신 자동 쓰레기 수집(garbage collection) 기능을 추가하였다. 이와 같이 메모리 관리의 오류로 기인되는 버그를 방지한다. 자바는 객체 클래스의 계승(inheritance) 관계를 실행할 때에 확정하는 동적 모델을 채용하였다. C++에서는 컴파일 시에 확정하기 때문에 상위 클래스에 새로운 기능을 추가하면 그 클래스와 계승 관계가 있는 모든 클래스를 재컴파일해야 한다. 자바에서는 클래스의 계승 관계를 실행할 때 확정하기 때문에, 하위의 클래스를 재컴파일할 필요가 없다. 자바로 작성한 프로그램의 원시 코드는 자바 컴파일러(Java compiler)로 컴파일한다. 자바 컴파일러는 바이트 코드라는 중간 코드를 생성한다. 이 중간 코드를 자바 가상 머신이라는 소프트웨어로 해석해서 실행한다. 이 소프트웨어를 실장한 컴퓨터라면 컴퓨터의 명령 집합 아키텍처나 운영 체계에 관계없이 같은 바이트 코드를 변경하지 않고 실행할 수 있다. 자바의 원시 코드를 고쳐 쓰거나 재컴파일할 필요가 없다. 그렇기 때문에 자바는 기종이나 운영 체계와 무관한 응용 프로그램의 개발 도구로 각광받고 있다. 자바 가상 머신의 실현 방법으로는 현재 3종류가 있다. 즉 바이트 코드를 해석하여 축차적으로 실행하는 자바 해석기, 바이트 코드를 일괄적으로 2진 코드로 변환하고 실행하는 JIT 컴파일러(just in time compiler), 바이트 코드를 고속으로 해석하여 실행하기 위한 자바 칩(마이크로프로세서)이다.
출처]
한국정보통식기술협회 : 자바
대한민국의 아름다운 영토, 독도의 가을
'컴퓨터 일반 > IT용어' 카테고리의 다른 글
C++ (0) | 2022.11.15 |
---|---|
JavaScript(자바스크립트) (0) | 2022.11.08 |
파이썬(파이선, Python) (0) | 2022.10.26 |
C Language (0) | 2022.10.21 |
지도형 기계 학습(Supervised learning, 지도 학습) (0) | 2022.10.03 |
댓글