-
현재 컴퓨터 업계에서 가장 많이 사용되는 프로그래밍 언어 중의 하나
-
방대한 라이브러리와 다양한 실행 환경을 가지고 있는 하나의 거대한 플랫폼
-
1991 제임스 고슬링을 비롯한 썬 마이크로시스템즈 사의 Green 프로젝트팀이 개발 -> 가정용 전자제품에 사용할 수 있는 컴퓨터 언어를 설계
-
플랫폼 호환성 문제 해결
- 기존 언어로 작성된 프로그램은 PC, 유닉스, 메인 프레임 등 플랫폼 간에 호환성 없음
- 소스를 다시 컴파일하거나 프로그램을 재작성해야하는 단점
-
플랫폼 독립적인 언어 개발
- 모든 플랫폼에서 호환성을 갖는 프로그래밍 언어 필요
- 네트워크, 특히 웹에 최적화된 프로그래밍 언어의 필요성 대두
-
메모리 사용량이 적고 다양한 플랫폼을 가지는 가전 제품에 적용
- 플랫폼 독립성
- 플랫폼 상관없이 어디서든 실행 가능
- 자바 컴파일러는 자바 언어로 작성된 프로그램을
Byte code
라는 특수한 이진파일로 변환 JVM(Java Virtual Machine)
이 byte code 실행
- 자바 컴파일러는 자바 언어로 작성된 프로그램을
- 플랫폼 상관없이 어디서든 실행 가능
- 객체지향
- 객체별로 코드 작성 후 객체들을 조합하여 전체 프로그램을 완성하는 프로그램 설계 방법론
- 객체 지향 기법을 사용하면 이미 작성된 코드를 재사용하기 쉬움
- 보다 빠르고, 신뢰성 있는 프로그램 만들 수 O
- 멀티스레딩
- 여러가지 작업을 동시에 실행
- 자바는 언어 수준에서
multithreading
을 지원
- Java Application
- 독립적으로 실행될 수 있는 일반 응용 프로그램
- Java applet
- 웹 브라우저 안에서 실행되는 작은 프로그램
- Java servlet
- 웹서버에서 동작하는 서버 모듈로서 클라이언트의 요구를 받아서 그에 대한 처리를 한 후 실행결과를 HTML 문서 형태로 클라이언트 컴퓨터로 전송
- 안드로이드 애플리케이션은 자바로 작성
- 안드로이드 개발자들은 자바의 SE 버전 중 AWT,Swing(그래픽 관련 부분)을 제외한 거의 모든 패키지 사용
- 효율성 때문에 자체적인 달빅 가상머신 구현
- C,C++ 언어는 모두 타겟 컴퓨터의 CPU나 운영체제에 맞춘 코드.
- 다른 CPU나 운영체제에서 실행하려면 다시 컴파일해야함.
- 그러나 자바 언어로 컴파일 하였을 경우 운영체제나 CPU에
상관없이 실행 가능
- 자바 컴파일러는 가상 컴퓨터의 기계어인
byte code
를 생성 byte code
는자바 가상 기계(JVM: Java Virtual Machine)
이라고 하는 소프트웨어의 이해 한 줄씩 해석되면서 실행.
-
종류
Java SE
- 데스크탑과 서버에서 자바 애플리케이션을 개발, 실행할 수 있게 해주며 임베디드 환경(embedded environment)과 실시간 환경(real-Time environments)도 지원.
- Java EE
- Java EE는 기업용 애플리케이션을 개발하는 데 필요한 여러 가지 도구 및 라이브러리를 모아놓은 것
- 응용 서버, 웹서버, J2EE API, 엔터프라이즈 자바 빈즈(JavaBeans)지원, 자바 서블릿 API 와 JSP 등을 포함.
- Java ME
- Java ME는 핸드폰,PDA,TV셋톱박스,프린터와 같은 모바일 기기나 다른 임베디드 장치들에서 실행되는 애플리케이션을 위한 강인하고 유연한 환경을 제공
-
버전
- Java SE 8에 추가된 중요한 특징
- 함수형 프로그래밍 지원
- 람다식 (Lambda expressions)
- 작은 가상기계(VM)
- Java SE 9에 추가된 특징: 모듈화 프로그래밍
- 모듈화는 직소(jigsaw) 프로젝트의 산물
- 모듈화의 목적은 자바 응용 프로그램을 만들 때, 마치 직소 퍼즐을 연결하듯이 필요한 모듈만을 묶어서 사용하려는 것.
- Java SE 8에 추가된 중요한 특징
- JRE(Java Runtime Environment)
- JRE는 자바 프로그램을
실행
하기 위한 라이브러리, 자바 가상 기계, 기타 컴포넌트들을 제공.
- JRE는 자바 프로그램을
- JDK(Java Development Kit)
- JDK는 JRE에 추가로 자바 프로그램을
개발
하는데 필요한 컴파일러, 디버거와 같은 명령어행 개발도구를 추가한 것.
- JDK는 JRE에 추가로 자바 프로그램을
- Oracle JDK와 Open JDK는 거의 차이X
- Oracle JDK: 상업용 코드를 판매하는 JDK
- Open JDK: 공개 소스 기반의 JDK, 오라클은 라이선스가 들어있는 코드를 제외한 자바 설치본을 Open JDK를 통해 배포하고 있음.
- 기본 설치 폴더 경로는
C:\ProgramFiles\Java
가 됨. - 디렉터리
- bin: 컴파일러, 디버거 등의 도구 포함
- conf: 구성 파일이 저장됨. 개발자가 편집 가능.
- include: 네이티브 코드 프로그래밍을 지원하는 헤더 파일들. 자바와 c를 동시에 사용하는 프로그램 개발시에 쓰임.
- jmods: 컴파일된 모듈이 정의되어 있음
- legal: 저작권, 라이선스 파일이 저장됨.
- lib: 개발 도구들이 필요로 하는 추가적인 클래스 라이브러리와 지원 파일들.
- 자바 컴파일러는 javac
public class Hello{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
- 다음과 같은 코드를 메모장에 작성 후 cmd 명령어 접근을 통해 실행 가능.
> javac Hello.java
- javac를 통해 소스 파일 컴파일하여 클래스 파일로 변환. 그 후 dir에서 Hello.class 파일이 생성된 것을 확인 후 실행 명령어 java를 이용하여 클래스 파일 실행.
> java Hello