1.1.1 역사
1991년 썬 마이크로시스템즈에서 Green Project 시작
1993년 썬 마이크로시스템즈에서 Green Project 폐기 및 Oak Project 시작
1995년 썬 마이크로시스템즈에서 James Gosling 개발한 객체 지향 프로그래밍 언어
1995년 ~1999년 윈도우 프로그램 개발이 주류였기 때문에 C++ 우세
JAVA는 메모리 및 CPU를 지나치게 많이 사용해 부적합
1999년 인터넷 활성화로 인해 웹 애플리케이션 구축용 언어로 떠올라
JAVA는 기업체 및 공공기관의 다양한 서버 운영체제에서 단 한번의 작성으로 모든 곳에서 실행 가능
2010년 오라클이 썬 마이크로시스템즈를 인수하며 Java의 저작권 소유
1.1.2 특징
A. 이식성 높다
♣ 이식성 : 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행
- JAVA 언어로 개발된 프로그램은 소스 파일을 다시 수정하지 않아도 자바실행환경 (JRE Java Runtime Environment)이 설치되어 있는 모든 운영체제에서 실행 가능
JAVA = 이식성 높은 언어
B. 객체 지향 언어
♣ 객체 지향 프로그래밍 =OOP ( Object Oriented Programming)
-> 프로그램을 개발하는 기법 중 하나로 부품에 해당하는 객체들을 먼저 만들고
이것들을 하나씩 조립 및 연결해서 전체 프로그램 완성
- JAVA는 100% 객체 지향 언어라서 객체를 만들기 위해 설계도인 클래스 작성
객체와 객체를 연결해 목적에 맞는 프로그램을 만들어 사용
- 객체 지향 언어가 가져야 할 캡슐화, 속성, 다형성 기능 지원
C. 함수적 스타일 코딩 지원
- 대용량 데이터의 병렬처리와 이벤트 지향 프로그래밍에 적합
- JAVA는 함수적 프로그래밍을 위해 람다식을 JAVA8 부터 지원
♣ 람다식 : 컬렉션의 요소를 필터링 맵핑, 집계 처리하는데 쉬워지고 코드가 간결
D. 메모리를 자동으로 관리
- JAVA는 개발자가 직접 메모리에 접근할 수 없도록 설계
- 사용이 완료되면 쓰레기 수집기 실행해 자동으로 사용하지 않는 객체 제거
E. 다양한 어플리케이션 개발
- JAVA는 윈도우 리눅스 등 다양한 운영체제에서 실행되는 프로그램 개발
- 단순한 콘솔 프로그램에서부터 클라이언트용 윈도우 애플리케이션,
서버용 웹 애플리케이션, 모바일용 안드로이드 앱에 이르기까지 거의
모든 곳에서 실행되는 프로그램 개발 가능