Java - 자바 소개 및 특징

kojam9041·2022년 3월 15일
0

KH정보교육원 - JAVA

목록 보기
2/12

자바 소개

* 썬 마이크로시스템즈에서 개발하여 발표한 객체지향 언어이다.
* 운영체제에 영향을 받지 않고 실행되는 특징때문에, 
  다양한 환경의 운영체제가 공존하는 인터넷 환경에 적합하다.
* 자바 내에 다양한 클래스 라이브러리(API)를 제공하고 있어, 효율적인 프로그램을 만들 수 있다.

자바의 역사

* 본래, 가전제품에 탑재할 소프트웨어를 만드는 것을 목표로 C++를 확장하여 사용하려 했으나,
  C++로는 한계가 있다는 것을 깨닫고, C++의 단점을 보완하는 시도 끝에 만들어졌다.
* 초기에는 가전제품이나 PDA 등 소형기기에 사용하려 했으나, 
* 인터넷의 등장으로 현재는 웹개발에 사용되고 있다.

자바의 특징

1. 운영체제에 대하여 `독립적`이다.(`이식성`이 높다) 
- 어느 환경이든 Java코드로 작성되어 있으면 동일하게 실행이 가능하다.
2. 사용하기 쉬운 언어이다(`포인터, 메모리`)
- 다른 언어의 단점을 보완하였다.
- '객체 지향 언어`이다. (부품을 정의하고 이를 조립한다) 
- 능률적이고 명확한 코드를 작성할 수 있다.
3. 자동 메모리 관리(`Garbage Collection, Garbage Collector`)가 가능하다.
- C언어보다 Java가 효율적으로 메모리를 관리한다.(주기적으로 메모리 공간을 청소한다.)
4. 네트워크와 `분산환경`을 지원한다. 
5. `멀티쓰래드`를 지원한다.
- 하나의 프로그램이 동시에 여러 행위를 할 수 있게 하는 것이 멀티쓰래드이다.
- 음악이 재생되면서 실시간으로 가사가 출력되는 것도 멀티쓰레드이다.

자바 개발 환경

설치범위 : 사용자, 개발자의 입장에 따라 설치하는 범위가 달라진다.
- JDK(Java Development Kit) : 개발도구
- JRE(Java Runtime Environment) : 실행환경
- Java SE(Standard Edition) : 기본버전
- Java EE(Enterprise Edition) : SE + WEB
- Java ME(Micro Edition) : 임베디드 플랫폼

자바의 프로그래밍 과정

* Source Code(자연어,java) 
* Compiler(번역기) 
* Byte Code(기계어,class) 
* JVM(재번역,실행)

1. .java 언어의 문법에 따라 Source Code를 작성한다
2. JDK에서 제공하는 javac 컴파일러를 이용하여, Byte Code형식으로 Source Code를 컴파일한다
3. 컴파일된 class파일을 JDK가 제공하는 java인터프리터를 사용하여 실행한다.
4. 실행시, 실행에 필요한 클래스들이 JVM과 연결되며, 클래스 로더가 클래스를 동적으로 로딩한다.

JVM

* 자바 Byte Code를 해당 운영체제의 기계어로 재번역하면서 실행하는 주체이다.
* 운영체제와 자바 프로그램을 연결해주는 역할을 수행한다.
* 자바 프로그램을 플랫폼(운영체제)와 독립적으로 작동할 수 있도록 해 주는 역할이다.
* 인터프리터나 JIT(Just In Time)컴파일 방식으로 바이트코드를 실행할 수 있도록 한다.
        - JIT : 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법이다.
        - 실행시점에 기계어 코드를 생성하면서 해당 코드를 캐싱한다. 
        - 함수가 여러번 호출될때마다 매번 기계어 코드가 생성되는 것을 방지한다.
* JRE에 포함되어 배포된다.
* Garbage Collection을 수행한다.

0개의 댓글