티스토리 뷰
1] JAVA란?
1.1) 자바 소개
: 제임스 고슬링(James Gosling)이 다른 연구원들과 함께 고안한 Oak라는 언어에서부터 시작(1991년)
: 메모리와 CPU를 지나치게 많이 사용 - 윈도우 프로그래밍 언어로는 부적합하다는 평가(초기)
: 인터넷 활성화 -> 웹 애플리케이션 구축용 언어로 급부상
:: 이유 - 다양한 서버운영체제에서 한번의 작성을 통해 모든 곳에서 실행"Write Once, Run Anywhere"(한번 쓰고 어느 곳에서도 실행)
1.2) 자바의 특징
: 이식성이 높은 언어
:: 이석성이랑? "서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행가능함을 말함"
:: JRE(Java Runtime Environment)이 설치되어 있는 환경에서 모두 실행가능하다.
- 항상, 자바를 이용하기 위해 설치하던 것을 기억할 것이다.
: 객체 지향 언어
:: 자바는 100% 객체지향언어이다.
:: 객체지향언어는 객체지향 프로그래밍에서 사용되는 언어이다.
- 객체지향프로그래밍이란?
= 각, Object를 만들고 그 Object의 관계를 연결하여 만드는 프로그램
: 함수적 스타일 코딩
:: 객체지향프로그래밍이 소프트웨어 개발의 주요 패러다임이었던 시기에 디자인 됨.
:: 최근 함수적 스타일 코딩 부각 -> 함수적 프로그래밍을 위한 람다식이 자바 8부터 지원
- 자바 8의 특징
: 메모리를 자동으로 관리
:: 자바는 개발자가 메모리에 직접 접근 불가 -> 즉, 메모리를 자바에서 관리하게 된다(C++과의 차이)
- 알아서 할당 / 알아서 해제
: 다양한 어플리케이션 개발
:: 다양한 환경에서 실행이 가능 -> 즉, 다양한 어플리케이션 개발
:: 다양한 환경에서 개발이 가능하도록 개발도구와 API를 묶어 에디션 형태로 정의
Java SE(Standard Edition) - 기본 에디션
->Java SE는 자바 프로그램들이 공통적으로 사용하는 자바 가상기계를 비롯해서 자바 프로그램 개발에 필수적인 도구와 API정의
->클라이언트와 서버 프로그램에 상관없이 자바 프로그램을 개발하고 실행하기 위해서는 반드시 JDK를 설치해야한다.
Java EE(Enterprise Edition) - 서버용 애플리케이션 개발 에디션
->분산환경에서 서버용 애플리케이션을 개발하기 위한 도구 및 라이브러리 API를 정의
: 멀티 스레드를 쉽게 구현가능
:: 멀티 스레드 - 하나의 프로그램이 동시에 여러가지 작업을 처리해야 할 경우와 대용량 작업을 빨리 처리하기 위해 서브 작업으로 분리해서 병렬 처리하기 위해 멀티 스레드 프로그래밍이 필요
:: 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하고 있어 쉽게 구현
: 동적 로딩(Dynamic Loading)을 지원
:: 자바 애플리케이션은 여러 개의 객체가 서로 연결되어 실행되는데, 자바에서 객체는 클래스를 통해 생성된다.
:: 실행시 모든 객체를 생성하는 것이 아닌 필요시에 생성한다.
:: 유지 보수를 쉽고 빠른게 진행 가능.
: 막강한 오픈소스 라이브러리가 풍부
:: 자바 = 오픈소스 -> 자바를 사용한 라이브러리가 넘쳐난다.
:: 즉, 시간을 절약할 수 있다.
1.3) 자바 가상기계
: 자바는 완전한 기계어가 아닌 중간단계의 바이트 코드 -> 실행가능한 가상의 운영체제가 필요 -> JVM
:: 바이트 코드는 모든 JVM에서 동일한 결과 보장 -> JVM은 운영체제에 종속적 : 알맞게 설치
: JVM은 JDK 혹은 JRE를 설치하면 자동 설치된다.(설치는 잘 검색해서 설치한다)
: 이정도면 대충 자바에 대해서 정리한거 같다.
참고) 이것이 자바다
'Programming Language > Java' 카테고리의 다른 글
3. 데이터 타입 (0) | 2018.06.29 |
---|---|
2. 자바의 변수 (0) | 2018.06.27 |