1회차 피드백 정리
JVM
인터프리터 / JIT 컴파일러 비교해야한다.
JAVA 실행은 eclipse / inteli J로 많이 한다.
inteli J
> 코딩하면 컴파일 된다. (빨간 불 컴파일 에러가 뜸)
> 항상 컴파일이 된다.
> 실행 방법: 우클릭 > RUN
(가장 현실적 ㅋㅋ)
이클립스도 똑같이 작동한다!
JIT 실행하는 시점에 컴파일 되다.
Full Dc 발생 시 수 차례 ? 두번째 피드백 스터디 내용 참고하기
JDK / JRE 차이
다른 언어를 언급한 사람들도 있다.
JAVA로 코드를 안 써도 된다. 다양한 언어를 사용해도 된다.
JVM으로 실행을 하는 것은 매우 좋다.
컴파일 타임 / 런타임에 대해서 이해를 해야 한다.
컴파일 타임 : javac를 실행할 때를 일컫는다.
에러는 언제가 좋을까? 컴파일 타임 그래도 낫다.
컴파일 타임에는 찾을 수 있다.
그러나 런타임에만 발생하는 에러도 존재한다.
바이트코드는 기계어가 아니다.
바이트코드는 JVM이 이해할 수 있는 기계어이다.
JDK는
변수와 관련된 문법에 대해 공부하자
1:1 피드백
1번
운영체제마다 각기 다른 출력 (oS에 맞게)
class 파일이 운영체제별로 바뀔 필요가 없다.
화면 캡쳐도 좋지만, 콘솔창을 넣어도 된다.
패키지명이 디렉토리로 간다. 실행 방법
-d 옵션을 주면 클래스 파일이 생긴.
클래스 파일에 있는것 바이트 코드이다.
바이트코드라고 써야 한다...(띄어쓰기 없다!)
op코드가 1 바이트이기 때문이다.
JIT 컴파일러 : JAVA C 컴파일러랑 헷갈리면 안된다.
JAVA가지고 실행을 할 때, 관련있다.
코드를 쭉 실행할때 라인 by 라인 인터프리터가 (기계가 이해할
수 있도록 번역)
코드 중에 반복되는 코드, GIT 컴파일러가 캐싱하여 재사용한다.
기계어로 해석할 필요 없이 기계어가 바로 실행이 가능해 빨라진다.
지금은 이제 차이가 별로 없다. JVM 에 들어가 있다. 캐싱은
서버모드 컴파일 / 클라 모드 컴파일
> 최소한의 지식은 이정도
나누는 것보다는 필요한 메모리 영역 / 메소드 실행 방식
자바 9 부터는 JRE를 더이상 사용하지 않는다.
javac는 jdk에 들어가 있다.
꼭 기억하세요!
javac는 컴파일하는 것이므로 개발에 필요하기 때문에 개발 도구에 있다.
jdk 에 jre에 관한 것들이 다들어가 있으므로 자바 9부터는 분리되지 않는다.
2번째 피드백
JVM은 의존적이다 JAVA가 독립적이다.
JAVA를 실행할 때, JIT 최소화하여, 실행부터 하게끔 한다.
JIT가 덜 개입하여 실행을 빠르게 하는거
> 클라이언트 컴파일러
JIT를 더 많이한다. 실행이 최적화 되어 실행이 되기 때문에 조금 더 최적화 되어 있다.
서버 컴파일러
자바의 레이어드 옵션
JVM을 어렵게 설명한 사람이 많다.
처음 JVM을 공부할 때에는 JAVA를 실행하는 머신이다.
프로그램이다.
JAVA 프로그램을 기타 명령어 처럼 실행을 할 수 없다.
컴파일 하는 방법
자바 코드 작성법은 여러가지가 있다.
javac : java 컴파일러
14버전 자바 컴파일 하면,
sdkman 자바 버전 변경 가능
class 파일을 java 14버전으로 실행
14버전 자바 컴파일 > 자바 8버전으로 실행 > 안 된다.
상위 버전의 바이트 코드는 하위 버전의 바이트 코드를 실행할 수 없다.
But 하위 버전의 클래스 파일은? 됩니다.
실행하는 방법
Java 1버전 / Java 14버전
상위 버전으로 컴파일 시, 하위 버전으로 실행이 안 된다.
자바 15버전으로 컴파일 / 자바 8버전으로 어떻게 가능한거지?
자바 컴파일에는 옵션이 존재한다. java compile version option
source / target version
- 옵션에 대해 설명하는 사람이 없었다.
> spring framework java 15을 지원한다. Java 스프링 프레임워크 /스프링 부트 에는 최소의 자바가 적혀있다. = java 8 / 컴파일 옵션이 자바 8에서 돌아가도록 했다.
특정한 프로젝트를 실행할 때, 패키징이 자바 9가 되어 있어서 8로 되어 있어서 에러가 발생한다. 에러 메세지에 익숙해져야 한다.
숫자 52 가 자바 8
unsupported class version error >
source target
- 스티커 메모로 메모했더니 어디가 어디인지 모르겠다. 그리고 읽기가 싫다. 대충 한번 읽어보고 필수적으로 수정해야 하는 부분들만 수정하고, 다음 2주차부터는 워드에 하던 조금 더 체계적인 필기 체계가 필요할거 같다. 굵게 표시한 부분들부터 수정하자.