.java와 .class의 차이점
Java는 플랫폼 독립적인 프로그래밍 언어입니다. C 언어와 같은 일반적인 1단계 컴파일 대신 2단계 실행 프로세스가 포함됩니다.
첫 번째 단계 실행은 OS 독립적인 컴파일러를 사용하여 수행됩니다. 두 번째 단계 실행은 JVM 또는 Java 가상 머신이라고도 하는 가상 머신의 도움으로 수행됩니다.
2단계 실행 중에 확장자가 .java 및 .class인 파일이 형성됩니다. 이 기사에서는 .java와 .class 파일의 기본적인 차이점을 살펴봅니다.
자바 프로그램 작성의 기초
.java 및 .class 파일의 개념을 이해하려면 Java 프로그램이 어떻게 실행되는지 알아야 합니다. 다음 코드를 예로 들어 보겠습니다.
public class DemoProgram {
/* This is a demo Java program that will print 'Hello Java' as the output */
public static void main(String[] args) {
System.out.println("Hello Java");
}
}
이 프로그램을 실행하려면 다음 단계를 따르십시오.
-
위의 코드를 텍스트 에디터로 작성합니다. 그런 다음 파일을
DemoProgram.java로 저장합니다. 파일 이름은 클래스 이름과 같아야 합니다. -
이 파일을 저장한 디렉토리의 경로를 사용하여 명령 프롬프트 창을 엽니다.
-
javac DemoProgram.java명령을 입력합니다. 엔터 키를 누릅니다.javac명령은 Java 프로그램을 컴파일합니다..java파일을 입력으로 받아 바이트코드 파일로 변경합니다. 이 단계는 코드 컴파일을 시작합니다. 오류 없이 컴파일이 성공하면 커서가 다음 줄로 이동합니다.C :\Users\PC > javac DemoProgram.java -
그런 다음
java DemoJava명령을 입력합니다. 여기에서 파일 이름과 함께.java를 사용하지 않습니다. 그 이유는java명령이 바이트 코드를 입력으로 받아 소스 코드에 따라 최종 출력을 제공하기 때문입니다. 간단히 말해서 이번에DemoProgram은 자바 파일이 아니라 바이트코드입니다.C :\Users\PC > java DemoProgram -
위의 명령은 프로그램을 실행하고 다음과 같이 출력을 볼 수 있습니다.
Hello Java
계속 진행하기 전에 다음 사항에 유의하십시오.
-
소스 코드는 프로그래머가 모든 프로그래밍 언어로 작성하는 코드입니다. 문제를 해결하기 위해 수동으로 작성합니다.
-
Java에서 각 프로그램은
클래스를 구성합니다. 코드 작성 목적에 따라 단일 프로그램에 둘 이상의 클래스가 있을 수 있습니다. 위의 예와 같이DemoProgram이라는 단일 클래스만 있습니다.
위 섹션에서 텍스트 파일을 만들고 .java 확장자로 저장합니다. 이것은 컴파일러를 통과하는 소스 파일입니다.
이것은 소스 코드를 기계 독립적인 인코딩으로 인코딩합니다. 이것을 바이트코드라고 합니다.
이미 언급했듯이 하나의 프로그램에는 하나 이상의 클래스가 있을 수 있습니다. 따라서 인코딩하는 동안 각 클래스의 내용은 다른 .class 파일로 별도로 이동합니다.
그런 다음 이러한 파일은 시스템 또는 OS에 독립적이므로 모든 시스템에서 실행할 수 있습니다.
.java와 .class 파일이 사진에 들어오는 것을 보았습니까? 이 확장자로 소스 코드를 저장할 때 .java 파일이 형성됩니다. .class 파일은 컴파일이 수행될 때 형성됩니다.
Java의 .java 파일
.java 파일은 Java의 소스 코드 자체에 불과합니다.
간단히 말해서 우리가 작성한 코드가 들어 있는 파일입니다. 간단한 텍스트 편집기나 IDE를 사용하여 Java 프로그램을 작성할 수 있습니다.
무엇을 사용하든지 작성한 프로그램이나 소스 코드를 저장합니다. Java 소스 코드 파일을 저장하기 위해 .java 확장자를 사용합니다.
모든 언어에는 소스 코드 파일을 저장하는 규칙이 다릅니다. C 언어와 마찬가지로 소스 코드 파일의 확장자는 .c입니다. 파이썬에서는 .py이고 C++에서는 .cpp를 사용합니다.
Java의 .class 파일
.class 파일은 소스 코드에서 클래스의 바이트 코드를 포함하는 파일입니다. 이 파일은 컴파일이 수행될 때 형성됩니다.
Java가 플랫폼 독립적인 언어라고 언급한 것은 이러한 클래스 파일 때문입니다. 이러한 파일은 모든 OS 또는 시스템에서 실행할 수 있습니다.
.class 파일은 컴파일된 .java 파일로 간주할 수 있습니다. JVM(Java Virtual Machine)에서 실행되는 파일입니다.
.class 파일의 수는 반드시 하나일 필요는 없습니다. 컴파일 후 각 클래스가 다른 .class 파일로 이동하므로 소스 코드가 갖는 클래스 수와 같습니다.
예 1:
public class DemoProgram {
/* This is a demo Java program that will print 'Hello Java' as the output */
public static void main(String[] args) {
System.out.println("Hello Java");
}
}
출력:
C:\Users\PC>javac DemoProgram.java
C:\Users\PC>java DemoProgram
Hello Java
이 코드에는 DemoProgram이라는 하나의 클래스만 있습니다. 따라서 컴파일로 인해 .class 파일 DemoProgram 하나만 얻습니다.
이제 다른 예를 살펴보겠습니다.
예 2:
// A class
class TestCase {
public static void main(String[] args) {
System.out.println("An example with multiple classes.");
}
}
// Another class
class Demo {
public static void main(String[] args) {
System.out.println("This is an example.");
}
}
// One more class
class Example {
public static void main(String[] args) {
System.out.println("It contains three classes.");
}
}
파일 컴파일:
C :\Users\PC > javac Example.java
컴파일 후 출력으로 .class 파일이 하나가 아니라 세 개 있습니다. 따라서 소스 코드의 클래스 수만큼 .class 파일이 있음을 알 수 있습니다.
다음과 같이 각 .class 파일을 개별적으로 실행할 수 있습니다.
C :\Users\PC > java TestCase An example with multiple classes.
C :\Users\PC
> java Demo This is an example.
C :\Users\PC
> java Example It contains three classes.
.java와 .class 파일의 차이점
이 두 파일 유형의 차이점은 다음 표에 요약되어 있습니다.
.java 파일 |
.class 파일 |
|---|---|
| 여기에는 Java 소스 코드가 포함되어 있습니다. | 여기에는 Java 바이트 코드가 포함되어 있습니다. |
| 프로그래머나 개인이 작성합니다. | .java 파일의 컴파일 결과로 형성됩니다. |
| 사람이 읽을 수 있습니다. | 프로그램 실행을 위해 JVM에서 사용됩니다. |
.class 파일 앞에 형성됩니다. 이것이 없으면 클래스 파일을 구성할 수 없습니다. |
항상 .java 파일 다음에 형성됩니다. |
| 우리는 이것을 모든 텍스트 편집기나 Java IDE에서 작성할 수 있습니다. | 모든 OS나 머신에서 실행할 수 있습니다. |
결론
이 기사는 .java 파일과 .class 파일의 주요 차이점에 대해 설명했습니다. 또한 Java 프로그램이 기계 수준과 사용자 수준에서 실행되는 방식도 보았습니다.
이 개념은 Java 프로그래밍의 기초이며 Java 프로그램 및 응용 프로그램을 효율적으로 실행하기 위해 이해하는 것이 중요합니다.
관련 문장 - Java File
- Java에서 파일에서 줄 바꿈을 제거하는 방법
- Java에서 파일 닫기
- Java JAR 파일 생성 및 실행
- Java를 사용하여 디렉토리에서 파일 삭제
- Java에서 두 파일의 내용 비교
- Java에서 파일 크기 얻기