Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- address
- terminate
- expression statement is not assignment or call html
- 파이썬
- 출처: 자바의 신 8장
- Morphological analysis #Corpus
- gitbash
- 플젝후체크
- Machine Learning
- Anaconda
- 자바파이썬
- 코딩온라인
- 카우치코딩 #couchcoding #6주포트폴리오 #6주협업프로젝트
- taskkill
- 서버사이드렌더링
- 카우치코딩 #couchcoding #6주포트폴리오 #6주협업프로젝트v
- #스파르타코딩클럽후기 #내일배움캠프후기
- Technical Writing
- 클라이언트사이드렌더링
- 비동기
- 필사
- SSR
- 모바일웹스킨
- PID
- 마크다운
- khaiii
- Kakao
- github
- github markdown
- 파이콘
Archives
- Today
- Total
개발 일기
Primitve vs Reference 본문
각 변수 타입이 몇 byte인지, primitive type과 reference type의 차이와 활용
변수타입을 알아야 하는 이유: 메모리에는 제약이 있기 때문이다. 메모리를 효율적으로 사용하기 위해 가장 적합한 자료형을 찾자.
똑같은 데이터를 저장하더라도, 변수 타입에 따라서 메모리 사용량이 다르다.
즉 어떤 숫자를 저장하느냐에 따라서 사용하는 메모리의 크기가 달라지는 것이 아니고, 어떤 데이터 타입으로 변수를 선언했느냐에 따라서 사용하는 메모리의 크기가 달라진다.
표현 가능 범위를 넘어서는 수를 부여하면, 오류가 뜬다.
정수형
데이터 타입 | 메모리의 크기 | 표현 가능 범위 |
byte | 1 byte (8bits) | -128 ~ 127 (2의 8승 즉 256만큼의 수를 표현할 수 있다) |
short | 2 byte (16 bits) | -32,768 ~ 32,767 |
int | 4 byte (32 bits) | -2,147,483,648~2,147,483,647 |
long | 8 byte (64 bits) | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
실수형
float | 4byte | ±(1.40129846432481707e-45 ~ 3.40282346638528860e+38) |
double | 8byte | ±(4.94065645841246544e-324d ~ 1.79769313486231570e+308d) |
문자
char | 2byte | 모든 유니코드 문자 |
자바에서는 문자와 문자열이 다르다. 문자(character)는 글자 하나를 의미하고, 문자열은 글자들의 집합을 의미한다. 그럼 문자열은 메모리를 얼마나 사용할까? 문자열은 문자의 집합이라고 했다. 문자는 char 형이고, char는 2byte의 메모리를 사용한다. 따라서 6글자를 담고 있는 String 타입의 변수는 12바이트의 공간을 차지하게 된다.
참고
'Tech > Interview' 카테고리의 다른 글
접근자의 종류와 기능 (0) | 2022.02.09 |
---|---|
Overriding vs Overloading (0) | 2022.02.09 |
Comments