자바란?
자바는 표준스펙 , 구현 으로 나눠져있다.
자바 표준 스펙(=문서) 이란
- 자바는 이렇게 만들어야한다 라는 설계도 (문서) 이다.
- 표준 스펙하나를 가지고 여러회사에서 자바를 만든다.
- 각 구현에는 장단점이 있다. Amazon Corretto 같은 경우 AWS 에 최적화되어있다.
여러 구현들 모두 표준스펙을 따르기 때문에 다른 구현 버전으로 바꾸더라도 대부분 문제없이 잘 작동한다.
컴파일과 실행
자바 프로그램은 컴파일 단계 와 실행 단계를 거친다.
[컴파일 단계]
.java 소스코드를 작성한다. 자바가 제공하는 javac 라는 프로그램이 .java 파일을 컴파일한다. (javac == 컴파일러)
컴파일과정을 거치면 .java 파일→ .class 파일 생성된다.
그럼 왜 .class 파일을 굳이 만들까?
.class 는 java 소스코드 → java 바이트 코드 로 변환된 것이다.이 java 바이트코드는 JVM 이해하고 실행될 수 있는 중간형태 코드인데, 이를 활용하면 JVM 에서 더 빠르게 실행될 수 있고 최적화 및 문법오류도 검출 할 수 있게된다.
[실행 단계]
컴파일단계는 javac 라는 프로그램이 컴파일하듯,실행단계에서는 java라는 프로그램이 .class 파일을 JVM에 로드한다.
JVM은 .class 파일 즉, 바이트 코드를 해석하고 실행한다. 이렇게 실행되면 JVM은 각 운영체제에 맞는 기계어로 변환하고 실행된다.
IDE와 JAVA
인텔리제이 ↔ 자바 설치 관리
인텔리제이 ↔ 자바 컴파일과정 & 실행과정
- 컴파일 : 자바 코드를 컴파일 하려면
javac
라는 프로그램을 직접 사용해야하는데. ex)javac Hello.java
인텔리제이에서는 이 과정을 자동으로해준다. + 컴파일되면 주석처럼 필요없는 것들은 다 날아간다.
- 실행 : 컴파일된 .class 파일을 실행하려면
java
라는 프로그램을 직접 사용해야 한다.이 역시 자동을 해준다.
정리하면 인텔리제이에서 Run 을 하게 되면 컴파일 과정과 실행 과정을 모두 한번에 처리한다 .
JAVA 와 운영체제의 독립성
- 일반적인 프로그램
일반적인 프로그램은 다른 운영체제에서 실행 X
- 자바 프로그램
자바 프로그램은 자바가 설치된 모든 운영체제 에서 실행할 수 있다.
- 자바 개발과 운영 환경
개발하는 환경(MAC,WIN)과 서버에서의 환경(Linux)의 자바의 버전이 차이가 있을 수 있다.
그래도 문제는 없다. JAVA의 운영체제 독립성이 보장되니까 !
728x90
반응형