본문 바로가기
IT Study/따즈아 Java & Java 기초

따즈아 Java 멘토 시리즈 1강 - Java의 시작

by hhyyyjun 2022. 12. 25.

Java란?

미국의 Sun Microsystems사에서 개발한 객체지향 프로그래밍 언어

프로그램이란?

실행하고자 하는 여러 명령들을 나열시켜 하나로 묶어놓은 집합을 의미한다.

프로그래밍이란?

프로그램을 만들고 컴퓨터에 명령 후 컴퓨터가 실행하는 과정을 의미한다.

프로그래밍 언어란?

사람이 컴퓨터에게 명령을 내릴 때 사용하는 언어를 의미한다.

- 프로그래밍 언어는 사람 친화적 언어이기 때문에 기계인 컴퓨터가 이해할 수 없다. 따라서 기계어(이진수)로 바꿔주는 과정인 컴파일을 통하여 프로그래밍 언어로 변환이 필요하다.

기계어 - 0과 1로 이루어진 이진수 언어

전류가 통함 = 1

전류가 통하지 않음 = 0

일반 프로그램과 Java 프로그램의 실행과정 비교

일반 프로그래밍 실행과정(ex. c언어) Java 프로그램 실행 과정

1. 코드 작성 - .c 파일 생성 1. 코드작성 - .java 파일 생성

코드 작성(컴퓨터가 이해할 수 없는 언어) 2. JVM(Java Virtual Machine)

2. 컴파일 - .obj 파일 생성 1. 컴파일 - .class 파일 생성

작성된 코드를 기계어로 변환 JVM으로 인해 .exe생성 없이 실행 가능

3. 링크 - .exe 파일 생성 2. 링크

라이브러리*에서 필요한 기능을 가져올 때 연결하는 과정 3. 디버깅

4. 디버깅* 4. 실행

5. 실행

*라이브러리

많이 사용되는 기능을 미리 만들어 필요한 기능들을 저장해둔 공간을 의미한다.

*디버깅(debug+ing)

프로그래밍의 오류를 잡는 것

일반 프로그램과 Java 프로그램의 실행구조 비교

JVM(Java Virtual Machine)이란?

Java 언어코드를 실행할 수 있는 주체이며 Java 프로그램과 OS 사이의 중개자 역할을 한다.

JVM을 통해 OS에 종속되지 않고 사용하게 도와준다.

OS(Operating System) - 운영체제(ex. Window, Linux)

*운영체제에 따라 실행가능한 파일이 다르다

JVM 구성

1. ClassLoader

모든 클래스(코드)는 참조 순간에 동적으로 JVM에 연결되며 메모리에 로딩(.class 코드를 JVM에 연결하여 기억장치에 로딩함)

2. Execution Engine

JVM은 Method Area의 Byte Code를 Execution Engine에 제공하여 Class에 정의된 내용대로 실행(코드를 실행)

3. Runtime Data Areas

프로그램을 수행하기 위한 OS에서 할당받은 메모리 공간(JVM에서 사용하는 메모리 공간)

Runtime Data Areas 구성

1. Class 영역

- 사용하는 클래스 파일의 바이트 코드가 로드되는 곳으로 static 변수, 전역변수 등의 정보가 저장되며, JVM이 종료될 때까지 유지 (.class 파일이 기억될 수 있는 공간, 프로그램 실행~종료까지 유지되는 메모리 영역)

2. Stack 영역

- 지역변수, 매개변수 등 함수의 호출부터 종료까지 유지(각 프로그램의 기능이 실행되고 종료될 때까지만 존재하는 메모리 영역)

3. Heap 영역

- 참조형 변수(주소저장)들이 저장되는 영역(new)(프로그램이 실행 도중 메모리가 필요할 때 할당받는 영역)

Java의 특징

1. 객체지향언어이다.

2. 배우기 쉬움.

3. 어느 운영체제(OS)에 상관없이 실행가능

4. 메모리 관리를 개발자가 하지 않는다.

5. 동적이며 스레드를 지원한다.

6. 네트워크 프로그래밍과 분산처리를 지원한다

 
 

댓글