Java Platform이란.

자바 프로그램이 실행되기 위해 제공되는 ‘하드웨어적 프로그램’으로, 자바 API와 JVM으로 구성되어 있다.

자바 API(Java Application Programming Interface) – 유용한 기능을 제공하는 많은 클래스와 인터페이스들의 묶움으로 패키지로 제공된다.

자바가상머신(JVM, Java Virtual Machine) – 물리적인 실제의 기계 장치가 아닌 추상적인 장치로 명령어와 레지스터의 집합, 스택, 힙, 메서드 영역 등으로 구성되어 있다.

자바 플랫폼의 종류

JavaSE
J2SE라고도 불리며, 자바의 표준이 되는 플랫폼이다.
일반적인 컴퓨터 환경의 응용 프로그램들을 개발하기 위해 제공되는 환경이다.
(J2EE나 웹서비스 등에도 제공할 수 있는 환경)

JavaEE
J2SE를 바탕으로 자바의 가장 많은 특징을 이용하는 환경이라 할 수 있다.
추가적인 툴이나 개발에 필요한 API들이 추가적으로 제공되고 있다.
(Servelet/JSP, XML 기술 등)

JavaME
가장 작은 환경이므로 주로 소형제품을 위한 플랫폼이다.
메모리 관리에는 최적화되어 있고 전원 처리, 내부 장치간의 입출력 기능 등 일정한 범위를 두고 제공된다.

JAVA의 특징

1. 배우기 쉽다.
자바와 같은 객체지향 언어의 특징은 복잡하고 다루기 힘든 부분은 모두 제거하고 꼭 필요한 부분들만 적용시켜 프로그래밍을 간편하게 작성하는데 있다.(ex. 포인터)

2. 플랫폼 독립성
운영체제 별로 환경이 다르므로 해당 운영체제에서 돌아갈수 있는 적합한 환경이 필요한데, 자바는 이에 영향을 받지 않는다.

여기서 나오는 자바구현 정신!! Write Once, Use Anywhere !!

Java Virtual Machine(자바가상머신) 이라는 것이 어떠한 운영체제에서도 프로그램이 수행가능하도록 각각의 운영체제에 맞는 작업기준을 조성해준다.

3. 객체지향 프로그래밍
서로 다른 일을 부여받은 하나이상의 “객체”중에서 요청된 일을 처리하기 위해 실천가능한 “객체”를 호출하여 처리하게 하는 것을 말한다.
그리고 이 객체들을 다른 곳에서도 사용할 수 있도록 하는 것(재사용성), 기능을 좀 더 추가하여 “객체”를 확장하는 것을 “객체지향”이라 하며, 프로그래밍에 적용한 것을 객체지향 프로그래밍이라고 부른다.

4.가비지 컬렉션
메모리 영역 중 더이상 사용될 수 없거나 참조되지 않는 영역을 모아 프로그램이 다시 사용할 수 있게 해준다.
즉, 프로그래머 대신 언어 차원에서 메모리에 생성된 무엇인가를 자동으로 소멸시켜주는 것!!

5. 멀티스레드
Thread란 프로그램의 수행단위이다.
즉, Multi Thread는 말 그대로 한 프로그램을 수행하는 단위가 한 개가 아닌 여러 개 있다는 뜻!!