자바의 정석 Chaperter 1
자바란?
운영체제에 독립적인 객체지향 프로그래밍 언어. 실행환경(JRE), 개발도구(JDK), 라이브러리(API)를 제공한다. PC 프로그램, 웹 개발, (안드로이드) 모바일 앱 개발에 쓰임과 동시에 빅데이터, 게임, 소형기기 등에도 쓰인다.
자바의 역사
1991년 Sun Microsystems의 엔지니어들에 의해 고안된 Oak이라는 언어에서부터 시작되었다. 처음에는 가전제품에 탑재될 소프트웨어를 개발하는데에 C++ 을 확장해 만드려고 했지만 그것만으로는 부족하다는 것을 깨닫고 새 언어를 개발한다. 그렇게 개발된 것이 Oak인데, 운영체제에 독립적인 이 언어가 여러 운영체제가 등장하며 웹 개발에도 적합하다는 것을 알고 개발방향을 바꾸면서 자바라는 이름을 가지게 되고 1996년 1월에 자바의 정식버전이 발표되었다.
- 안정성을 고려해 새 버전이 자주 나오지 않던 자바는 Java SE 8 이후 여러 기능 도입을 위해 6개월마다 한번씩 업데이트되어 새 버전이 나오고 있다.
자바의 특징
- 운영체제에 독립적이다.
기존에는 한 운영체제에 알맞게 개발된 프로그램을 다른 운영체제에 적용하는데에 많은 노력이 필요했다.
- 배우기 쉽고 객체지향적이다.
- 자동 메모리 관리
Garbage Collector가 있어 쓰지 않는 메모리는 자동으로 관리해주기 때문에 프로그래머가 메모리관리에 신경 쓸 필요가 없다.
- 멀티스레드 지원
JVM
- Virtual Machine: 하드웨어의 소프트웨어화. eg. 티비/비디오 -> 윈미플, 오디오 -> 윈앰프
가상컴퓨터 또한 컴퓨터 속의 컴퓨터라고 생각하면 된다.
- JVM: All the applications written in java only executes with JVM. 바로 컴파일 되는 게 아니라 해석되는 과정을 거쳐야해서 실행시에 시간이 좀 더 오래 걸린다는 단점이 있지만 요즘은 격차가 많이 줄었다고 한다.
- 자바 앱 - JVM - OS 형식으로 JVM이 중간다리 역할을 해준다.
- 여러 운영체제에 맞는 JVM이 있고 JVM이 자바로 작성된 응용 프로그램으로부터 받은 명령을 각각의 운영체제에 맞게 해석해준다.