티스토리 뷰

Back-end/Java

[JAVA] 자바란?

EdenHwang 2021. 9. 14. 23:50

자바는 프로그래밍언어의 하나로 대표적인 체지향 프로그래밍 언어입니다.

자바는 1995년도에 썬 마이크로시스템즈라는 회사에서 개발된 후 지금까지 자바는 성공한 프로그래밍 언어로서 다양한 분야에서 사용되고 있습니다.

자바 언어를 처음 발표한 1995년부터 1999년 까지는 윈도우(Windows) 프로그램 개발이 주류였기 때문에 C++에 비해 열세 였으나 1999년 이후 인터넷이 활성화 되면서 웹 어플리케이션 구축용 언어로 급부상 하였고, 지금은 스마트폰을 비롯한 각종 장비와 데스크톱에서 실행되는 어플리케이션, 엔터프라이즈 기업환경에서 실행되는 서버 어플리케이션을 개발하는 중추적인 언어로 자리매김하고 있습니다.

현재는 썬 마이크로시스템즈가 오라클에 인수되어 오라클 사에서 자바를 관리 배포하고 있습니다.

 

자바의 특징

 

1. 이식성이 높은 언어

자바언어로 개발된 프로그램은 소스파일을 수정하지 않아도, JRE가 설치되어있는 모든 운영체제에서 실행이 가능합니다.

 

2. 객체 지향 언어

객체 지향 언어(OOP) 란 부품에 해당하는 객체들을 먼저 만들고. 이것들을 하나씩 조립해서 전체 프로그램을 완성하는 기법입니다.

자바는 100% 객체 지향 언어로서 처음부터 객체를 고려하여 설계 되었기 때문에 캡슐화, 상속, 다형성 기능을 완벽히 지원합니다.

 

3. 메모리를 자동으로 관리

자바에서 메모리는 자바가 직접 관리합니다.

객체 생성 시 자동으로 메모리를 할당하고, 사용이 완료되면 Garbage Collector를 실행시켜 자동적으로 사용하지 않는 객체를 제거해 줍니다.

 

4. 멀티 스레드를 쉽게 구현

하나의 프로그램이 동시에 여러 작업을 처리해야 하는 경우나 대용량 작업을 빨리 처리해야 하는경우 멀티 쓰레드 프로그래밍이 필요합니다.

자바는 스레드 생성 및 제어와 관련된 API를 제공하고 있기 때문에  운영체제에 상관없이 멀티 스레드르 쉽게 구현할수 있습니다.

 

5. 동적 로딩을 지원

자바에서는 어플리케이션이 실행될 때 모든 객체가 생성되지 않고, 객체가 필요한 시점에 클래스를 동적로딩해서 객체를 생성합니다. 또한 유지보수가 발생하더라도 해당 클래스만 수정하면 되므로 전체 어플리케이션을 다시 컴파일할 필요가 없습니다. 따라서 유지보수를 쉽고 빠르게 할수 있습니다.

 

6. 강력하고 풍부한 오픈소스 라이브러리

자바는 오픈소스 언어이기 때문에 오픈소스가 풍부합니다.

검증된 오픈소스 라이브러리를 사용하면 개발기간을 단축하면서 안전성이 높은 어플리케이션을 쉽게 개발할수 있습니다.

 

 

JDK, JRE 그리고 JVM

자바 가상 기계(JVM)

  JVM 은 완전한 기계어가 아닌 자바를 해석하고 실행할수 있는 가상의 운영체제 입니다.

  운영체제별로 프로그램을 실행하고 관리하는 방법이 다르기 때문에 자바에선 운영체제와 자바 프로그램을 중계하는 

  JVM을 두어 여러 운영체제에서 실행이 가능하게 만들어 줍니다.

  따라서 개발자는 운영체제와 상관없이 개발할수 있다는 장점이 있습니다.

  하지만, 완전한 기계어가 아니라서 JVM에 의해 기계어로 번역되야 하기 때문에, C 나 C++ 같은 완전한 기계어 보다는    속도가 느리다는 단점도 존재합니다.

 

자바 실행 환경(JRE)

  JRE는 자바 프로그램 구동에 필요한 JVM과 라이브러리 API만 포함되어있는 실행 환경입니다.

  만약 자바프로그램을 개발하고자 하는게 아니고 이미 개발된 프로그램만 실행한다면 JRE만 설치하시면 됩니다.

  • JRE = JVM + 표준 클래스 라이브러리

자바 개발 도구(JDK)

  JDK는 프로그램 개발에 필요한 JVM, 라이브러리 API, 컴파일러 등의 개발도구가 포함되어있는 소프트웨어이다.

  • JDK = JRE + 개발에 필요한 도구

      

 

 

 

'Back-end > Java' 카테고리의 다른 글

[JAVA] jdk 1.8 설치하기  (0) 2021.09.16
[JAVA] 자바 프로그램 개발 순서  (0) 2021.09.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday