[Java] 데이터 타입(Data Type)

seonwoo·2026년 1월 27일

Java

목록 보기
3/12

1. 자료형(Data Type)

  • 변수에 저장될 데이터의 종류와 그 데이터가 차지하는 메모리 크기, 그리고 해당 데이터에 대해 수행할 수 있는 연산의 범위를 미리 정의한 것이다.



2. 데이터 저장 단위

  • 비트(bit)
    • 컴퓨터가 데이터를 표현하는 가장 기본적인 단위이다.
    • 0과 1의 2진수 값 하나를 저장할 수 있는 메모리 공간을 의미한다.
  • 바이트(byte)
    • 데이터 처리 또는 문자의 최소 단위이다.
    • 8개의 비트가 모여 하나의 바이트가 된다.




3. 기본 타입(Primitive Type)

  • 정수, 실수, 논리, 문자형 타입을 기본 타입(Primitive Type)이라고 한다.

  • 기본 타입은 정해진 메모리 크기(byte)를 사용해 값을 저장하는데 바이트 크기가 클수록 표현하는 값의 범위가 크다.

    타입자료형범위크기(byte)기본값
    정수형byte-128 ~ 12710
    정수형short-32,768 ~ 3276720
    정수형int-2,147,483,648 ~ 2,147,483,64740
    정수형long-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,80780L
    실수형float±1.4E-45 ~ 3.4E3840.0f
    실수형double±4.9E-324 ~ 1.8E30880.0 또는 0.0d
    논리형booleantrue, false1false
    문자형char0 ~ 65,535 (유니코드)2'\u0000'

public void dataType(){
        // 정수형 변수
        byte bNum ; // 1byte의 정수를 담을 수 있는 변수를 선언한다.
        short sNum; // 2byte의 정수를 담을 수 있는 변수를 선언한다.
        int iNum;   // 4byte의 정수를 담을 수 있는 변수를 선언한다.
        long lNum;  // 8byte의 정수를 담을 수 있는 변수를 선언한다.

        // 실수형 변수
        float fNum; // 4byte의 실수를 담을 수 있는 변수를 선언한다.
        double dNum;    // 8byte의 실수를 담을 수 있는 변수를 선언한다.
		
        // 논리형 변수
        boolean isTrue; // 1byte의 논리 값을 담을 수 있는 변수를 선언한다.

        // 문자형
        char ch1 = 'A';    // 2byte의 문자(유니코드)를 담을 수 있는 변수를 선언한다.
        char ch2 = 65;
        // char ch3 = -65;  에러 발생: char 타입은 0 ~ 65,535 (유니코드)
        
        
        // -----------------------------------------------------------
        // bNum = 128;  // 에러 발생: 1 byte는 -128 ~ 127
        bNum = 127;
        sNum = 32767;   // short 타입은 -32,768 ~ 32767
        iNum = 2147483647;  // int 타입은 -2,147,483,648 ~ 2,147,483,647

        // long 타입은 숫자 뒤에 1L 형태의 리터럴 입력이 필요함
        // long 타입은 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
        lNum = 2147483648L;

        // float 타입은 리터럴 입력이 필요함 ex). xx.123F
        fNum = 3.141592F;
        dNum = 3.14159265358972;    // double 타입은 리터럴 입력이 필요하지 않음
    }




4. 참조 타입

  • 참조 타입은 값 자체가 아닌 객체가 저장된 메모리 주소를 참조하는 타입이다.
  • 변수에는 실제 데이터가 아닌 객체의 참조값이 저장되며 이를 참조 변수라고 한다.
  • 클래스, 배열, 인터페이스 등이 참조 타입에 해당한다.

4-1. 참조 변수(Reference Variable)

Heap 메모리 영역에 생성된 객체의 주소값을 저장하고
이를 통해 객체에 접근할 수 있도록 하는 변수를 참조 변수(Reference Variable)라고 한다.

예를 들어 다음 코드에서

변수 hongleeStack 영역에 생성되며
"Person" 객체는 Heap 영역에 저장된다.

즉, hong, lee"Person" 객체의 주소값을 참조하고 있는 참조 변수이다.




5. 문자열(String)

  • 자바에서 큰 따옴표(”)로 감싼 단어나 문장을 문자열(String)이라고 한다.
  • 문자열은 클래스 타입으로 문자열 타입의 변수는 참조 변수이다.
    public class StrExam {
    	// 문자열
        String name1;    // 문자열을 가리킬 수 있는 '참조 변수'를 선언한다.
        String name2 = "";   // 빈 문자열로 초기화
        String name3 = new String("Hong");	// new 연산자로 문자열 초기화
        String name4 = "Hong";		// 문자열 리터럴
        
        // null 초기화 (아무곳도 참조하지 않는다는 의미)
        String address = null;
    }
    	




Cf). 리터럴(Literal)

소스 코드에서 프로그래머에 의해 직접 입력된 값을 리터럴이라고 한다.

리터럴 종류예시기본 타입비고
정수 리터럴10, 100, 0xFFintL 접미사 사용 시 long
실수 리터럴3.14, 0.5doublef/F 접미사 사용 시 float
문자 리터럴'A', '가'char유니코드 문자 1개
문자열 리터럴"Java"StringHeap의 String Pool에 저장
논리 리터럴true, falseboolean참/거짓 값
null 리터럴null없음참조형에만 대입 가능
profile
Github : https://github.com/melly8954

0개의 댓글