본문 바로가기

Java

1-2 장 자바 프로그램의 기본구조

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

 

 1) .java 소스 파일 생성 -> 자동 저장시 자동 컴파일

 2) .class 바이트 코드 파일 생성 

 3) JVM은 메모리 할당

 4) main 메서드 실행 

 

 cf. JVM이 할당한 메모리 영역

   -메서드(method)영역

   - 스택(Stack)영역

   - 힙(heap)영역

 

 

2. 소스 코드의 기본 구조 분석

/*
처음 만든 클래스 
(여러 줄 주석)
*/
package exam01;

public class Test {
	public static void main(String[]ar) {
    	//화면 출력 코드(1줄 주석)
        System.out.println("콘솔 화면 출력");
        }
}

  ( 이런 기능이 있었군;; ㅎㅎ)

 

 1) 주석

   - 한줄 //

   - 두줄 이상  /* */

 

 2) 패키지 선언부 

  - pakage exam01

  - 소스파일이 exam01 패키지 안에 있구나!!

 

 3) 클래스 선언부 

  -public class Test {

}

  - public

   -> 이 클래스를 다른 패키지에서도 사용할 수 있다는 의미를 지닌 접근 지정자 

   -> 최대 1개의 클래스만 public을 포함할 수 있다

  - class Test 

   -> 클래스 명: Test

   -> 클래스명은 반드시 소스파일명과 일치

   -> 클래스 내부 구성요소 : 필드(filed) , 생성자(constructor), 메서드(method), 이너 클래스 (inner class)

 

 4) main() 메서드 

  - 메서드의 구조 :'리턴타입 메서드명() {}'

public static void main(String[] ar) {
}

  - public :접근 지정자 

  - Static : 정적 메서드를 나타내는 키워드 

  - 실행 이후 가장 먼저 실행되는 메서드 

 

    

3. 소스 파일 컴파일과 바이트 코드 생성

 

 - 소스파일 이름은 public이 붙은 클래스와 이름 일치 

 -  자바의  바이트 코드(.class)는 클래스당 하나씩 생성

public class A {
	//소스파일명 A.java
    //A.class
}

class B {
	//B.class
}

class C {
	//C.class
	class D {
     	//C$D.class
    }
}

- 외부에 있는 클래스  -> '클래스명.class'

- 이너 클래스 -> '아우터 클래스 $ 이너 클래스 .class'

 

4. 콘솔 출력 메서드와 문자열 출력

 

 1) System.out.printin()

 

  - 줄 바꾸면서 출력하기 

  - 소괄호 안의 내용을 출력하고 줄을 바꿈

System.out.println("화면 출력"); //화면 출력
System.out.println("화면"+"출력"); //화면출력
System.out.println(3.8); //3.8
System.out.println(3+5); //8
System.out.println("화면"+3); //화면3
System.out.println("화면"+3+5); //화면35
System.out.println(3+5+"화면"); //8화면

 

2) 변수에 넣어 출력하기 

 

 - 변수라는 저장 공간에 값을 담은 후 변수를 넘겨줘도 동일한 결과 얻을 수 있음

int a=3;
String b="화면";

System.out.println(a); //3
System.out.println(b); //화면
System.out.println(b+"출력"); //화면출력
System.out.println(a+b+"출력); //3화면출력

 

3) System.out.print()

 

 - 한줄로 출력하기 

 - 출력이후 개행하지 않음, 모든 출력을 연속적으로 1줄로 출력

System.out.print("화면");
System.out.print("출력");
System.out.print(3); // 화면출력3이 한줄로 연결돼 출력

 

4) System.out.printf()

 

 - System.out.printf("출력 포맷", 인자, 인자....)

 - 출력포맷을 지정하는 메서드

 - 큰따옴표("")안에 출력하고자 하는 형식 지정 

 - %로 시작하는 위치 = > 인자로 넘어오는 위치

 - %d(10진수) / %o(8진수) / %x(16진수) / %s(문자열) / %f(실수)

 - 실수 소수점 자리 지정

    %전체 자릿수 +.+소수점 자릿수+f

    %4.2f => 전체 자릿수를 4개로 하고, 소수점 아래는 2자리까지 표현

 

System.out.printf("%d\n",30); //30(10진수)
System.out.printf("%0\n",30); //30(8진수)
System.out.printf("%x\n",30); //30(16진수)
System.out.printf("%s\n","출력"); //출력
System.out.printf("%f\n",5.8); //5.800000
System.out.printf("%4.2f\n",5.8); //5.80
System.out.printf("d와 %4.2f\n",4,5.8); //4와 5.80

 

'Java' 카테고리의 다른 글

2-4장 기본 자료형 간의 타입 변환  (0) 2023.04.19
2-3장 자료형의 종류  (0) 2023.04.16
2-2장 이름짓기  (0) 2023.04.15
2-1장 변수와 자료형  (0) 2023.04.15
1-1 장 자바 프로젝트  (0) 2023.04.15