JAVA/온라인 스터디

1회차 피드백 정리

oozoo 2020. 11. 17. 21:41

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주차부터는 워드에 하던 조금 더 체계적인 필기 체계가 필요할거 같다. 굵게 표시한 부분들부터 수정하자.