인프런 커뮤니티 질문&답변

aiden님의 프로필 이미지
aiden

작성한 질문수

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

변수 타입2

short, int

작성

·

224

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 네
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

안녕하세요. 백엔드 개발을 하고 있는 주니어 개발자입니다.

질문이 있습니다.

 

short는 2byte이고 int는 4byte면 2byte 이상 4byte 이하 값에 대한 연산은 int보다 short를 사용하는 것이 메모리나 속도 측면에서 적합하지 않나요?

 

보통 int를 사용하는건 굳이 short를 사용할만한 메리트가 없어서 그런걸까요?

 

구글링 해봤을 땐 자바에서는 연산을 할 때 피연산자를 4byte로 저장하기 때문에 short는 오히려 int형으로 변환 후 연산을 한다고 하던데 정확히 이해하기가 쉽지 않아서요,,, 혹시 답변 가능하시다면 부탁드리겠습니다.. 감사합니다.

답변 1

1

안녕하세요. aiden님, 공식 서포터즈 코즈위버입니다.

메모리는 분명 int 보단 short 이 절약됩니다. 그러나 CPU 연산이 몇바이트 연산에 최적화 되어 있느냐 또한 연사속도에 영향을 주는 중요한 요소입니다.

보통 int 타입이 CPU 연산에 최적화된 메모리 크기를 갖는데요, 과거 32bit CPU를 사용하던 시절이 매우 길었기에 대부분의 int 는 4바이트(32bit)를 기준으로 사용합니다. 현대는 64bit CPU를 사용하므로 8바이트 자로형을 사용하는게 맞지 않나 싶지만, 실은 아직도 4바이트 연산이 CPU에 가장 최적화 되어 있다고 합니다.

자바에서도 이런 이유등으로 가급적 int 형으로 데이터를 처리하도록 최적화 한것으로 추측합니다.

감사합니다.

aiden님의 프로필 이미지
aiden

작성한 질문수

질문하기