ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] 자료형
    Java 2022. 7. 8. 21:33

    메모리 공간은 데이터를 저장하기 위해 생성한다. 이러한 메모리 공간은 목적에 따라 크기와 특징이 다른데, 이를 자료형이라고 한다. 즉, 메모리 공간의 자료형에 따라 저장할 수 있는 값의 종류와 특징이 결정된다.

     

     

     

    자료형 선언시 주의할 점

     

      1) 자료형은 반드시 사용하기 전에 선언해야함

      2) 자료형은 반드시 한 번만 선언해야함

         -> 변수의 자료형이 처음 선언되면 메모리에는 선언된 자료형의 데이터만 저장할 수 있는 공간이 만들어지는데,

              메모리에서 한 번 만들어진 공간은 사라질 수는 있어도 데이터를 저장하는 기능은 변경할 수 없기 때문이다.

     

     

     

    이름규칙

     

      · 변수, 상수, 메서드 공통

         1) 영문 대소문자와 한글 사용가능             

              ex) abc, ABC, aBc, 가나다

         2) 특수문자는 밑줄과 달러 표기만 가능

              ex) $abc, _abc, ab_c, $abc_

         3) 아라비아 숫자를 사용할 수는 있지만, 첫 글자로는 불가능

              ex) a3bc, ab3c

         4) 자바에서 사용하는 예약어는 사용불가

              ex) int(X), break(X), public(X), static(X)

     

     

    자료형의 종류

    구분 저장값 자료형
    기본자료형 참, 거짓: true, false
    정수: ····, -1, 0, 1, ····
    실수: -5, 4, 1, 7, ·····
    문자(정수): 'A', 'b', ····
    boolen
    byte, short, int, long
    float, double
    chaar
    참조자료형 객체: Object 배열, 클래스, 인터페이스

    -> 똑같은 정수를 저장하는데 자료형이 4개인 이유: 메모리를 효율적으로 사용하기 위해

     

     

     

    자바 메모리의 구조

    클래스영역
    정적영역
    상수영역
    메서드영역
    스택영역 힙영역

    · 스택: LIFO 구조로 변수들이 저장되는 공간. 기본자료형이든 참조자료형이든 상관없이 모든 지역변수가 위치하는 영역

    · 힙: FIFO 구조로 객체들이 저장되는 공간. 참조 자료형 변수가 가리키는 실제 데이터

     

     

     

    실제 데이터값의 저장위치

     

      · 기본 자료형: 스택메모리에 생성된 공간에 실제 변수값을 저장

      · 참조 자료형: 실제 데이터값은 힙 메모리에 저장하고, 스택 메모리의 변수공간에는 실제 변수값이 저장된                                                  힙 메모리의  위치값을 저장

     

     

     

    기본 자료형의 멤모리 크기와  저장할 수 있는 값의 범위

     

      · 1byte: boolean, byte

      · 2byte: short, char

      · 4byte: int, float

      · 8byte: long, double

        -> byte < short / char < int < long < float < double

      

      · 정수 리터럴의 자료형 결정

         byte a = 130; (오류 발생)

         -> byte에 저장할 수 없는 범위의 정수값이 입력되면 int로 인식( byte = int )

      · 실수 리터럴의 자료형 결정

         float a = 3.5; (오류 발생)

         -> 실수 리터럴은 기본적으로 double로 인식 ( float = double ) 

     

     

     

    기본 자료형간의 타입변환

     

      · 캐스팅 방법 1. 자료형

    int value1 = (int)5.3;		// 5
    long value2 = (long)10; 	// 10
    float value3 = (float)5.8;	// 5.8
    double value4 = (double)16;	// 16.0

     

      · 캐스팅 방법 2. L, F

    long value5 = 10L;		// 10
    long value6 = 10l;		// 10
    float value7 = 5.8F;		// 5.8
    float value8 = 5.8F;		// 5.8

     

     

     

    캐스팅

     

      · 자동형변환: 업캐스팅, 크기가 작은 자료형을 큰 자료형에 대입

                             -> 어떤 데이터 손실도 발생하지 않기 때문에 타입변환 코드를 넣지 않아도 컴파일러가 자동으로 형변환

      · 명시적형변환: 다운캐스팅, 큰 자료형을 작은 자료형에 대입

                                -> 데이터 손실이 발생할 수 있기 때문에 컴파일러가 자동형변환을 하지 않음

      · 업캐스팅이 아님에도 byte 및 short 자료형에 저장할 수 있는 범위 내의 정수리터럴값이 대입될 때는 자동형변환이

         각각의 자료형으로 수행

     

    // 자동타입변환
    float a = 3;		// (int) -> (float) 업캐스팅 3.0
    long b = 5;		// (int) -> (long) 업캐스팅 5
    double c = 7;		// (int) -> (double) 업캐스팅 7.0
    byte d = 9;		// (int) -> (byte) 9
    short e - 11;		// (int) -> (short) 11
    
    // 수동타입변환
    byte a = (byte)128	// (int) -> (byte) 다운캐스팅 -128
    int a = (int)3.5	// (double) -> (int) 다운캐스팅 3
    float c = (float)7.5	// (double) -> (float) 다운캐스팅 7.5

     

     

     

    자료형 연산

     

      · 같은 자료형 간의 연산 결과

        ex) byte + byte = int     /     short + short = int

      · 다른 자료형 간의 연산 결과

        ex) byte + short = int     /     int + float = float     /     long + float = float

     

     

      

    728x90

    'Java' 카테고리의 다른 글

    [Java] Set 성적관리 프로그램  (0) 2022.09.19
    [Java] ArrayList 성적관리 프로그램  (0) 2022.09.19
    [Java] 참조 자료형  (0) 2022.07.09
    [Java] 제어문  (0) 2022.07.08
    [Java] 연산자  (0) 2022.07.08
Designed by Tistory.