본문 바로가기

JAVA공부

저장공간의 종류 (변수 타입)

▼기본형 변수

 

   - 논리형 변수 : boolean

  • True/False 값만 저장한다.

   ex)

   boolean flag = true; // 1. 논리형 변수 boolean 으로 선언 및 True 값으로 초기화
   flag = false; // 2. False 값으로도 저장할 수 있다.

 

  - 문자형 변수 : char

  • ‘A’, ‘1’ 와 같은 문자 하나만 저장한다.

   ex)

   char alphabet = 'A'; // 문자 하나를 저장한다.

 

  - 정수형 변수 : byte, short, int, long

 

      1. 0,1,2,99 와 같은 정수형 숫자값을 저장한다.

 

      2.정수형 변수 표현 범위 : 각 변수 표현 범위를 넘는 숫자를 넣게되면 오버플로우가 발생하고, 해당 숫자를 출력해보면 입력값과 다른 값으로 표현된다.

  • byte : -128 ~ 127 범위의 숫자만 저장 가능하다.
  • short (2byte) 는 -32,768~32,767 범위의 숫자만 저장 가능하다.
  • int (4byte) 는 -21억~21억 범위의 숫자만 저장 가능하다.
  • long (8byte) 은 9백경 정도의 매우 큰수를 저장 가능하다.

   ex)

   byte byteNumber = 127; // byte 는 -128 ~ 127 범위의 숫자만 저장 가능하다


   short shortNumber = 32767; // short 는 -32,768~32,767 범위의 숫자만 저장 가능하다.

 

   int intNumber = 2147483647; // int 는 -21억~21억 범위의 숫자만 저장 가능하다.

   long longNumber = 2147483647L; // long 은 숫자뒤에 알파벳 L 을 붙여서 표기하며 매우 큰수를 저장 가능하다.

   //정수형 리터럴 구분값(리터럴 = 데이터값)

   //int 와 long 의 데이터값(리터럴)을 구분하기 위한 구분자로 long으로 담을 숫자뒤에 "L"을 붙인다.

   // 이런식으로 데이터값(리터럴) 뒤에 붙이는 구분값을 “접미사”라고 부른다.

 

- 실수형 변수 :  float, double

 

  1. 0.123, 0.99999 와 같은 소수점 실수값을 저장한다.

 

  2. 실수형 변수의 표현 범위 : 실수도 동일하게 각 변수 표현 범위를 넘는 숫자를 넣게되면 오버플로우가 발생하고, 해당 숫자를 출력해보면 입력값과 다른 값으로 표현된다.

  • float (4byte) : 3.4 * -10^38 ~ 3.4 * 10^38(long 보다 큼)범위의 숫자 저장이 가능하다.
  • double (8byte) : 1.7 * -10^308 ~ 1.7 * 10^308(long 보다 큼)범위의 숫자 저장이 가능하다.

    float 는 4byte 만쓰는데 어떻게 long 보다 더 넓은 범위를 표현가능한가?

    float 라는 단어의 뜻은 “부동” 이라는 의미를 가지고 있으며 소수점이 움직인다는 의미의 “부동 소수점 방식”으로 숫자를 저장한다.

  • 부동 소수점 방식 : 가수와 지수를 구분해서 저장하고 이값들을 곱한 값을 저장(표현)하는 방식

   ex)

   long longNumber = 3.14f; // long < float 자동 형변환 불가

 

   float floatNumber = 0.123f; // float 는 4byte 로 3.4 * 10^38 범위를 표현하는 실수값 


   double doubleNumber = 0.123123123; // double 은 8byte 로 1.7 * 10^308 범위를 표현하는 실수값

   //실수형 리터럴 구분값(리터럴 = 데이터값)

   //float 와 double 의 데이터값(리터럴)을 구분하기 위한 구분자로 float  으로 담을 숫자뒤에 "f"을 붙인다.

   // 이런식으로 데이터값(리터럴) 뒤에 붙이는 구분값을 “접미사”라고 부른다.

 

▼ 참조형 변수 

   - 문자열 : String

  •   1. “Apple”, “텍스트” 와 같은 문장을 저장한다.

      ex) String message = "Hello World"; // 문자열을 저장한다.

 

그 외 : Object, Array, List …

  • 객체, 배열, 리스트와 같은 단일 저장공간에 담을 수 없는 값을 저장한다.

     ex) List<int> alphabet = [0,1,2,3]; // 기본형 변수 여러개를 저장한다.

 

래퍼 클래스 변수- 래퍼 클래스(Wrapper Class) 라는 말 그대로 “기본형 변수를 클래스로 한번 랩핑(감싸는) 변수"

   

   - 기본형 변수 타입명에서 첫글자를 대문자로 바꾸어서 래퍼 클래스를 정의해주었습니다.

 

   -박싱 vs 언 박싱

  • 기본 타입에서 래퍼 클래스 변수로 변수를 감싸는 것을 “박싱” 이라고 부르며
  • 래퍼 클래스 변수를 기본 타입 변수로 가져오는 것을 “언박싱”이라고 부른다.

왜, 굳이 래퍼 클래스를 사용하는 건가?

- 클래스는 객체지향 언어인 Java 의 핵심기능이다. 그렇기 때문에 클래스로 변수를 관리하면 객체지향의 많은 기능을 사용할 수 있게된다!!

 

 

 

      

 

'JAVA공부' 카테고리의 다른 글

숫자와 문자  (0) 2023.10.12
기본형 참조형변수타입 및 래퍼클래스타입 실습  (0) 2023.10.12
변수와 상수  (0) 2023.10.12
주석 및 println 메서드 소개 및 실습  (0) 2023.10.12
Java 개발환경 구성  (0) 2023.10.12