Loading...

JAVA / / 2022. 1. 7. 12:06

자바 5강. 자바 실행 규칙

반응형

메모리에 대해 잘 이해하면 문법을 이해하기 쉬워진다.

src가 아닌 ex01 폴더에 JavaMain.java파일을 만들어준다.

패키지는 폴더 이름을 말한다.
자바 소스파일들이 모여있는 폴더를 패키지라고 한다. (규칙 1)
class뒤에 class 이름이 파일 이름과 똑같이 만들어진 것도 볼 수 있다. (규칙 2)
public class는 아직 몰라도 된다.

이 상태 그대로 shift + F9를 눌러 실행해보면 오류가 날 것이다.

자바는 main이 없으면 실행할 수 없다.(규칙 3)

class안에 main이라고만 치면 코드가 자동 완성될 것이다.
그리고 shift + F9 해보면 실행되는 것을 확인할 수 있다.

package ex01; 

public class JavaMain { 
	public static void main(String[] args) {
    
    } 
}


자바는 main만 실행하고 끝내버린다.
이 main의 중괄호 내부가 stack 영역이다.
stack은 행위가 일어나고 끝날 때까지의 영역을 말한다.

syso만 치고 입력하면
System.out.println();이 자동 완성된다.

괄호 안에 따옴표 안에 글자를 입력해준다.

package ex01;

public class JavaMain { 
	public static void main(String[] args) {
    	System.out.println("메인 시작"); 
        System.out.println("메인 끝 - 자바 종료"); 
    } 
}

JVM이 시작 시 main을 찾아 실행시켜준 것을 볼 수 있다. (규칙 4)

main을 main2라고 바꾼 뒤 실행시켜보면 오류가 발생할 것이다.


프로그램 시작 전부터 메모리에 떠서 끝날 때까지 떠있는 것을 static이라고 했다.
static을 지우고 실행시키면 오류가 발생할 것이다.

main이 아닌 static을 입력 안 해도 오류 발생,
main을 입력 안 하면 오류 발생,
main의 이름이 바뀌어도 오류가 발생한다.

자바가 실행하지 않는다면 이 3가지 이유를 찾아보자.

.java 파일이 생성되면 javac.exe가 컴파일하여 .class 파일을 만들 것이다.
이 .class파일을 JVM이 로드(load; 파일을 메모리로 올리는 것)하여 한 줄씩 번역을 한다.

내가 16GB의 램을 가지고 있을 때
기본적으로 OS가 부팅을 하면서 메모리의 약 절반 정도를 잡는다.
부팅: OS를 메모리로 띄우는 과정
그리고 프로그램을 실행하려면 메모리에 올라가야 하는데,
이 과정을 프로세스화라고 하고, 메모리에 올라와있는 프로그램을 프로세스라고 한다.

프로세스를 제외한 메모리 영역에서
JVM은 3가지 논리적 구역을 생성해 메모리를 구성한다.

그리고 JVM이 static을 찾아 메모리에 load 한다.
이때 내용을 띄우는 게 아닌 static 키워드가 붙은 이름만 메모리에 띄운다.
main은 무조건 static 키워드가 붙어야 JVM이 찾을 수 있다. (규칙 5)

그다음 JVM이 main을 찾아 실행시키면
main의 stack이 열리는데 우리가 만든 코드에서는
모니터에 output(출력)만 했을 뿐 stack에 저장된 건 없지만 stack이 열리긴 했다.
main이 실행되면 main stack이 열린다. (규칙 6)
행위 시 데이터가 저장된 영역으로,
순간 저장되었다가 순간 삭제되는 단기 기억을 stack에 저장한다.

이후 main 내부가 실행된다.

stack이 열린 뒤 main 내부가 한 줄씩 실행되고, 이것을 절차적으로 실행된다고 한다.
main의 내부 코드가 순차적으로 실행된 뒤 자바가 종료된다. (규칙 7)

자바 생명주기는 main의 생명주기와 같다고 볼 수 있다.


주석 : 컴파일러가 컴파일할 때 무시하는 부분

자바에서 주석처리 하는 방법은 두 가지가 있다.
// : 한줄 주석처리하는 방법
한 줄을 드래그 해서 ctrl + 슬래시(/) 해줘도 된다.
여러 줄을 주석처리해줄 땐 드래그해서 Ctrl + 슬래시 해줄 수 있다.

영역을 주석처리 하는 방법도 있다.
/* ~~~ */ : 영역 주석처리하는 방법
영역을 드래그 해서 Ctrl + Alt + /(슬래시) 해줘도 된다.

문장(statement)은 사용자가 컴퓨터에게 작업을 지시하는 단위로,
프로그램을 이루는 가장 기본적인 단위이다.
쉽게 말해 하나의 행을 말한다.
문장의 끝은 항상 ;(세미콜론)으로 끝나야 한다.

자바 규칙
1. 자바 패키지는 자바 소스를 가지고 있는 폴더이다.
2. 자바 파일명은 class 이름과 동일해야 한다.(파스칼 표기법)
3. 자바는 실행하려면 main이 필요하다.
4. JVM은 시작 시에 main을 찾는다.
5. main은 무조건 static 키워드가 붙어야 JVM이 찾을 수 있다.
6. main이 실행되면 main 스택이 열린다.
7. main의 내부 코드가 큐(Queue)에 담겨 순차적으로 실행된 뒤 자바가 종료된다.(다음시간에 자세히!)
8. int, long, double, boolean -> 기본 자료형 (다음시간에 자세히!)
9. statement(문장)의 끝에는 ;(세미콜론) 필요하다.



[출처]

https://cafe.naver.com/metacoding

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com

메타 코딩 유튜브
https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 

반응형