[Java강의노트] 1. Java 소개
Java의 세계에 첫 발걸음을 해주신 여러분을 환영합니다!
Java는 1991년 경 Sun Microsystems(썬 마이크로시스템즈)의 연구원인 James Gosling(제임스 고슬링)의 주도하에 Oak(오크)라는 이름의 가전제품을 제어하기 위한 목적의 언어로 탄생되었습니다. 하지만 WWW(월드와이드웹)이라는 새로운 패러다임의 탄생으로 Java는 웹사이트를 개발하기 위한 주 언어로써 자리를 잡았고 오늘날 가장 거대한 시스템을 안정적으로 지원하는 기술로 자리매김을 하게 되었습니다.
Java는 다음과 같은 특징을 갖습니다.
플랫폼 독립성
Java는 윈도우와 리눅스, 유닉스 등 다양한 운영체제에 이식되어 "Write Once, Use Anywhere(한 번 작성하면 어디서든지 사용할 수 있다.)"를 실현하고 있습니다.
객체지향 언어
프로그램을 안전하고 체계적으로 개발하기 위해 구조적 프로그래밍 언어의 개념이 나왔다면 거대한 규모의 프로그래밍을 안정적으로 지원하기 위한 목적으로 객체지향 언어라는 개념이 개발되었습니다. 객체지향 언어는 객체를 기반으로 작성되는 프로그래밍 언어로써 실세계에 가까운 개념의 프로그래밍 작성을 가능하게 해줍니다. 구조적 프로그래밍이 코드의 재사용을 편리하게 해준다면 객체지향 프로그래밍은 객체의 재사용을 통해 좀 더 강력하고 유연한 재사용과 다양한 특성을 제공합니다.
가비지 컬렉션
같은 객체지향 언어인 C++의 경우 메모리의 할당과 해제에 대한 관리는 전적으로 프로그래머에게 맡겨집니다. 따라서 프로그래머의 실수나 버그로 인해 메모리의 해제가 정상적으로 이뤄지지 않아 메모리 소모가 발생하게 됩니다. Java의 경우 메모리의 해제를 가상머신이 자동으로 해주기 때문에 더이상 프로그래머는 메모리 해제를 신경쓰지 않아도 됩니다.
멀티쓰레드
Java는 멀티쓰레드 개념을 도입하여 태스크보다 더 작은 실행 단위들을 동시에 실행시킬 수 있으므로 네트워크 서비스에 좀 더 최적화된 서버용 프로그램을 작성할 수 있도록 지원합니다.
이밖에서 Java는 다양한 기능들을 제공하여 다양한 작업을 손쉽게 할 수 있도록 프로그래머에게 강력한 코딩 능력을 지원합니다.