프로그래밍/JAVA

[JAVA]자바 자료형(Data Type) 종류와 의미

ro-co 2022. 10. 5. 14:59

안녕하세요 로코입니다.😃

 

이전 포스팅에서 public class static main 등등의 의미를 하나씩 알아보았느데요 

그중에서 String[] 이 있었는데 제가 문자열을 가리키는 자료형 배열이라고 해서 궁금하신 분들이 있을 것 같아서 

정리를 한번 해보았습니다. 

 

자바 자료형(Data Type) 이란?  

자바에서는 모든 변수에 타입을 을 정의해줘야 하며, 변수가 가지는 타입에 따라 담을 수 있는 값의 종류가 달라집니다.

변수에 저장하는 형과 값이 맞지 않는 경우 변수는 값을 가질 수 없고 값도 변수에게 전달될 수 없습니다. 

변수 타입은 크게 기본형(Primitive Type)과 참조형(Reference Type)으로 구분할 수 있습니다. 

 

 

기본 자료형 (Data Type)

기본형은 실제 값(데이터)을 담을 수 있는 변수의 타입입니다. 

총 8개로 구분하며 크게는 논리형, 문자형, 정수형, 실수형으로 구분할 수 있습니다. 

 

논리형 변수 타입 : blooean

public class Main {
    public static void main(String[] args) {

        boolean a = true;
        boolean b = false;

        System.out.println("논리형 타입: " + a);

    }

}

논리의 참과 거짓을 의미하며 true, false 하나의 값을 저장합니다.

 

문자형 변수 타입 : char

public class Main {
    public static void main(String[] args) {

        char a1 = 'A';
        char a2 = 65;
        char a3 = 0x0041;

        System.out.println("문자형 : " + a1);
        System.out.println("10진수형 : " +a2);
        System.out.println("16진수형 : " +a3);

    }

}

하나의 문자를 작은따옴표(')로 감싼 것을 문자 리터럴이라고 합니다. 문자 리터럴 은유 니코 드로 변환되어 저장됩니다.

유니코드는 세계 각국의 문자를 2 byte로 표현할 수 있는 숫자(0~65535)로 매핑한 국제 표준 규약입니다. 

자바는 이러한 유니코드를 저장할 수 있도록 2byte 크기인 char 타입을 제공합니다.

 

정수형 변수 타입 : byte, short, int, long

public class Main {
    public static void main(String[] args) {

        byte b = 127;
        short s = 32767;
        int i= 2147483647;
        long l = 9223372036854775807L;

        System.out.println("byte : " + b);
        System.out.println("short : " +s);
        System.out.println("int : " + i);
        System.out.println("long : " + l);

    }

}

정수(Integer)로 표현되는 숫자를 저장합니다. 

※ long 타입의 변수는 데이터 값 끝에 L로 표기를 해줘야 합니다.

 

실수형 변수 타입 : double, float

public class Main {
    public static void main(String[] args) {

        double d = 127.234;
        float f = 3.1234567f;

        System.out.println("byte : " + d);
        System.out.println("float : " +f);

    }

}

실수(Floating point)로 표현되는 숫자를 저장합니다. 

※ float 타입의 변수는 데이터 값 끝에 f로 표기를 해줘야 합니다.

 

 

참조형 타입(Reference Type)

참조형 타입은 기본형 타입을 뺀 모든 형태(Type)를 참조형 타입으로 볼 수 있습니다.

코드를 작성할 때 기본형 이외에 수많은 변수 형태들을 만들어내기 때문에 딱 국한 지어 말을 할 수 없기 때문입니다.

 

그렇게 범주를 나눠본다면 아래와 같습니다.

  • 배열(array [])
  • 열거(enum)
  • 클래스(class)
  • 인터페이스(interface) 

자바에서 프로그래밍을 할 때 문자를 String으로 많이 사용하는데, String은 기본형처럼 사용하지만 실제는 참조형 변수입니다.

 

참조형의 특징

  • 참조형 변수 안에는 값들을 저장하고 있는 객체를 가리키는 주소를 가지고 있습니다.
  • 예) 기본형처럼 직접 값(a)을 담는 A라는 변수가 아닌, a를 가리키고 있는 주소를 가지고 있는 변수가 생성됩니다.
  • 힙 영역에 저장합니다.

스택과 힙

스택 :기본형 타입 변수들과 그 값들이 함께 저장된다.- 힙 영역에 저장되어 있는 참조형 타입 변수들의 reference(주소)가 저장된다.- 정적인 것들이 저장되는 곳

 

힙 :참조형 타입의 변수들이 저장된다. (new연산자를 통해 생성된 인스턴스 변수가 저장된다.)  - (cf. 인스턴스 변수의 reference는 스택에 저장)- 동적인 것들이 저장되는 곳

 

 

그럼 또 좋은 포스팅으로 돌아오겠습니다

긴 글 읽어주셔서 감사합니다😊😊😊