본문 바로가기
IT 이야기/Java

[Java Study] 2일차 타입(프리미티브 타입) 변수

by Dblog 2020. 11. 21.
728x90

학습내용

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

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

프리미티브 타입(기본형 타입)은 8개 타입이 있습니다. (boolean, byte, short, int, long, float, double, char) 타입은 논리형, 정수형, 실수형, 문자형의 4가지 카테고리로 나눌수 있습니다.

  타입 메모리 크기 기본 값  데이터 범위
논리형  boolean 1 byte false true,false
정수형  byte 1 byte 0 -128 ~ 127
 short 2 byte 0  -32,768 ~ 32,767
 int 4 byte 0  -2,147,483,648 ~ 2,147,483,647
 long 8 byte 0L -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
실수형  float 4 byte 0.0F (3.4 X 10-38) ~ (3.4 X 1038) 
 double 8 byte 0.0 (1.7 X 10-308) ~ (1.7 X 10308)
문자형  char 2 byte '\u0000' 0 ~ 65,535

 

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

프리미티브 타입을 제외한 타입을 레퍼런스 타입으로 볼 수 있습니다. 프리미티브 타입은 메모리에 값이 존재하지만 레퍼런스 타입은 이름그대로 메모리에는 참조값이 저장되어 있습니다.

 

리터럴

리터럴은 '변할의 값이 변하지 않는 데이터' 프로그램에서 직접 표현한 값입니다. (하드 코딩)
int var =1; 이라고 선언하면 1이 리터럴 입니다. 메모리에 저장될 값이 리터럴 입니다. 

 

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

변수의 선언은 [변수타입] [변수이름]; 으로 할 수 있으며
ex) int varName;
초기화 방법은 [변수타입] [변수이름] = [초기화 값]; 으로 할 수 있습니다.
ex) int varName = 0;

 

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

스코프, 접근범위는 프로그램의 규모가 커지면서 발생하는 변수명 충돌을 해결하기 위해 고안된 방법입니다.
스코프는 변수가 존재할 수 있는 영역을 의미합니다.

위 소스가 가능한 이유가 scope 덕분입니다. {}의 영역내에 선언된 변수는 {} 영역을 탈출하면 소멸합니다. 하지만 static과 같은 변수와 클래스 변수는 메모리에 할당이 취소될때 소멸되기 때문에 프로그램이 종료될때 까지 소멸하지 않습니다.


 

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

자바에는 두종류의 타입 변환이 있습니다.

1. 자동 타입 변환 (프로모션)

2. 강제 타입변환 (캐스팅)
큰 크기의 타입에서 작은 타입으로 변환할 수 있으며 남는 데이터는 버려지게 됩니다.
타입은 int intVal = (int) '1'; 처럼 변환할 수 있습니다.

 

1차 및 2차 배열 선언하기

배열을 새로 선언하기 위해선 new 를 사용하여 배열을 선언합니다.

int[] array1 = new int[];

2차원 배열 또한 1차원 배열과 비슷하게 선언합니다.

int[][] array2 = new int[][];

 

타입 추론, var

타입추론은 데이터 타입을 명명하지 않아도 컴파일러가 알아서 데이터 타입을 추론합니다.
jav 10 부터 지원하는 구문이며, var a = 3; 의 형태로 선언합니다.

728x90

댓글