Java

3. 변수의 타입

Jungsoomin :) 2021. 8. 12. 00:54
--- ---

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가지 값만 들어간다.

  1. 객체의 메모리 주소
  2. null (주소 없음)


2. 기본형(primitive type)

  • 8가지의 자료형으로 구분한다.
  • 논리, 문자, 정수, 실수 로 분류된다.
스크린샷 2021-08-12 오전 12 56 53

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