ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2. 자바 데이터 타입, 변수 그리고 배열
    Java 2020. 11. 25. 14:33

    목표

    자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다.

    학습할 것

    • 프리미티브 타입 종류와 값의 범위 그리고 기본 값
    • 프리미티브 타입과 레퍼런스 타입
    • 리터럴
    • 변수 선언 및 초기화하는 방법
    • 변수의 스코프와 라이프타임
    • 타입 변환, 캐스팅 그리고 타입 프로모션
    • 1차 및 2차 배열 선언하기
    • 타입 추론, var

    1. 프리미티브 타입 종류와 값의 범위 그리고 기본 값

    • 실제 값이 저장되는 공간으로 Stack 메모리 공간에 저장되며 범위를 벗어날 경우 컴파일 에러가 발생한다.
    • 객체가 타입이 아니고, 기본값이 있어서 Null 이 존재하지 않는다.
    • 기본형 타입에 Null 을 넣고 싶다면 Wrapper Class 를 사용해야 한다.
      Type Default value Size Range of Values
    Integer byte 0 1 byte -2^7 ~ 2^7-1 (-128 ~ 127)
    short 0 2 byte -2^15 ~ 2^15-1 (-32768 ~ 32767)
    int (default) 0 4 byte -2^31 ~ 2^31-1 (-2147483648 ~ 2147483647)
    long 0 8 byte -2^63 ~ 2^63-1 (-9223372036854775808 ~ 9223372036854775807)
    Floating-Point float 0.0 4 byte 소수점 7 자리까지
    double (default) 0.0 8 byte 소수점 16 자리까지
    Char char \u0000 2 byte (Unicode)  0 ~ 65,535
    Bool boolean false 1 byte  true, false

     

     


    2. 프리미티브 타입과 레퍼런스 타입

    • 기본형 타입을 제외한 타입들이 모두 레퍼런스 타입이다.
    • 프리미티브 타입은 변수의 실제값을 메모리에 직접 저장한다.
    • 레퍼런스 타입은 객체의 주소를 저장한다. (GC 의 관리 대상) 
    • ex) Class, Interface, Array, enum, Integer, String, etc ...
    • 프리미티브 타입과 달리 스택영역에는 변수의 이름만 저장하고 객체의 주소를 힙영역에 저장하여 포인터로 가르킨다.

     

     


    3. 리터럴

    • 데이터 그 자체를 의미한다. 변수에 넣는 변하지 않는 데이터를 의미한다.
    • 프로그램에서 직접 표현한 값이다.
    • 소스 코드의 고정된 값을 대표하는 용어이다.
    • 정수, 실수, 문자, 논리, 문자열 리터럴이 존재한다.

     

     


    4. 변수 선언 및 초기화하는 방법

    • 변수란 값을 저장할 수 있는 메모리 공간에 붙여진 이름이다.
    • 변수를 선언하면 메모리 공간이 할당되고 할당된 메모리 공간에 이름이 붙는다.
    • 변수를 선언하고 값을 저장하는 것을 변수 초기화라고 한다.
    • 변수, 배열을 선언하거나 메모리를 할당하면 쓰레기 값이 다시 사용되지 않도록 반드시 초기화해야 한다.

     

     


    5. 변수의 스코프와 라이프타임

     

    • 인스턴스 변수
      • Scope: throughout the class except in static methods
      • Lifetime: until the object stays in memory

     

    • 클래스 (스태틱) 변수
      • Scope: throughout the class
      • Lifetime: until the end of the program or as long as the class is loaded in memory 

     

    • 지역 (로컬) 변수
      • Scope: within the block in which it is declared
      • Lifetime: until the control leaves the block in which it is declared

     

     


    6. 타입변환, 캐스팅 그리고 타입 프로모션

    • 타입캐스팅이란 프리미티브 타입으로 선언한 변수메모리에 다른 유형의 데이터를 할당하는 경우를 말한다.
    • 타입 프로모션이란 크기가 더 작은 자료형을 더 큰 자료형에 대입할 때, 자동으로 작은 자료형이 큰 자료형으로 변환되는 현상이다.
    • 클래스에도 타입 변환이 존재한다.
    • 기본적으로 클래스 타입들은 변환이 불가능하지만, 다형성이라는 성질을 통해서 타입 변환이 가능하다.

     

     


    7. 1차 및 2차 배열 선언하기

    • 변수는 하나의 데이터를 저장하지만, 배열은 여러개의 데이터들을 인덱스 구조에 저장한다.
    • 배열의 길이는 한 번 생성하면 줄이거나 늘일 수 없고 같은 타입들만이 배열의 원소로 사용된다.
    int[] a = { 1, 2, 3 };
    int[][] b = {{1, 2, 3}, {3, 4, 5}, {5, 6, 7}}; 

     

     


    8. 타입 추론, var

    • 타입 추론이란 타입이 안 정해진 변수 타입을 컴파일러가 유추하는 기능이다.
    • var 는 자바 10부터 추가되었다.
    • 지역변수이면서 선언과 동시에 초기화가 반드시 되어야한다.
    var msg = "Hello, World !";

     

     

     

     


    ※ 출처

    velog.io/@roeniss/자바-기초지식-정리#2주차---데이터-타입

    drinkcoldbrew.tistory.com/2

    www.notion.so/2-00ffb2aeb41d450aa446675b8a9e91d5

     

    * 스터디

    github.com/whiteship/live-study/issues/2

    'Java' 카테고리의 다른 글

    4. 제어문  (0) 2020.12.04
    3. 연산자  (0) 2020.11.28
    1. JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가  (0) 2020.11.11
    BufferedReader , BufferedWriter  (0) 2020.08.28
    java - 14 ) 컬렉션 프레임워크  (2) 2020.08.28
킹수빈닷컴