자바 소스 코드의 실행 과정
자바 소스 코드의 실행 과정은 크게 4가지 단계로 진행된다.
1. 소스 파일(.java) 작성(파일 저장 시 자동 컴파일)
2. 컴파일 수행하면 바이트 코드(.class) 파일 생성
3. 실행 시 JVM이 OS에서 메모리 할당받아 프로그램을 실행
4. main() 메서드 실행 (메서드 영역에 클래스 로딩)
JVM은 메모리를 효율적으로 관리하기 위해 메모리를 크게 메서드 영역, 스택 영역, 힙 영역으로 나눠 사용한다. 메서드 영역은 클래스 영역, 정적 영역, 상수(final) 영역 이라고도 부른다. 메모리 할당 이후 실행 파일인 바이트 코드는 메서드 영역에 로딩되며, 클래스 내에 포함되어 있는 main() 메서드를 실행하는 것이 JVM의 역할이다. main() 메서드가 자바 프로그램의 시작과 끝 지점이다.
소스 코드의 기본 구조
패키지 선언부
패키지를 지정한다면 첫 줄에 반드시 패키지의 선언(package 패키지명;)이 와야 한다. 패키지를 지정하지 않으면(디폴트 패키지 사용) 생략된다.
클래스 선언부
'public class 클래스명 { }'
public은 접근 지정자인데 나중에 알아보도록 하고, 1개의 클래스만 public을 포함할 수 있다는 것만 알면 된다. 하나의 소스 파일에는 여러 개의 클래스가 존재할 수 있다. 단, public class 뒤에 붙는 클래스명은 파일 이름과 동일해야 한다. 중괄호 안에 클래스 내부 구성 요소들이 들어간다. 내부 구성 요소는 4가지(필드, 메서드, 생성자, 이너 클래스)이다.
컴파일을 하게 되면 클래스별로 바이트 코드(.class)가 생성되는데 '클래스명.class' 형식으로 생성된다. 만약 클래스(아우터 클래스) 안에 또 클래스(이너 클래스)를 선언했다면 '아우터클래스$이너클래스.class' 형식으로 생성된다.
main() 메서드
'public static void main(String[] ar) { }'
메서드의 구조는 '리턴타입 메서드명(...) {}'의 형태이다. public은 접근 지정자, static은 정적 메서드를 나타는 키워드이다. 즉, 'public static한 메서드'라고 보면 된다. 바이트 코드(.class)가 메서드 영역에 로딩되면 JVM은 main() 메서드부터 찾는다. 자바 프로그램에서 가장 먼저 실행되는 메서드가 main() 메서드이다. (참고로, 대소문자 구분해서 정확히 써야한다.)
주석
한 줄 주석 : // 주석 내용
여러 줄 주석 : /* 주석 내용 */
콘솔 출력 메서드와 문자열 출력
줄 바꾸면서 출력하기 - System.out.println();
ex) System.out.println("화면" + "출력"); // 출력 결과 : 화면출력 (줄 바꿈 됨)
1줄로 출력하기 - System.out.print();
ex) System.out.print("화면" + 3); // 출력 결과 : 화면3 (줄 바꿈 안 됨)
형식대로 출력하기 - System.out.printf();
ex) System.out.printf("%d", 30); // 출력 결과 : 30 (줄 바꿈 안 됨)
연산엔 다음 규칙이 적용된다.
문자열 + 문자열 = 문자열, 문자열 + 숫자 = 문자열, 숫자 + 숫자 = 숫자
'development > Java' 카테고리의 다른 글
JAVA 공부 해볼까 (6) (0) | 2021.12.11 |
---|---|
JAVA 공부 해볼까 (5) (0) | 2021.12.10 |
JAVA 공부 해볼까 (4) (4) | 2021.12.09 |
JAVA 공부 해볼까 (3) (2) | 2021.12.07 |
JAVA 공부 해볼까 (1) (4) | 2021.12.06 |