본문 바로가기
컴퓨터/Java

[Java 공부] 프로그래밍 언어와 Java 의 특징

by 버니케이 2022. 4. 3.
반응형

 

 

1. 프로그래밍 언어

👀 프로그램: 컴퓨터에서 특정 목적을 수행하기 위해 프로그래밍 언어로 작성된 소스를 기계어로 번역한 것

 


👀 프로그래밍 언어: 사람과 컴퓨터가 대화하기 위한 언어. 고급 언어와 저급 언어로 나뉜다.

 

 

👀 고급언어
뜻: 컴퓨터 언어 중 사람이 쉽게 이해할 수 있는 언어
종류: C, C++, Java....
특징:
- 컴퓨터가 바로 이해할 수 없기 때문에 Compile 과정을 통해 컴퓨터가 이해할 수 있는 기계어로 변역해야 한다.
- 작성된 코드(소스) 는 Compiler 라는 소프트웨어에 의해 기계어로 변환된 후 컴퓨터에서 실행할 수 있다.

 

 

👀 저급언어
뜻: 컴퓨터 언어 중 컴퓨터가 쉽게 이해할 수 있는 언어
종류: 어셈블리어
특징:
- 사람이 바로 이해하기 쉽지 않기 때문에 학습이 까다롭다.

 

 

2. Java의 특징

👀 이식성이 높은 언어

    이식성: 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것

    Java 언어로 개발된 프로그램은 JRE가 설치되어 있는 모든 운영체제에서 실행 가능

    다른 언어는 리눅스에서 실행하려면 프로그램 소스 파일을 수정한 후, 재컴파일을 해야 실행 가능

 

 

👀 객체 지향 언어

    부품에 해당하는 객체들을 먼저 만들고, 하나씩 조립해서 전체 프로그램을 완성하는 기법
    객체 지향 언어가 가져야 할 특징을 갖고있음 (캡슐화, 상속, 다형성)

 

 

👀 함수적 스타일 코딩 지원
    함수적 프로그래밍을 위한 람다식을 지원
    람다식 사용 시 컬랙션의 요소를 필터링, 매핑, 집계처리 등을 할 수 있음
    람다식 사용 시 코드가 간결해짐

 

 

👀 메모리 자동 관리
    Java에서는 자동으로 메모리를 관리하는 기능이 있음(메모리는 Java가 직접 관리)
    객체 생성 시 자동으로 메모리 영역을 찾아서 할당함
    사용이 완료되면 Garbage Collector 를 실행시켜 사용하지 않는 객체를 제거

 

 

👀 다양한 어플리케이션 개발 가능
    다양한 운영체제에서 실행되는 프로그램 개발 가능

 

 

👀 멀티 스레드 쉽게 구현 가능
    Java 는 스레드 생성 및 제어와 관련된 라이브러리 API 를 제공
    멀티 스레드 프로그래밍이 필요한 경우    

  • 하나의 프로그램이 동시에 여러 가지 작업을 처리해야 할 경우
  • 대용량 작업의 빠른 처리를 위해 서브 작업으로 분리해서 병렬 처리 하는 경우

 

👀 동적 로딩 지원
    Java 는 객체가 필요한 시점클래스를 동적 로딩해서 객체를 생성함
    Java 의 객체는 클래스로부터 생성됨
    코드 유지보수 시, 해당 클래스만 수정하면 되기 때문에 애플리케이션을 다시 컴파일할 필요가 없음

 

 

👀 다양한 오픈소스 라이브러리

 

 

 

3. Java Virtual Machine (JVM)

운영체제는 Java 프로그램을 바로 실행할 수 없음
Java 프로그램은 중간 단계의 바이트 코드이기 때문(*.class)

 

 

👀 JVM (Java Virtual Machine):
자바를 실행시키는 가상의 기계
실제 운영체제를 대신해서 자바 프로그램을 실행시키는 가상의 운영체제 역할을 함

 

 

👀 JVM 특징:
운영체제에 종속적(운영체제에 맞게 설치해야 함)
완전한 기계어보다는 속도가 느림(C, C++)
JIT 컴파일러를 통해 빨라지고 있긴 함
Just It Time
JVM 내부에 최적화되어있음

 

 

👀 Java SE (Standard Edition)
Java 프로그램 개발에 필요한 도구와 라이브러리 API 를 정의함

 

 

👀 Java EE (Enterprise Edition)
분산 환경(네트워크, 인터넷)에서 서버용 애플리케이션 개발에 필요한 도구와 라이브러리 API 를 정의함
서버용 어플리케이션: Servlet/JSP 를 위한 웹 어플리케이션, XML 웹 서비스 등등..

 

 

 

4. Java 프로그램 개발 순서

  1. .java 파일을 생성하고 프로그램 소스(Java 소스 파일)를 작성함
  2. 작성한 소스를 컴파일하여 .class 파일을 생성함
  3. 컴파일이 되면 .class 파일(바이트 코드 파일)이 생성됨
  4. .class 파일을 실행하기 위해 JVM()을 실행함
    이때 JVM 을 구동시키는 명령어는 java.exe 임
  5. java.exe 명령어가 실행되면 JVM 은 .class 파일을 메모리로 로드하고 기계어로 번역함
  6. main() 메서드가 실행됨

 

 

출처: [책] 이것이 자바다

반응형

댓글