자바(JAVA)란?
1. 자바 언어의 기원
Sun Microsystem의 제임스 고슬링
1990년 그린 프로젝트와 Oak 언어
1995년Java와 HotJava 발표
1996년 1월 JDK – 자바 개발 키트
2009년 Oracle이
Sun을 인수함
Java (제임스 고슬링 인도네시아산 커피 이름 및 섬이름 썰…)
2. Java 언어의 특징
C/C++ 언어와 유사 하나 단순함.
플랫폼에 독립적 (아키텍처 독립적) : 이식성 뛰어남
완전한 객체지향 언어
웹 또는 네트워크 프로그래밍이 용이
엄격한 자료형의 검사
예외 처리 기능 제
멀티 스레딩 지원 : 쉽고 간편하게 멀티스레드를 적용 가능
가비지 컬랙션 : 내부적인 포인트를 가지고 있음.
3. 자바의 실행과정
자바소스 파일 (Hello World.java) → Compiler → 자바 바이트코드 (Hello World.class) → PC (이클립스 등에서 Hellow World 실행이 됨)
*자바 바이트 코드
- java 소스를 컴파일한 결과물
- 확장자는 .class 이며 클래스 파일이라고도 함.
- java VM (JVM) 에서 실행 가능한 코드
4. 애플리케이션과 애플릿
애플리케이션
- java 플랫폼에서 바로 실행되는 프로그램
애플릿
HTML 웹 페이지에 포함되어 웹 브라우저를 통해 실행.
웹 브라우저는 Java VM 을 포함함
<APPLET CODE + "HelloApplet.class"
WIDTH=200 HEIGHT=100>
</APPLET>
5. Java 플랫폼
- java 플랫폼은 java 프로그램의 개발과 실행을 위한 환경
- 프로그램의 실행을 위한 하드웨어와 소프트웨어 환경
MyProgram.java
자바 API {자바 플랫폼}
자바 가상 머신(JVM) {자바 플랫폼}
하드웨어 기반 플랫폼
Java VM, JVM (Virtual Machine)
- java 프로그램의 실행환경을 제공하는 가상 기계
- java 프로그램의 구동 엔진, 실행에 필요한 사항을 관리, 메모리 정리 자동 수행.
java API (라이브러리)
- 프로그램의 개발에 필요한 클래스 라이브러리
패키지 (클래스 묶음) 들이 계층 구조로 분류되어 있음.
JVM의 구성
- 클래스 영역: 클래스 코드를 저장하는 영역
- 자바 스택 (java Stack) : 메서드를 호출할 떄 관련 정보를 저장하는 영역
- 힙 (Heap) : new 라는 키워드를 통해 객체가 생성될 떄 할당받는 영역
- 네이티브 메서드 스택 (Native Method Stack)
JDK (Java Development Kit) : 자바 프로그램을 개발할 수 있게 해주는 개발도구