[Java] Program은 어떻게 작동하는가?

immanuelk1m·2023년 5월 23일
0

Java

목록 보기
1/9
post-thumbnail

Program이란??

컴퓨터가 따라야할 지시사항의 연속으로, Program은 컴퓨터 OS에 의해 실행 된다.

Primitive programming languages (원시 프로그래밍 언어)

  • Machine language primitive
    컴퓨터에서 직접 실행되는 0과 1로 이루어진 이진 코드
  • Assembly language
    기계어를 보다 인간이 이해하기 쉬운 형태로 표현한 언어

High-level Programming languages

우리가 쓰는 언어로 컴퓨터가 동작을 할 수 있게 묘사한 언어
interpreter나 compiler를 사용해 기계어로 변환해야함

Compiler

소스 코드를 기계어로 변환하는 도구로 소스 코드 전체를 한 번에 읽어서 번역한 뒤 실행 파일을 만든다.
따라서 번역 시간이 오래 걸리는 단점이 있지만 실행 시간이 빠르다.

Interpreter

소스 코드를 기계어로 변환하는 점에서는 같지만 소스 코드 한 줄씩 읽어 필요한 부분은 바로 실행하기에 시간은 상대적으로 느리다.

Creating and Running Java Programs

Java Virtual Machine은 사람의 언어로 작성된 Java File을 Program으로 작동하게 하는 가상 머신이다. 자바 프로그램(Bytecode)을 실행하는 가상의 컴퓨터라고도 한다.

소스파일에서 프로그램 실행까지의 과정은 사람이 알아듣게 작성한 소스코드(.java)를 Java Compiler가 Bytecode로 바꾸고, 바뀐 Bytecode를 JVM이 기계어로 변환해 컴퓨터가 해당 프로그램을 실행하게 한다.

JVM은 java file 컴파일 한 번이면 어느 OS에서든 실행이 가능하지만, Performance overhead가 발생한다는 장점도 가지고 있다.

자바 프로그래밍 특징 정리

Object Oriendted : 객체지향

Architecture Neutral, Protable, Robust :

아키텍처 중립적이라는 것은 컴파일러가 OS과 독립적인 바이너리 코드(중간 언어) 형식을 생성해 JVM에서 실행되어 여러 플랫폼에서 실행가능함을 의미한다.

Robust라는 것은 Java가 안정적이고 오류가 적은 언어로, 컴파일 시점에서 오류를 잡을 수 있는 정적 검사기능 / 실행 시점에서 예외 처리기능 / 가비지 컬렉션으로 메모리 자동 관리를 해 견고한 언어이다.

Interpreted and Dynamic :

자바 소스코드는 먼저 자바 컴파일러를 사용하여 바이너리 바이트 코드(.class)로 컴파일된 다음 이 바이트 코드가 소프트웨어 기반 인터프리터인 JVM에서 실행된다.

따라서 자바는 컴파일과 인터프리터 둘 다 사용하는 것으로 간주된다.

Security : Java는 보안성 있는 프로그램을 만들 수 있도록 다양한 보안 기능을 제공한다.

Multithreading : 하나의 Java 프로그램에서 동시에 여러 개의 스레드(Thread)를 실행할 수 있다는 것을 의미한다.

스레드(Thread)는 프로그램의 실행 단위로, 하나의 프로그램이 동시에 여러 개의 스레드를 실행할 수 있습니다.

예를 들어, 하나의 스레드는 파일을 읽어들이는 작업을 수행하고, 다른 스레드는 화면에 출력하는 작업을 수행할 수 있습니다. 이를 통해, 프로그램의 실행 속도를 높이거나, 사용성을 개선할 수 있습니다

High Performance : 컴파일 시간에 바이트 코드로 변환되고, 바이트 코드는 JVM에서 실행됩니다. 이 방식은 컴파일 시간에 언어에 대한 최적화를 수행하고, JVM에서 실행될 때 더 나은 성능을 제공한다. 또한, JIT(Just-In-Time) 컴파일러를 사용하여 바이트 코드를 더 빠르게 실행할 수 있도록 최적화합니다.

Base system and Libraries : Java 프로그램을 개발할 때 필요한 기본 시스템과 라이브러리가 Java 플랫폼에 이미 구축되어 있다는 것을 의미한다.

profile
개발 새발

0개의 댓글