1 minute read

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

종류 타입 범위 기본값
byte(1 byte/8 bits) 정수타입 -2^7 ~ 2^7-1(-128 ~ 127) 0
short(2 bytes/16bits) 정수타입 -2^15 ~ 2^15-1(-32,768 ~ 32,767) 0
int(4 bytes/32 bits) 정수타입 -2^31 ~ 2^31-1(-2,147,483,648 ~ 2,147,483,647) 0
long(8 bytes/64 bits) 정수타입 -2^63 ~ 2^63-1(-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807) 0L
float(4 bytes/32 bits) 부동소수점 타입 0x0.000002P-126f ~ 0x1.fffffeP+127f(6 ~ 7 decimal digits) 0.0F
double(8 bytes/64bits) 부동소수점 타입 0x0.0000000000001P-1022 ~ 0x1.fffffffffffffP+1023(15 decimal digits) 0.0
boolean(1 bit) 불리언타입 true or false false
char(2 bytes/16 bits) 정수타입 0~2^15-1(\u0000 ~ \uffff) \u0000

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

  • primitive type:
    사용하기 전 반드시 선언되어야 하며, OS에 따라 길이가 변하지 않는다. 비객체 타입이라서 null 로 초기화 불가능하다. 메모리상에 할당되는 각각의 공간에 실제 값이 들어가는 타입으로 stack 영역에서 생성과 종료된다. 모두 소문자, 산술 연산이 가능, 사용 전 반드시 선언되어야 한다.

  • reference type:
    메모리상에 다른 것을 참조하기 위한 주소 값이 들어가 있는 타입이다. java.lang.Object 클래스를 상속하는 모든 클래스, 클래스 타입, 인터페이스 타입, 배열 타입, 열거 타입, stack 영역에는 참조 값만 있고, 실제 메모리는 heap 영역에 존재한다. primitive type을 제외한 타입들이 모두 참조형 타입. 문법상으로는 에러가 없지만 실행시켰을 때 에러가 나는 런타임 에러가 발생한다.

리터럴

literal 변수에 넣는 변하지 않는 데이터, 컴파일 시 프로그램 내에 정의되어 있는 그대로 정확히 해석되어야 할 값을 의미한다. 리터럴 종류로는 정수형, 실수형, 논리형, 문자형, 문자열, null 이 있다. 10, 1, 10L, 0.1234, 10e3, 0.1F, 0.123D, true, ‘A’, ‘\u0000’, “”, String

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

  • 선언하는 방법: 데이터 타입 변수명;
int i; 
double d; 
char c;
  • 초기화 하는 방법: 변수명 = 데이터(초기화 값);
i = 0;	
d = 10d;
c = c;

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

변수타입 스코프 라이프타임
클래스 변수 클래스 전체 프로그램이 종료될 때까지
인스턴스 변수 static method를 제외한 클래스 전체 메모리에서 사용 가능할 때까지
로컬 변수 method 내 블록을 떠나기 전까지

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

  • 타입 변환: 하나의 타입을 다른 타입으로 바꾸는 것
  • 캐스팅(명시적 형변환): 변환할 타입을 명시해서 형변환 하는 것
  • 타입 프로모션(묵시적 형변환): 컴파일러가 자동으로 해주며, Upcasting만 가능하다.

1차 및 2차 배열 선언하기

  • 1차열 배열 선언:
int iArr[];
int [] iArr = new int [3];
  • 2차열 배열 선언:
int[][] iArr = new int[2][3];
int[][] iArr = {{1,2}, {3,4}};

타입 추론, var

  • 타입 추론: 코드에는 타입이 정해져 있지 않지만, 컴파일러가 데이터 타입을 유추하는 것
  • var: Java 10부터 타입 추론을 지원하는 var 키워드가 추가되었으며, 이 키워드는 로컬 변수이면서 선언과 동시에 초기화가 필수적으로 요구된다.

live-study with whiteship