반응형
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
- 비전공자 git
- 해외유학
- 개발일지
- Kenneth Park
- JVM아키텍처
- 유학생대학생활
- jpa
- 미국대학
- 케네스로그
- Java 스터디
- 부산외대
- 파이데이아창의인재학과
- 미국유학생
- California State University Sacramento
- 유학생 준비물
- 케네스
- 개인 프로젝트 개발일지
- 미국유학
- 미국대학생활
- F1학생비자
- 2+2
- 미국유학생활
- 사이드프로젝트
- i-20
- CSUS
- 자바
- 자바 스터디
- 만다라트프로젝트
- 복수학위제도
- java
Archives
- Today
- Total
케네스로그
[Java] 데이터 타입, 범위, 기본값 본문
반응형
Primitive type의 종류, 값의 범위, 기본값
Name | Tags | default value | scope | size | |
boolean | 논리형 | false | true, false | 1 byte | |
byte | 정수형 | 0 | -128 ~ 127 | 1 byte | |
short | 정수형 | 0 | - 32,768 ~ 32,767 | 2 byte | |
int | 정수형 | 0 | - 2,147,483,648 ~ 2,147,483,647 | 4 byte | java8부터 unsigned 가능 (parseUnsignedInt()) |
long | 정수형 | 0L | - 9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
8 byte | 약 20자리 |
float | 실수형 | 0.0F | (3.4 * 10^-38) ~ (3.4 * 10^38) 근사값 | 4 byte | |
double | 실수형 | 0.0 | (1.7 * 10^-308) ~ (1.7 * 10^308) 근사값 | 8 byte | |
char | 문자형 | '\u0000' | 0 ~ 65,535 | 1 byte |
2비트는 2진수 두 자리를 뜻하며, 비트가 늘어날수록 표현가능한 가지수는 2의 제곱으로 늘어납니다.
1비트 = 2가지, 2비트 = 4가지, 3비트는 8가지, 4비트는 16가지 ...
정수형 primitive type 중 byte 자료형의 메모리 크기는 1byte(8bit)입니다. 즉, 1 byte 자료형은 메모리 상 8개의 비트를 통해 값을 표현하며, 2^8(256)가지를 표현할 수 있습니다.. 그렇다면 왜 0~255이 아닌, -128~127일까요?
그것은 컴퓨터에서 음수를 표현하기위해 2's complement 시스템을 사용하기 때문이다. 8자리 중 최상위 비트 자리수는 MSB(most significant bit)로써 부호를 표현하기 위해 사용됩니다. 최상위비트가 1이면 음수, 0이면 양수로 판단합니다. 그럼, 실질적으로 절대적인 값을 표현할 수 있는 비트는 7개입니다. 따라서, 양수 2^7개(127), 0 그리고 음수 2^7개(128)를 표현할 수 있는 것입니다.
java에서 지원하는 정수형 Primitive type은 여러개가 있으며, 각 타입은 값을 표현하기 위해 사용되는 비트 수(사이즈)가 다릅니다. long은 8byte(64 bit)를 차지하며, 이는 2^64 만큼 표현할 수 있다는 뜻이기도 합니다.
💡long으로 표현할 수 없을만큼 큰 정수를 다루는 방법 BigInteger Class
BigInteger는 내부적으로 다중 정수형 배열(int[])형태로 이루어져 있으며, 얼마나 큰 데이터를 다루느냐에 따라 동적으로 메모리 사용량을 달리 합니다.
참조: How much space does BigInteger use? - https://stackoverflow.com/questions/15301249/how-much-space-does-biginteger-use
반응형
'Dev > Java' 카테고리의 다른 글
[Java] 변수의 선언 및 초기화 방법 (0) | 2022.01.30 |
---|---|
[Java] 자바 데이터 타입 - 리터럴, 원시형, 참조형 (0) | 2022.01.30 |
[Java] JVM 아키텍처(3) - 실행 엔진 Execution Engine (0) | 2021.10.13 |
[Java] JVM 아키텍처(2) - 런타임 데이터 영역 Runtime Data Area (0) | 2021.10.13 |
[Java] JDK와 JRE의 비교 (0) | 2021.10.09 |