JAVA

[JAVA] JAVA 실행과정 이해하기 / 자바코드의 구조

sian han 2022. 2. 7. 21:46

※자바 실행과정 3단계

1. 요청 ( Coding 코딩 )

2. 통역 ( Compiling 컴파일링 )

3. 결과실행 ( Interpreting 인터프리팅 )

 

 - 소스코드를 입력하고 javac 컴파일러로 컴파일 한 다음, 컴파일된 바이트코드

   자바 가상머신에서 실행시킨다

 

 

* 자바 가상머신 : (=Java Virtual Machine) 바이트코드를 해당 플랫폼에서 이해할 수 있는 형태로 해석하여 프로그램을 실행시켜줌. 바이트코드를 실행시키는 도구

 

   - 자바 가상머신메모리모델 :  자바 가상머신은 운영체제로부터 할당 받은 메모리 공간의 효율적인 사용을 위해 납장처럼 메모리 공간을 나눠서 데이터의 특성에 따라 분류해서 저장한다.
      자바 가상머신은 메모리 공간을 크게 세 개의 영역으로 나누어 관리한다.

 

          1 ) 메서드 영역 - 메서드 영역 - 메서드의 바이트 코드, static 변수를 저장한다.

          2 ) 호출 스택 영역 - 지역변수, 매개변수를 저장한다.

            메서드의 작업에 필요한 메모리 공간을 제공한다.
            메서드가 호출되면, 호출스택에 호출된 메서드를 위한 메모리가 할당되며, 
            이 메모리는 메서드가 작업을 수행하는 동안 지역변수(매개변수 포함)들과 
            연산의 중간 결과 등을 저장하는 데 사용된다.
            메서드가 작업을 마치면 할당되었던 메모리 공간은 반환되어 비워진다.

           3 ) 힙 영역 - 인스턴스가 생성되는 공간이다

 

 

* 바이트코드 :  반기계어

                    플랫폼에 무관하게 사용할 수 있다

                    자바가상머신을 통해 실행할 수 있다

* JAVA 소스코드 :

public class Hello
{
	public static void main(String[] args)
	{
		System.out.println("Hello JAVA!!!");
	}
}

 

 

자바실행과정을 CMD 창으로 나타내었을때

왼 - 자바소스코드

오 - cmd 창

(cmd 창 첫째줄부터 해석)

1. cmd 창에서 src\day1 폴더로 이동해라

2. javac(ompile) 컴파일해라

3. 자바런처가 자바가상머신을 구동시키고, 그 위에 자바 프로그램을 실행해라

 

    = 자바의 소스코드가 javac.exe (=자바컴파일러) 에 의해서 컴파일되고, 컴파일된 파일이

        java.exe 에 의해서 가상머신을 기반으로 실행됨

 

 

- 소스코드 ----------> 바이트코드 -------------------------------------------> 실행

                     컴파일                                java.exe 실행 -> JVM 구동               

 

 

*자바런처 (java.exe) : 자바가상머신을 구동시시키고, 그 위에 자바프로그램이 실행되도록 돕는 프로그램

 

 

 

 

 

※ 자바코드의 구조

package : 비슷한 클래스들끼리 묶어서 관리

import : 지정한 패키지 내의 모든 클래스를 현재 파일에서 사용할 수 있도록 하겠다는 뜻

class : 여러개의 클래스를 하나의 파일에서 사용할 수 있다

 

 - 최소 class 1개 , main메서드 1개 충족해야함

 - 클래스명과 파일명은 동일해야 함

 - public 이라는 예약어를 사용할 수 있는 클래스는 하나뿐이다

 - public 이 붙은 클래스는 파일명과 동일해야 함

 - main() 메서드는 파일명과 동일한 클래스 내에 있어야 함

import java.lang.*;
public class Hello2{
	public static void main(String[] args){
		System.out.println("Hello Java!!");
		System.out.println("Hello Jsp!!");
	}	
}
class Test
{
	public void write()
	{
		System.out.println("Test Class!!");
	}
}

> 위의 경우 파일명은 Hello2.java 가 되어야 함

 

 

▶명칭의 규칙

 클래스, 메서드, 필드 : 첫글자는 $, _, 영문자

 공백문자는 포함할 수 없음

 특수문자는 사용할 수 없음

 숫자는 첫 글자가 아닐 경우 사용 가능

 예약어는 사용할 수 없음 ( =for, if ) 

 

▷권장사항

 클래스 : 첫글자는 $,  _ , 대문자

 메소드(함수) : 첫글자는 $,  _ , 소문자

 Field(변수) : 소문자

 합성어의 첫글자는 대문자 (=HelloJava)

 

 

 

오늘배운1개의 자바함수

System.out.println(" ");

: 출력함수

   - 출력 후 행을 바꿔줌

   - System.out.println() 과 같이 컴퓨터에게 일을 시키는 문장을 '명령문' 이라 한다.

     명령문의 끝에는 반드시 세미콜론(;)을 붙여서 명령문의 끝을 표시하자 ~~~ 나 자꾸 까먹는거 !!!!!!