[Java] Chapter1. Java에 대하여
유튜브에 있는 남궁성의 자바의 정석 강의를 듣고 정리한 포스트입니다! :)
click > 남궁성의 자바의 정석(기초편)
Chapter1. Java에 대하여
Java의 소개
Java는 시장 점유율 1위의 프로그래밍 언어로, James Gosling이 창조하였다.
컴퓨터 프로그램을 만드는데 사용되고, 실행환경(JRE) + 개발도구(JDK) + 라이브러리(API)를 제공한다.
JDK vs JRE
JRE는 JDK보다는 작은 개념으로 'Java Runtime Environment'의 약자이다. 자바가 실행될 수 있는 최소한의 파일들이 설치되어 있는 환경이라고 생각하면 된다. JRE에는 javac.exe와 같은 자바소스를 컴파일하기 위한 도구는 설치되지 않는다.
* JRE : JVM + 표준 클래스 라이브러리
* JDK : JRE + 개발에 필요한 도구
Java의 특징
1) 간단하다. (Simple)
Java는 C++에 가깝지만 훨씬 간단하다.
2) 객체지향적이다. (Object-oriented)
Java는 숫자(int, float, long 등)나 논리값(boolean)을 제회한 거의 모든 것이 객체로 구성되어 있다.
3) 인터프리터 언어이다. (Interpreted)
Java는 컴파일 언어인 동시에 인터프리터 언어이다. Java는 먼저 소스파일을 컴파일하여 2진 파일(.class)로 만들고, 이를 Java VM이 인터프리트하면서 실행한다.
4) 강력하다. (Robust)
Java는 포인터 연산을 지원하지 않아 잘못된 주소를 가르킬 가능성을 없앴다. 모든 메모리 접근을 자바 시스템이 관리하고 제한한다. (ex> garbage collection으로 사용이 끝난 자원을 시스템이 메모리에서 삭제하여 메모리 누출을 막는다.)
5) 안전하다. (Secured)
자바는 포인터 개념이 없고 유형 정의가 강고하여서 실행 전에 클래스 파일을 이용한 프로그램의 검사가 가능하다. 프로그램 작성 시 자료형 타입에 굉장히 민감하다.
5) 플랫폼 독립적이다. (Platform independent)
Java 프로그램은 Virtual Machine(JVM)에 의해서 실행되기 때문에 OS에 상관없이 실행할 수 있다.
6) 멀티 쓰레딩을 지원한다.
하나의 프로그램 단위가 동일한 쓰레드를 동시에 수행할 수 있다. 특히 자바는 멀티 프로세서 하드웨어를 지원하도록 설계되었으므로 멀티 CPU 시스템에서 높은 효율을 낼 수 있다.
7) 동적이다.
Java 인터페이스를 이용하면 하나의 모듈을 갱신할 때 다른 모듈을 모두 갱신할 필요가 없다.
Java의 실행
- 소스코드(MyProgram.java)를 작성한다.
- 컴파일러(Compiler, javac.exe)는 자바 소스코드를 이용하여 클래스 파일(MyProgram.class)을 생성한다. 컴파일 된 클래스 파일은 Java VM(Java Virtual Machine, java.exe)이 인식할 수 있는 바이너리 파일이다.
- Java VM(JVM)은 클래스 파일의 바이너리 코드를 해석하여 프로그램을 수행한다.
- MyProgram 수행 결과가 컴퓨터에 반영된다.
Java API 문서
Java API란?
Java로 프로그램을 만드는데 필요한 주요 기능을 미리 만들어서 제공해주는 것이다.
Java API 문서란?
Java API가 제공하는 기능에 대한 상세한 정보를 제공한다. 패키지와 클래스, 메서드(index)에 대해 검색할 수 있다.
click > Java API document download
Summary
• Java의 실행 과정 : .java 파일을 javac.exe 가 컴파일하여 .class 파일을 생성하고, .class 파일을 JVM이 해석하여 프로그램을 실행한다.
• Java의 패키지, 클래스, 메소드를 정리해 놓은 API 문서를 잘 활용하자!
댓글남기기