{TIL 11} 자바 프로그램의 기본 구조

YeilieY·2022년 9월 29일
0

항해99

목록 보기
16/27

1. 자바 소스 코드의 실행 과정

  • 자바 소스코드의 실행 과정은 크게 4가지 단계로 진행된다.
    #1 소스 파일(.java) 을 작성한 후 컴파일을 수행하면 자바 가상 머신상에서 동작하는 바이트 코드(.class) 가 생성된다.
    #2 바이트 코드를 실행하면 자바 가상 머신은 운영체제에서 메모리를 할당받아 자바 프로그램을 실행한다.

    자바 가상머신은 메모리를 효율적으로 관리하기 위해 메모리를 크게 메소드(Method), 
    스택(Stack), 힙(Heap) 영역으로 나누어 사용한다. 우리가 옷을 정리할 때 
    상의, 하의, 속옷 등을 다른 서랍에 보관하는 것과 같은 원리이다. 
    특히 메모리의 메소드 영역은 클래스(Class), 정적(Static), 상수(Final) 영역
    이라고도 부른다.
    메모리 할당 이후 실행 파일인 바이트 코드는 메모리의 메소드 영역에 로딩되며, 
    이후 클래스 내에 포함되어 있는 main() Method 를 실행하는 것이 자바 가상머신의 
    역할이다. 
    즉, main() Method 가 자바 프로그램의 시작 지점이자 끝 지점인 것이다.
        

소스 코드의 기본 구조 분석

  • 주석

    • 일종의 메모리 기능을 수행하는 주석은 협업을 할 때 프로그램의 가독성을 높이는 데 필요하다.
    • 주석 처리된 문장은 컴파일할 때 제외되므로 실행 자체에는 아무런 영향을 미치지 않는다.
  • 클래스(Class) 선언부

    • public 은 이 클래스를 다른 패키지에서도 사용할 수 있다는 의미를 지닌 접근 지정자 이다.
    • 1개의 소스파일에는 여러 개의 클래스가 존재할 수 있는데, 몇 개의 클래스가 존재하든 최대 1개의 클래스만 public 을 포함할 수 있다.
    • Class Test 는 클래스명이 Test 라는 것을 나타내고, 클래스명은 반드시! 소스 파일명과 일치해야 한다.
  • main() 메소드(Method)

    • 메소드의 구조는 '리턴 타입 메소드명(...) {}' 의 형태를 가지고 있다.
    • public 은 접근 지정자, static 은 정적 메소드를 나타내는 키워드이다. (public static 은 메소드를 꾸며주는 수식어)
    • 실행 이후 가장 먼저 실행되는 메소드가 main() 메소드라는 것을 꼭 기억해야 한다!
  • 소스 파일 컴파일과 바이트 코드 생성

    • 1개의 소스파일에는 여러 개의 클래스 파일이 포함될 수 있다.
    • 1개의 소스파일에는 최대 1개의 public 클래스만 존재 가능하다!
    • 바이트 코드(.class) 는 클래스당 하나씩만 생성이 된다.

콘솔 메소드와 문자열 출력

  • 줄 바꾸면서 출력하기 : System.out.println()

    • 소괄호 안의 내용을 출력하고 줄을 바꾼다.
    • line 을 축약한 ln 이 print 뒤에 들어간다.
  • 1줄로 출력하기 : System.out.print()

    • 출력 이후 개행하지 않는다는 점을 제외하면 println() 메소드와 동일하다.
    • 모든 출력을 1줄 안에서 나란히 출력이 된다.
      TIP: \n(Back Slash n) 을 출력하면 개행, 즉 줄바꿈이 실행된다.
  • 형식대로 출력하기 : System.out.printf()

    • C 언어의 printf() 와 동일한 동작을 수행한다.
    • 기본 형식은 printf("출력 포맷", "인자 포맷", 인자, 인자, ...) 의 형태를 가지고 있다.
    • 출력 포맷을 지정하는 메소드로, 큰따옴표 안에 출력하고자 하는 형식을 지정한다.
    • 출력 포맷 내에 %로 시작하는 위치는 인자로 값이 넘어오는 위치이며, 출력 타입은 % 다음에 나오는 문자에 따라 결정된다.
    • %d, %o, %x 는 각각 정수를 넘겨받아 10진수, 8진수, 16진수로 출력한다.
    • %s 와 %f 는 각각 문자열과 실수를 인자로 넘겨받아 출력한다.
    • %f 로만 출력할 때는 소수점 아래의 자릿수가 여러 개 표현되는데, 이를 정형화하는 방법으로 ' % 전체 자릿수 + . + 소수점 자릿수 + f ' 와 같이 표현할 수 있다.
profile
Fun_Dev

0개의 댓글