공통적인 피드백
1. 이미지를 너무 복사를 함 -> 왠만하면 직접 그리는것을 추천
2. 텍스트도 너무 복사하지 말기, 읽고 이해한대로 다시적기
3. 다른분들이 한 과제를 보기 (깊이가 다들 다르기 때문에)
의문점
자바 14로 컴파일한 .class를 자바 8로 실행하면? -> 안되는게 맞다.
반대로 8로 컴파일 후 .class를 자바 14로 실행하면? -> 된다.
에러 : UnsupportedClassVersionError : 컴파일과 실행에 대한 javaversion이 mismatch가 있어 발생한다.
* (추가과제) java compile version option / javac 옵션 조사
.class파일에 있는 바이트 코드 보는 방법
javap - c명령으로 가능
JIT컴파일러란?
자바를 실행할때 line by line으로 인터프리터하면
코드중에 반복되는 코드가 있다면 JIT가 기계어로 캐싱 후 재사용 (인터프리터로 해석할 캐시에서 꺼내서 바로 실행)
JIT도 일종의 스레드로 실행된다.
JDK와 JRE
java9부터는 jre가 없다.
javac/ javap는 jdk에 있다.
java8부터는 client Compiler와 server Compiler옵션에 대해 신경 쓸 필요없다.
컴파일 타임
javac를 실행할때의 타임, IDE에서 코딩하는 순간
런타임
java를 실행하면서 발생
언제 에러가 나는게 더 좋은가요? 컴파일 타임,,,,
바이트코드가 기계어(=바이너리코드)는 아니다.
바이트코드는 JVM이 이해할수있는 코드다.
+ 추가 조사
바이트 코드는 플랫폼 독립적이며, 윈도우에서 실행되는 컴파일러로 컴파일 된 바이트 코드는 여전히 linux / unix / mac에서 실행됩니다. 기계어 코드(바이너리 코드)는 플랫폼에 따라 다르며 Windows x86에서 컴파일 된 경우 Windows x86에서만 실행됩니다.(stackoverrun.com/ko/q/10525060)
'Java' 카테고리의 다른 글
3주차 과제: 연산자 (0) | 2020.11.26 |
---|---|
2주차 과제: 자바 데이터 타입, 변수 그리고 배열(피드백, feedback) (0) | 2020.11.22 |
2주차 과제: 자바 데이터 타입, 변수 그리고 배열 (0) | 2020.11.18 |
1주차 과제: JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. (0) | 2020.11.14 |
[java] 깊은 복사(Deep Copy) vs 얕은 복사(Shallow Copy) (0) | 2020.02.09 |