일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- datastructure
- SpringBoot Initializr
- MergeSort
- If
- Class
- JavaScript
- IAC
- JPA
- While
- programmers
- ansible
- Sprint Security
- For
- UserDetails
- Kotlin
- redis
- zgc
- Algorithm
- jvm
- Spring Security
- g1gc
- quicksort
- Fluent-bit
- C++
- datatype
- lambda
- 연산자
- 자료형
- Java
- 기초
Archives
- Today
- Total
뭐라도 끄적이는 BLOG
Java Bytecode 본문
Bytecode란 무엇인가
우리가 작성한 Java코드는 결국 컴퓨터가 이해할 수 있는 형태로 코드가 변환되어야 한다. Java는 Java컴파일러를 이용하여 JVM이 이해할 수 있는 코드인 Bytecode를 생성한다. Bytecode는 기계어는 아니지만 가상 머신에 의해 기계어로 손쉽게 변환할 수 있는 코드이다. 각각의 Bytecode는 1byte로 구성되지만 몇 개의 파라미터가 사용되는 경우가 있어 총 몇 바이트로 구성되는 경우가 있다.
Bytecode는 JVM만 설치되어 있으면 어떤 운영체제에서든 실행할 수 있다. 그리고 JVM이 실행할 수 있는 Bytecode를 만들 수 있는 코드라면 Java 외 어떤 언어라도 실행 가능하다. (Kotlin, Scala 등..)
Bytecode를 확인하고 싶다면 `javap` 명령어로 디컴파일된 바이트 코드를 확인할 수 있다. Bytecode는 OPcode(Operation code) 형태로 보여 준다. 해당 OP코드는 각각 1byte이다.
OP코드는 대략 200개 정도가 있다. 아래 링크에서 확인해 볼 수 있다.
Bytecode의 구성요소
반응형
'Java > Java 기본' 카테고리의 다른 글
Java 연산자 (0) | 2023.07.01 |
---|---|
Java Variables와 Data Types (0) | 2023.06.30 |
Garbage Collector의 종류 (Serial, Parallel, CMS, G1, Z) (0) | 2023.06.29 |
JVM 구성 요소 (0) | 2023.06.29 |
Java (JVM, JIT, JDK 간략한 설명) (0) | 2023.06.29 |