제 1장 자바 시작

eunchae-04·2024년 9월 21일

명품 JAVA Programming

목록 보기
2/5

1.2 자바의 출현과 WORA

- 자바의 가상 기계와 바이트 코드

먼저 자바를 사용할 수 있는 환경을 만든다.
https://www.oracle.com/java/technologies/downloads/#jdk17-windows
위의 링크를 타고 들어가면 나오는 곳에서 [x64 Installer]를 다운받는다.

메모장을 활용하여 다음 코드를 작성한 후 "Hello.java"로 C드라이브의 java2024에 저장한다.

public class Hello{
	public static int sum(int i, int j) {
		return i + j;
	}
	public static void main(String[] args) {
		int i;
		int j;
		char a;
		String b;
		final int TEN = 10;
		i = 1;
		j = sum(i,TEN);
		a = '?';
		b = "Hello";
		java.lang.System.out.println(a);
		System.out.println(b);
		System.out.println(TEN);
		System.out.println(j);
	}
}

명령 프롬프터를 연다.

1> java -version
: 자바를 사용할 수 있는 환경인지 확인하기 위해 사용되었다.

2> cd C:\java2024
: Hello.java 파일이 있는 경로로 이동한다. 현재 C:\java2024에 저장했으므로, "cd C:\java2024"를 입력한다.

3> dir
: 현재 위치에 어떤 파일들이 있는지 확인할 수 있다. 예를 들어, Hello.java와 Hello.class 파일이 있는지 확인할 수 있다.

4> javac Hello.java
: Hello.java를 컴파일하는 명령이다. 이 명령으로 컴파일되면 "Hello.class"파일이 생성된다.

5> java Hello
: 컴파일이 성공적으로 완료된 후, 다음 명령어로 프로그램을 실행한다.


  • 바이트 코드

1> javap -c Hello > Hello.bc
: Hello.class 파일을 디어셈블하는 명령으로, 디어셈블된 결과 Hello.bc 파일이 생성된다. 하지만 이 환경에서는 실행되지 않았다.

2> "C:\Program Files\Java\jdk-17\bin\javap.exe" -c Hello > Hello.bc
: javap가 있는 경로를 직접 주어줌으로써 이 문제를 해결 할 수 있다.

다음과 같은 결과 Hello.bc에 메모리가 생성된다.

이것을 빈 메모장에 끌어 넣으면 다음과 같은 것을 볼 수 있다.

sum()메소드를 컴파일한 바이트 코드를 디어셈블한 결과
(자바의 어셈블리 코드로 출력)


1.3 개발 도구와 자바 플랫폼

  • JDK와 JRE
    다음은 bin 디렉터리에 들어 있는 주요한 개발 소프트웨어들이다.
    • javac : 자바 컴파일러로 자바 소스를 바이트 코드로 변환
    • java : 자바 프로그램 실행기. 자가 가상 기계를 작동시켜 자바 프로그램 실행
    • javadoc : 자바 소스로부터 HTML 형식의 API 도큐먼트 생성
    • jar : 자바 클래스 파일을 압축한 자바 아카이브 파일(.jar) 생성, 관리
    • jmod : 자바의 모듈 파일(.jmod)을 만들거나 모듈 파일의 내용 출력
    • jlink : 응용프로그램에 맞춘 맞춤형(custom) JRE 생성
    • jdb : 자바 으용프로그램의 실행 중 오류를 찾는 데 사용하는 디버거
    • javap : 클래스 파일의 바이트 코드를 소스와 함께 보여주는 디어셈블러

+) javadoc을 이용한 자신만의 API 도큐먼트 HTML파일 생성

public class HelloDoc {
    public static int sum(int i, int j) {
        return i + j;
    }

    public static void main(String[] args) {
        int i;
        int j;
        char a;
        String b;
        final int TEN = 10;

        i = 1;
        j = sum(i, TEN);
        a = '?';
        b = "Hello";

        java.lang.System.out.println(a);
        System.out.println(b);
        System.out.println(TEN);
        System.out.println(j);
    }
}

HelloDoc.html 파일 생성됨



실습문제

package Welcome;

public class Welcome {
	public static void main(String[] args) {
		System.out.println("자바는 처음이죠?");
		System.out.println("Welcome to JAVA World~");
	}
}


package Best;

public class Best {
	public static void main(String[] args) {
		System.out.println("학기가 시작되었어요!");
		System.out.println("이번 학기 자바를 열심히 공부해 최고의 Software 개발자가 될 거예요~");
	}
}

0개의 댓글