티스토리 뷰
1. 기본(원시) 타입
- 정수, 실수, 문자, 논리 리터널을 직접 저장하는 타입
값의 종류 | 기본 타입 | 메모리 사용 크기 | 저장되는 값의 범위 | |
정수 | byte | 1 byte | 8 bit | -2⁷~(2⁷-1)(-128~127) |
char | 2 byte | 16 bit | 0~2¹⁶ -1 (유니코드: \u0000~\uFFFF, 0~65535) | |
short | 2 byte | 16 bit | -2¹⁵~(2¹⁵-1)(-32,768~32,767) | |
int | 4 byte | 32 bit | -2³¹~(2³¹-1)(-2,147,483,648~2,147,483,647) | |
long | 8 byte | 64 bit | -2⁶³~(2⁶³-1) | |
실수 | float | 4 byte | 32 bit | (+/-)1.4E-45 ~ (+/-)3.4028235E38 |
double | 8 byte | 64 bit | (+/-)4.9E-324 ~ (+/-)1.7976931348623157E308 | |
논리 | boolean | 1 byte | 8 bit | true, false |
* 비트(bit) : 메모리에 0과 1을 저장하는 최소 기억 단위
* 바이트(byte) : 8개의 비트
2. 정수 타입
정수 타입 | byte | char | short | int | long |
바이트 수 | 1 | 2 | 2 | 4 | 8 |
* 프로그램이 실행하는 도중에 변수의 값이 변경되어 저장할 수 있는 값의 범위를 초과하면 최소값부터 다시 반복 저장
byte타입
색상 정보 및 파일 또는 이미지 등의 이진(바이너리) 데이터를 처리할 때 주로 사용
정수 타입 중 가장 작은 범위의 수를 저장
char타입
유니코드 저장(한글자만)
유니코드는 음수가 없기 때문에 char타입의 변수에는 음수값을 저장할 수 없음
작은 따옴표(')로 감싼 문자를 대입하면 해당 문자의 유니코드가 저장
int 타입 변수에 char 타입 변수를 저장하면 유니코드를 알 수 있음
char c = 'A'
int uniCode = c;
char 타입의 변수 초기화 시 공백(유니코드:32) 하나를 포함해야함(빈 문자를 대입하면 컴파일 에러 발생)
int타입
정수값을 저장하는 데이터 타입
8진수, 10진수, 16진수 저장 가능
int var1 = 10; //10진수
int var2 = 012; //8진수
int var3 = 0xA; //16진수
long타입
정수값을 저장하는 데이터 타입
수치가 큰 데이터를 다루는 프로그램에서는 long타입이 필수적으로 사용 (은행 및 우주와 관련된 프로그램들)
변수를 초기화 하거나 int 타입의 저장 범위를 넘어서는 큰 정수일 경우
-> 정수값 뒤에 소문자 'l' 또는 대문자 'L'를 붙여 8byte 정수 데이터임을 컴파일러에게 알려주어야 함
그렇지 않으면 컴파일 에러 (초기화 시에는 에러나지 않음)
long var1 = 10;
long var2 = 20L;
//long var3 = 10000000000000; 컴파일 에러
ong var4 = 10000000000000L;
3. 실수 타입
실수 타입 | float | double |
바이트 수 | 4 | 8 |
정수 타입과 다른 저장 방식인 부동 소수점(floating-point)방식으로 저장되어 훨씬 큰 범위의 값을 저장할 수 있음
실수 리터럴의 기본 타입을 double로 간주
-> 실수 리터럴을 float 타입 변수에 그냥 저장할 수 없기 때문
float 타입 변수에 저장하려면 리터럴 뒤에 'f' 또는 'F'를 붙여야 함
double var1 = 3.14;
//float var2 = 3.14; 컴파일 에러(Type mismatch)
float var3 = 3.14F;
10의 지수를 나타내는 E or e를 포함한 저장방법 (실수 타입 변수에 저장할 수 있음)
int var6 = 3000000; //3000000
double var7 = 3e6; //3000000.0
float var8 = 3e6F; //3000000.0
double var9 = 2e-3; //0.002
double타입이 float타입보다 두배 이상 정밀하게 값을 저장
//정밀도 테스트
double var4 = 0.1234567890123456789; //0.12345678901234568
float var5 = 0.1234567890123456789F; //0.12345679
4. 논리 타입
boolean 타입은 1byte(8bit)로 표현되는 논리값(true/false)을 저장할 수 있는 데이터 타입
두 가지 상태값을 저장할 필요성이 있을 셩우에 사용
상태값에 따라 조건문, 제어문의 실행 흐름을 변경하는데 주로 이용
public class BooleanExample {
public static void main(String[] args) {
boolean stop = true;
if(stop) {
System.out.println("중지합니다.");
} else {
System.out.println("시작합니다.");
}
}
}
도서 '이것이 자바다' 참조
'JAVA > JAVA' 카테고리의 다른 글
[JAVA] 패키지 (0) | 2021.12.02 |
---|---|
[JAVA] 데이터 타입 분류 (0) | 2021.10.05 |
[JAVA] 강제 타입 변환 (0) | 2021.09.06 |
- Total
- Today
- Yesterday
- 모던 웹을 위한 JavaScript jQuery 입문
- 리눅스
- MSSQL Server 기본에서 실무까지
- 스프링 부트 퀵스타트
- MSSQL
- JAVA 기본기 다지기 프로젝트
- 손에 잡히는 10분 SQL
- 모던 웹을 위한 JavaScript + jQuery 입문
- MS SQL Server 기본에서 실무까지
- 스프링부트 퀵스타터
- 스타트 스피링 부트
- 스타트 스프링 부트
- 스프링부트 퀵 스타트
- 배워서 바로 쓰는 스프링 부트 2
- 프로시저
- JavaScript
- Vue.js
- 리액트를 다루는 기술
- Python
- springboot
- 자바스크립트&제이쿼리
- 스프링부트 퀵스타트
- Linux
- 강제 타입 변환
- Java
- 자바
- 처음 배우는 스프링 부트2
- 스프링부트퀵스타트
- MSSQL 기본에서 실무까지
- 모든 웹을 위한 JavaScript jQuery 입문
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |