자바 프로그램의 개발순서
소스파일->컴파일->실행파일->실행
Java는 다른 언어와 달리 JVM(자바가상머신)으로 프로그램을 실행한다.
프로그램은 컴퓨터를 구성하는 장치(CPU,메모리,입출력 장치,하드 디스크등)을 조작하여 원하는 결과물을 얻도록 작업 순서를 나열해 놓은 명령어들의 집합,컴퓨터를 위한 작업 지시서로서 구체적으로 컴퓨터가 특정한 작업을 하기 위한 명령어들의 리스트.
자바는 명령어를 표현하는 하나의 도구.
개발자는 프로그램 언어를 사용해 명령어를 표현하고 작업 순서에 맞게 나열하여 프로그램 작성.
프로그램 언어는 고급언어와 저급언어로 구분.
사람이 이해하기 쉬운 프로그램 언어를 고급언어, 기계어에 가까운 언어를 저급언어라고 한다.
고급언어로 작성된 소스파일을 기계어로 변환하는 과정(소스파일-> 기계어)을 컴파일(compile)이라 하고 변환 프로그램을 컴파일러라고 한다. 자바가 다른 프로그램 언어와 다른 점은 컴파일 작업을 거쳐 생성된 파일이 기계어 코드가 아닌 바이트 코드(byte code)라는 점이다. 이러한 자바 실행 구조의 가장 큰 장점은 자바 실행 파일이 실행되는 컴퓨터(운영체제)가 달라져도 추가적인 작업을 할 필요가 없다는 것이다. 소스파일에서 컴파일된 실행 파일(바이트 코드)은 어떤 운영체제에서도 실행가능하다.(JVM이 있어 각 운영체제에서 실행한 수 있도록 처리하기 때문이다.) 그래서 자바는 플랫폼에 독립적인 언어(Write One, Run Everywhere)이다.(C는 플랫폼에 종속적)
소스파일 : 프로그래밍 언어로 작성된 파일 (C에서는 확장자가 .c 자바에서는 .java)
실행파일 : 변환된 파일. 컴퓨터에서 바로 실행할 수 있어 실행파일(Execute File)이라고 한다. (C에서는 .exe 자바에서는 .class)
바이트 코드 : 기계어로 변환하기 전 중간단계의 코드. 단, 바이트 코드는 기계어가 아니라서 컴퓨터에서 바로 실행할 수 없다.
컴파일 과정
인간->고급언어->운영체제가 이해할 수 있는 코드->기계어(H/W)
자바는 고급언어에 속하므로 JDK(자바개발환경)을 이용해 변환과정을 거쳐야한다.
JDK는 바이트 코드를 기계어 코드로 변환하는 작업과 자바 프로그램 실행에 관련된 보든 작업을 담당한다.
*JVM(자바가상머신)은 실행을 위해 JDK(자바개발환경(Java SE Development Kit))는 컴파일을 위해 필요.
기계어로 변환하는 방식에서 인터프리터(Interfreter) 방식과 JIT(Just-In-Time) 방식이 있다.
인터프리터 방식은 기계어로 변환하는 작업을 명령문 단위로 처리하고 JIT방식은 소스 파일을 실행 파일로 변환하는 것처럼 파일 전체를 한번에 기계어로 변환한다.(자바는 인터프리터 방식을 사용했다가 현재는 JIT 컴파일러를 사용중이다. )
운영체제는 하드웨어를 제어하고 컴퓨터 자원을 관리하며, 컴퓨터 사용을 편리하게 해주고 응용프로그램들의 수행을 도와주며, 사용자와 하드웨어 사이의 매개체 역할을 하는 소프트웨어.
프로그래밍 언어란
인간이 컴퓨터를 이용하여 수행하고자 하는 일을 컴퓨터에게 전달하기 위한 표기법으로 기계어,어셈블리어,고급언어가 있다.
기계어
-컴퓨터가 이해하는 단 하나의 언어
-기계어는 프로그램이 CPU에 내리는 명령들을 표현
-0과 1의 숫자로 구성
-기계 중심적인 언어
어셈블리어
-기계어에 해당되는 명령을 기호는 이용해서 나타낸 기호 언어
-어셈블리어는 기본적으로 기계어와 일대일 대응
-기계 중심적 언어로 프로그램 시 하드웨어에 대한 지식 필요
고급언어
-인간이 이해하기 쉬운 명령문이나 기호를 사용하여 구성된 프로그래밍 언어
-문제 중심적인 언어
프로그램은 일반적으로 다음과 같은 순서로 개발
소스파일-(컴파일)->실행파일-(실행)->컴퓨터
'Java' 카테고리의 다른 글
Java 생성자 및 클래스 변수, 클래스 메서드 (1) | 2023.05.14 |
---|---|
Java 객체 지향 프로그래밍 (0) | 2023.05.13 |
Java 배열 (0) | 2023.05.13 |
Java 제어문(조건문, 반복문, 보조제어문) (0) | 2023.05.13 |
Java 변수 및 연산자, 수식 (0) | 2023.05.13 |