ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java 자바] 1. 자바의 기본 개념 (Java SE, JDK, JRE, JVM)
    Programming/Java 2022. 7. 26. 20:35
    반응형

    1-1. 프로그래밍 언어란?

    : 사람의 언어와 컴퓨터가 이해할 수 있는 기계어의 다리 역할을 하는 언어

    1-2. 자바란?

    : 대표적인 프로그래밍 언어로, 자바 언어로 작성된 소스를 컴파일러를 통해 기계어로 변환하여 컴퓨터에 실행할 수 있음

    1-2-1. 자바의 특징

    1) 높은 이식성

    - 서로 다른 환경을 가진 시스템간 프로그램을 옮겨 실행할 수 있는 것을 의미
    - MS윈도우에서 실행하는 프로그램을 리눅스 또는 유닉스에서 실행할 수 있음(JRE가 설치되어 있는 모든 운영체제에서 가능)

    2) 객체 지향 언어

    - 객체 지향 프로그래밍(OOP: Object Oriented Programming)
     : 프로그램을 개발하는 과정에서 부품에 해당하는 객체들을 먼저 만들고, 이것을 조립하여 전체 프로그램을 완성하는 기법
    - 자바는 100% 객체 지향 프로그램으로, 객체와 객체를 연결하여 목적에 맞는 프로그램을 만들어냄
    - 따라서, 객체 지향 언어가 가져야 할 ⓵ 캡슐화 ⓶ 상속 ⓷ 다형성 ⓸ 추상화 기능을 모두 지원

    3) 함수적 스타일 코딩 지원

    - 람다식을 통해 컬렉션의 요소를 필터링, 매핑, 집계 처리하고 간결한 코드 사용 가능

    4) 메모리 자동 관리 지원

    - 객체 생성시 자동적으로 메모리 영역을 찾아 할당, 사용이 완료되면 Garbage Collector를 통해 사용하지 않는 객체 제거

    5) 다양한 애플리케이션 개발 가능

    - 다양한 운영체제에서 사용할 수 있는 개발도구와 API를 지원하고 있어 다양한 운영체제에서 실행되는 프로그램 개발 가능

    6) 멀티 스레드(Multi-Thread) 구현 가능

    - 프로그램이 동시에 여러 가지 작업을 처리해야 할 경우, 멀티 스레드 프로그래밍 필요
    - 스레드 생성 및 제어와 관련된 라이브러리 API 제공하고 있으므로 운영체제에 상관 없이 멀티 스레드 구현 가능

    7) 동적 로딩 지원

    - 애플리케이션이 실행될 때 모든 객체가 생성되는 것이 아닌, 필요한 시점에 클래스를 동적 로딩해 객체 생성
    - 개발 완료 후 수정 과정에서도 해당 클래스만 수정하면 되기 때문에 전체 파일을 다시 컴파일할 필요 없음

    1-2-2. 자바 가상 기계(JVM)

    - 자바는 중간 단계의 바이트 코드로, 이것을 해석하고 실행할 수 있는 JVM(자바 가상 환경)이 필요
    - 바이트코드는 모든 JVM에서 동일한 실행 결과 보장, JVM은 운영체제에 종속적

    자바 프로그램의 실행 단계

    1-2-3. 자바의 구성

    용어 설명
    Java SE
    (Java Platform, Standard Edition)
    자바라는 언어가 어떤 문법적인 구성을 가졌는지 정의
    소프트웨어의 설계도(spec, specification)
    JDK
    (Java Development Kit)
    Java SE의 표준안에 따라 만들어진 구체적인 소프트웨어 개발자를 위한 자바 버전으로,
    Java 코드를 컴파일하는 컴파일러와 개발에 필요한 각종 도구 포함
    JRE
    (Java Runtime Environment)
    자바가 실제로 동작하는데 필요한 JVM, 라이브러리, 각종 파일 포함
    자바로 만들어진 프로그램을 구동하기 위해 설치 필요
    JVM
    (Java Virtual Machine)
    자바가 실제로 구동하는 가상 환경
    하드웨어나 운영체제에 따라 달라질 수 있는 호환성의 문제를 해결해 줌

    1-2-4. 주석과 실행문

    int x = 1; // 가 시작한 시점부터 이 줄의 끝까지 주석 처리
    
    /* 이 표시가 있는 부분부터
    아래 끝나는 표시를 할 때까지
    전체 주석 처리
    */
    반응형

    댓글

Designed by Tistory.