변수의 타입

soomin·2021년 8월 13일
0

Java-Basic

목록 보기
5/13

0. 소개


주로 사용하는 값의 종류, 즉 데이터의 타입은 크게 문자숫자 로 나누어 볼 수 있다.

숫자는 다시금 정수실수로 나누어 볼 수 있다.

문자는 다시금 문자문자열로 나누어 볼 수 있다.

이러한 값의 종류, 데이터의 타입에 따라서 값이 저장될 공간의 크기저장형식을 정의한 것을 자료형 이라고 한다.

정적 언어의 특성에 따라서, 컴파일 시점에 데이터의 타입(값의 종류)이/가 정해져있어야 하므로,
하나의 변수에 여러개의 타입을 저장할 수는 없다.



1. 기본형과 참조형


자료형은 다시금 기본형참조형 으로 나누어볼 수 있다.

기본형 변수는 값 자체를 메모리에 저장하지만, 참조형변수는 메모리 주소를 변수에 저장한다.

기본형 변수 = data 자체
참조형 변수 = 메모리의 주소

즉 참조형 변수는 RAM 의 논리적 공간에 있는 메모리의 일련번호(주소)값을 변수에 저장하고 있는 것이다.

참조형 변수는 연산할 수 없다. 메모리 주소를 담고있므로 연산이 불가능하다.

연산이 일어나는 듯 보인다면, 기본형 변수 사이의 연산이 일어나는 것이다.

기본형(primitive type)

  • 논리형 (boolean [1])
  • 문자형(char[2])
  • 정수형(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가지 값만 들어간다.

  1. 객체의 메모리 주소
  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자리 정밀도
profile
블로그 유목민

0개의 댓글