ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java | Data Type 자료형
    JAVA/JAVA 2020. 1. 15. 22:32

    Data Type 자료형

    컴퓨터에게 어떤 데이터를 얼마만큼의 크기로 저장할 것인가를 지정해주는 것

    문자열, 숫자, 논리적인 값 8가지가 있음

    ↔ JavaScript 에서는 변수 선언시 자료형을 지정하지 않음(TypeScript에서는 함)


    정수 자료형

    종류 설명
     byte 저장공간 크기 1byte, (-127 ~ +128)만 저장 가능
    자바의 기본 데이터 전송 단위, ex) 채팅 프로그램 데이터 전송
     short 저장공간 크기 2byte, (-32768 ~ +32767) 저장 가능
     int 저장공간 크기 4byte, (-2147483648 ~ +2147483647) 저장 가능
    자바의 기본 연산 단위(+, -, * , / 산술연산)
    형변환과 연관
     long 저장공간 크기 8byte,
    데이터를 long형으로 저장하기 위해서는 저장하는 값 뒤에 L or l을 써줘야 함

    사용례

    public class VarTest {
        public static void main(String[] args) {        
            byte b = 23;
            //변수 b를 선언하면서 23값을 저장
    
            short c = 12;
            //byte로도 저장할 수 있는 숫자를 short로 저장하면 메모리 낭비 발생
    
             int sum = b + c;
            /* b + c = 35이므로 byte에도 충분히 담길 수 있지만,
            b + c 에서 산술연산자가 사용되고 있고
            java의 기본 연산 단위는 int이기 때문에
            int 자료형을 사용해야 함 */
    
             long num = 1234567890000L;
             /* int 저장 범위를 넘어서는 수이기 때문에 long형으로 저장해야함
                long형으로 저장하기 위해서 숫자 마지막에 L을 작성 */
        }
    }

     

    ※ 산술연산자를 사용할 때에는 꼭 int 자료형 사용 !!

     

    ※ 예제에서는 변수의 사용을 생략했는데, 변수를 선언만 하고 사용하지 않으면
    이클립스에서 사용되지 않는 변수라는 알림을 표시해줌

     

    ※ Type mismatch ERROR
    변수의 자료형과 맞지 않는 값을 저장했을 때 발생하는 에러


    실수 자료형

    종류 설명
     float 저장공간 크기 4byte
    실수를 float형에 저장하기 위해서는 숫자 마지막에 F or f를 작성해야 함
    소수점 일곱 번째 자리까지 저장 가능
    float f = 5.3 X, float f = 5.3F O
     double 저장공간 크기 8byte
    자바의 기본 실수 저장 자료형, double d = 5.3 O

    ※ 정수자료형 / 실수자료형 데이터 저장 공간 크기 비교
    byte 1 < short 2 < int 4 < long 8 < float 4 < double 8
    float, double은 소수점 이하의 수를 가지기 때문에 long보다 float의 저장 공간이 더 큼

     

    ※ 5.3이 float에 저장되지 못하는 이유
    자바에서 실수는 기본적으로 double형으로 저장되는데
    double이 float보다 큰 값을 다루기 때문에 float에 5.3을 바로 저장할 수 없음
    → float f = 5.3F 로 작성해야 함

    사용례

    public class VarTest2 {
        public static void main(String[] args) {
            // 실수값 저장
            float f = 5.3F;
            double f2 = 5.3;
            System.out.println("f값: "+f+", f2값: "+f2);
            // f값: 5.3, f2값: 5.3
    
            // float, double 차이점
            float m_float = 123456.789123F;
            double m_double = 123456.789123;
            System.out.println("m_float 값: "+m_float+", m_double 값: "+m_double);
            // m_float 값: 123456.79, m_double 값: 123456.789123
        }
    }

    ※ float 자료형에는 소수점 두 번째 자리까지만 저장 가능


    BOOLEAN 논리형

    true / false 값을 저장할 수 있는 자료형

    저장공간 크기 1byte

    public class VarTest3 {
        public static void main(String[] args) {
            boolean b = true; // 소문자만 입력
            boolean c = 2>3; // 관계연산자로 true/false값 저장 가능
    
            System.out.println("b값: "+b+", c값: "+c);
            // b값: true, c값: false
        }
    }

    문자 자료형

    종류 설명
    char 저장공간 크기 2byte
    character의 준말, '문자 하나' 저장
    ' '(작은 따옴표) 사용
    String 여러 개의 문자로 이루어진 '문자열' 저장
    " "(큰 따옴표) 사용
    String은 자바의 기본자료형이 아님, 참조형(reference) 또는 클래스형이라고 함
    → 기본 자료형 8가지에 포함되지 않음

    ↔ JavaScript는 ' ', " " 구분 X

    ASCII 코드

    (American Standard Code for Information Interchange, 미국 정보 교환 표준 부호)

    컴퓨터는 문자를 인식할 수 없기 때문에 문자를 숫자로 변환하기 위해 만들어진 코드

    • 0 ~ 255로 알파벳, 특수문자 등 가장 기본적인 문자 표현 가능
    • A => 65, B => 66 ,,,
    • a => 97, b => 98 ,,,
    • 16진수 '\u0000'~'\uFFFF' 표기 가능
      ex) 10진수 : 45 → 8진수 : 045, 16진수 0x45

    ※ 문자 인코딩(Encoding) : 문자를 정해진 코드 값으로 변환하는 것
    문자 디코딩(Decoding) : 코드 값을 문자로 변환하는 것

    UNICODE 유니코드

    전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준
    유니코드 협회(Unicode Consortium)가 제정

    • 비영어권 사람들이 자기 나라 언어로 개발 가능하도록 설계된 코드
    • 한글 및 다른 언어를 사용할 수 있음
    • 0 ~ 65535 로 여러가지 언어 표현 가능

    문자열 결합 +

    문자열과 문자열을 연결할 때 +연산자를 사용하면 두 문자열을 합칠 수 있음
    ex) "ab" + "cd" = "abcd"

    사용례

    public class VarTest3 {
        public static void main(String[] args) {
            char d = 'A';
            char d2 = 65; 
            // 아스키값으로도 문자 표현 가능, char 자료형에 담긴 숫자는 문자의 코드 값을 뜻함
    
            char d3 = '\u0041';
            /* 16진수 값을 입력 받아서 문자 저장, '\u0000'~'\uFFFF'로 표기
             10진수 : 45, 8진수 : 045, 16진수 0x45 */
            System.out.println("d값: "+d+", d2값: "+d2+", d3값: "+d3);
            // d값: A, d2값: A, d3값: A
    
             String s1 = "식별자 자바기초 문법";
            String s2 = "변수, 자료형, 연산자";
            String s3 = s1 + "" + s2;
            System.out.println("s3: "+s3);
            // s3: 식별자 자바기초 문법 변수, 자료형, 연산자
        }
    }

    Java에서 변수를 저장할 때는 변수에 담기는 데이터의 자료형을 꼭 지정해주어야 합니다.

    10버전부터는 자료형을 구분하지 않는 var도 지원한다고 하지만
    자료형을 정확히 지정해주어야 저장공간이 낭비되지 않고

    여러 사람과 코드를 공유할 때 변수의 가독성을 높일 수 있습니다.

    'JAVA > JAVA' 카테고리의 다른 글

    Java | Casting 형변환  (0) 2020.01.16
    Java | Operator 연산자  (0) 2020.01.16
    Java | Variable 변수, Scope, Constant 상수  (0) 2020.01.15
    Java | 기본 문법  (0) 2020.01.15
    Java | 이클립스 Package 관리  (0) 2020.01.15

    댓글

Designed by Tistory.