티스토리 뷰

Programming Language/Java

1. Java란?

K_sanghoon 2018. 6. 27. 00:39

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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함