0.
주로 사용하는 값의 종류, 즉 데이터의 타입은 크게 문자/숫자 로 나누어 볼 수 있다.
숫자는 다시금 정수/실수로 나누어 볼 수 있다.
문자는 다시금 문자/문자열로 나누어 볼 수 있다.
이러한 값의 종류, 데이터의 타입에 따라서 값이 저장될 공간의 크기와 저장형식을 정의한 것을 “자료형” 이라고 한다.
정적 언어의 특성에 따라서, 컴파일 시점에 데이터의 타입(값의 종류)이/가 정해져있어야 하므로, 하나의 변수에 여러개의 타입을 저장할 수는 없다.
1. 기본형과 참조형
"자료형"은 다시금 기본형/참조형 으로 나누어볼 수 있다.
기본형 변수는 값 자체를 메모리에 저장하지만, 참조형변수는 메모리 주소를 변수에 저장한다.
기본형 변수 = data 자체 참조형 변수 = 메모리의 주소
즉 참조형 변수는 RAM 의 논리적 공간에 있는 메모리의 일련번호(주소)값을 변수에 저장하고 있는 것이다.
“참조형 변수는 연산할 수 없다.” 메모리 주소를 담고있므로 연산이 불가능하다.
연산이 일어나는 듯 보인다면, 기본형 변수 사이의 연산이 일어나는 것이다.
기본형(primitive type)
- 논리형 (boolean [1]) , 문자형(char[1]) , 정수형(byte[1], short[2], int[4], long[8]), 실수형(float[4], double[8])
참조형(reference type)
- 기본형을 제외한 모든 타입, 객체의 주소 값을 저장하고 있다.
참조형 변수는 클래스를 타입으로 가진다.
즉, 클래스를 선언하는 행위 자체가 새로운 참조 타입을 스스로 정의하고 있는 것이다.
// 자료형은 기본형과 참조형으로 나눈다.
// 기본형 은 data 자체를 저장하고 있다.
char c = 'A';
// 참조형은 객체의 주소 값을 저장하고 있다.
// 변수가 클래스 타입이라면, 참조형 변수를 선언하는 것이다.
String str = new String("");
1.1 new 연산자
- “new 연산자” 는 클래스의 생성자를 호출하고서 만들어진 객체 주소 값을 리턴하는 연산자이다.
- 여기서 Date 클래스의 생성자를 호출하고 만들어진 객체의 주소 값을 대입연산자로 변수에 저장한다.
// 1. 생성자 호출로 객체가 생성된다.
// 2. new 연산자의 연산으로 객체 주소가 반환 된다.
// 3. 연산자 순서 상 대입연산자가 마지막이므로 객체 주소가 변수에 저장된다.
Date today = new Date();
참조형 변수에는 2가지 값만 들어간다.
- 객체의 메모리 주소
- null (주소 없음)
2. 기본형(primitive type)
- 8가지의 자료형으로 구분한다.
- 논리, 문자, 정수, 실수 로 분류된다.
boolean 을 제외한 모든 기본형은 서로 간의 연산이 가능하다. ( 전부 숫자로 표현 가능 ) int 는 CPU 가 가장 효율적으로 처리할 수 있는 타입이다.
정수 값의 크기는 -2 의 n-1 승 ~ 2 n-1 승 -1
범위를 가진다.
n 은 bit 를 의미하며, 1byte 는 8bit
이다.
int 타입 = 2 의 32-1 승 ~ 2의 32-1 승 -1 의 범위 = 약 -21억 ~ 21억
2.1 정수형의 선택 요령과 실수형의 선택요령
- 정수형은 7~9 자리 부터는 연산결과 까지 고려하여 long 을 사용하는 것이 좋다.
- 실수형은 부동소수점의 오차로 인하여 7자리가 넘어갈 경우 double 을 사용하는 것이 좋다.
- float : 7자리 정밀도
- double : 15자리 정밀도
'Java' 카테고리의 다른 글
5. printf() (0) | 2021.08.13 |
---|---|
4. 상수와 리터럴 (0) | 2021.08.13 |
2. 변수 (0) | 2021.08.12 |
1. 주석 (0) | 2021.08.10 |
0. 특징, JVM, (0) | 2021.08.10 |