
public class Hello{
...
}
위 코드는 "public class로 정의된 Hello 클래스"라고 할 수 있다.
public class의 클래스 이름과 파일명은 반드시 동일해야한다. (대소문자 구분)
만약 Hi.java라면 public class는 Hi로 정의되어야 한다.
public static void main(String[] args){
...
}
클래스는 필드Field와 메소드Method를 가질 수 있다.
프로그램이 시작하려면 main 메소드가 반드시 존재해야하며, 이 부분은 java로 만든 프로그램의 시작점이다.
System.out.println("Hello");
print() = print methodout = out field즉, 코드를 읽어본다면
System안에println("Hello")이라는 메소드를 가진 outfield가 존재한다고 볼 수 있다.
👉🏻Java System API
// Hello 클래스 = 파일명 Hello
public class Hello{
// main이라는 메소드 존재
public static void main(String[] args){
// System안에 println메소드를 가진 out 존재
System.out.println("Hello");
}
}
javac Hello.java
java는 어떤 CPU/운영체제에서도 동일하게 작동되는 것을 목표로 두었기 때문에, 이진법으로 이루어진 기계어와 인간이 사용하는 언어의 중간인 바이트bite 파일로 컴파일이 된다.
즉, Java로 작성된 파일 = 컴파일된 클래스 = 바이트파일 이다.
바이트 파일을 실행하려면 JVM(Java Virtual Machine)이 필요하다.
JVM은 CPU/운영체제에 맞게 설치된 JDK안에 있다.
Java Development Kit, JDK
자바 애플리케이션을 구축하기 위한 핵심 플랫폼 구성요소다. 이 중심에는 자바 컴파일러(Compiler)가 있다.
👉🏻JDK란 무엇인가?
JVM은 java명령어로 바이트 파일안의 바이트 코드를 읽어들여 실행되는데 java명령어를 실행할때 파일의 확장자는 입력하면 안된다.
java Hello
JVM은 바이트 코드를 한 줄 씩 읽으며 기계어로 번역한다. = Interpreter방식
인터프릿 : 코드를 한 줄씩 읽어 내려가며 실행
컴파일러 : 코드 전체를 읽어서 기계어로 번역