pulic class Hello {
....
}
public static void main(String[] args) {
....
}
main 메소드System.out.println("Hello");
System.out은 System이 가지고 있는 out이라는 의미out.println은 out이 가지고 있는 println이라는 의미println 뒤에 괄호는 'print 메소드'라고 한다.out은 괄호가 없는데, 'out 필드'라고 한다.out이 가지고 있는 println 메소드의 역할은 괄호 안의 내용(큰 따옴표 안의 내용)을 화면에 출력한다. 즉, "Hello"를 출력⭐
System이라는 이름의 클래스. 그System클래스가 가지는 필드out. 그out이 가지는println메소드
↪ (ex) 자동차.엔진.시동걸다()
구글에 java system api를 검색하면
https://docs.oracle.com/javase/8/docs/api/java/lang/System.html 참고
system이 가지는 Field가 세 가지 있다.
PrintStreamprintStream이 가질 수 있는 메소드에 println 메소드가 있는 것을 확인할 수 있다.javac Hello.java바이트(byte) 파일 이라 한다.CPU는 2진수의 기계어만 이해할 수 있다.
CPU가 이해할 수 있는 프로그램을 어떻게 작성할 수 있는지 -> 사람이 이해할 수 있는 문자, 기호, 숫자 등을 기계가 이해할 수 있도록 변환해주는 컴파일이 생기게 되었다.
하지만 CPU가 다르면 각각의 CPU가 가지는 명령어들이 호환이 안되는 문제가 생겼다.
그래서 소스 코드를 바로 바꾸지 말고 소스 코드와 기계어 중간 형태의 결과물을 만들자라는 생각을 하게 된 것이다.
그 중간의 결과물이 바이트 코드(byte code) 이다.
javac Hello.java 라고 명령하면 소스 코드와 기계어의 중간 단계인 바이트(byte) 코드가 만들어진다.
C언어는 소스 코드가 컴파일되면 기계어로 된 코드로 바로 변환되지만, Java 언어는 중간 형태의 바이트 코드가 만들어진다.
이 중간 형태의 바이트 코드를 CPU와 OS에 상관없이 사용할 수 있다. <- JVM 덕분에~
JVM(Java Virtual Machine)이 필요하다. 이 JVM 역할을 수행하는 것이 java 명령이다.JVM은 바이트 코드를 읽어 들여 실행한다.java Hello 이때 확장자 이름은 입력 ❌⭐자바는 기계어로 바로 컴파일되는 것이 아니라, 바이트 코드로 만들어지고 컴파일로 만들어진 바이트 코드는 CPU/OS에 맞게 설치된 JDK안에 있는 JVM이 한 줄씩 읽어나가면서 실행한다.
public class problem {
public class void main(String[] args) {
System.out.println("이름: 000");
System.out.println("성별: 000");
System.out.println("이메일 주소: 000 @ naver.com");
}
}
VSCode에서 터미널 단축키는 crtl + 백틱( ` )
javac problem.java
java problem
이름: 000
성별: 000
이메일 주소: 000 @ naver.com