Skip to content

Commit 6e5540b

Browse files
committed
java switch-case bytecode 관련 포스팅 오타 수정
1 parent 3e6e46f commit 6e5540b

1 file changed

Lines changed: 8 additions & 7 deletions

File tree

_posts/2021-08-13-Java-switch-case-bytecode.markdown

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ syntaxHighlighter: yes
2424

2525
### if-else문
2626
```java
27-
// 지금은 사라진 신용등급제에 따른 대출 한도
27+
// 지금은 사라진 신용등급에 따른 대출 한도
2828

2929
int creditGrade = 1;
3030
int loanLimit;
@@ -41,7 +41,7 @@ if( creditGrade == 1){
4141
```
4242
### switch-case문
4343
```java
44-
// 지금은 사라진 신용등급제에 따른 대출 한도
44+
// 지금은 사라진 신용등급에 따른 대출 한도
4545

4646
int creditGrade = 1;
4747
int loanLimit;
@@ -62,7 +62,7 @@ switch( creditGrade ){
6262
**switch-case**문은 입력받은 케이스의 로직으로 바로 결정됩니다.
6363

6464
if-else문은 방 위치를 몰라서 방문을 하나씩 두드려본다면 switch-case문은 방 위치를 바로 알아서 들어가는 느낌이랄까?
65-
그러니 "방이 많을 수록" 방문을 앞에부터 하나씩 두드려보는 if-else 보다 switch-case문이 더 유리할 수 밖에,
65+
그러니 "방이 많을 수록" 방문을 앞에부터 하나씩 두드려보는 if-else 보다 switch-case문이 더 유리할 수 밖에요,
6666

6767
조건문 4개 이상일 때부터 if-else 보다 switch-case의 성능이 좋다고 하니 이때부터 이 차이가 더 극대화 되나보군요.
6868

@@ -90,9 +90,10 @@ case문의 1,2,3,default가 그대로 tableswitch에 key에 들어가있네요.
9090

9191
![javap_bytecode_switch_string](https://user-images.githubusercontent.com/34532192/129339652-1b750974-7583-46f6-96ea-e461b938f7a0.png){: width="100%" height="100%"}
9292

93-
case에 "bronze", "silver", "golde"의 문자열을 넣어주었는데도, tableswitch의 key는 0,1,2,default로 바뀌었습니다! 여기서 봐야할 점은 숫자일 때는 key에 0 값이 없었는데, 여긴 0부터 시작한다는 점인데요..!
93+
case에 각각 "bronze", "silver", "gold"의 문자열을 넣어주었는데도, tableswitch의 key는 0,1,2 로 바뀌었습니다!
94+
여기서 봐야할 점은 숫자일 때는 key에 0이 없었는데, 여긴 0부터 시작한다는 점인데요..!
9495

95-
추측하기로는 컴파일시 hashCode() 메서드에서 숫자일 때는 숫자로 바꿔주는 로직이 안돌고 그대로 들어갔지만,
96-
여기서는 조건이 문자열이기 때문에 hashCode 메서드에 의해 숫자로 case문의 조건이 String 객체라면 String 객체는에 의해서 0부터 시작하는 int 값을 넣어주었기 때문일 것 같습니다.
96+
추측하기로는 컴파일시 hashCode() 메서드에서 case 조건이 숫자일 때는 따로 바꿔주는 로직이 안 돌고 그대로 들어갔지만,
97+
여기서는 case 조건이 문자열이기 때문에 0부터 시작하는 int값을 넣어주었기 때문일 것 같습니다.
9798

98-
이렇게 JAVA Switch-Case문 조건들이 tableswitch로 저장되는 모습을 확인했습니다. 다음에는 lookupswitch로 저장되는 모습도 확인해보겠습니다.
99+
이렇게 JAVA Switch-Case문 조건들이 tableswitch 형태로 저장되는 모습을 확인했습니다. 다음에는 lookupswitch 형태로 저장되는 모습도 확인해보겠습니다.

0 commit comments

Comments
 (0)