공부/JAVA

자바 데이터 타입, 변수 그리고 배열

Dr.thousand 2022. 9. 6. 21:58
728x90

목표

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

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

자바의 데이터타입

- 기본형 타입 (Primitive Type)

  •  총 8종류의 기본형 타입을 미리 정의하여 제공
  • 실제 값을 저장하는 공간으로 스택 메모리가 사용된다
  타입 할당되는 메모리 기본값 표현 범위
논리형 boolean   false true,false
정수형 byte   0 -128 ~ 127
short   0 -32,768 ~ 32,767
int   0  -2,147,483,648 ~ 2,147,483,647
long   0L  -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
실수형 float   0.0F (+/-)1.4E-45 ~ (+/-)3.4028235E38 
double   0.0 (+/-)4.9E-324 ~ (+/-)1.7976931348623157E308
문자형 char   '\u0000' 0 ~ 65,535

- 참조형 타입 (Reference Type)

  •  기본형 타입을 제외한 타입들
  • 값을 저장하는 공간으로 힙 메모리가 사용된다

자바 메모리영역


상수(Constant) 와 리터럴(Literal)

상수란 ? 변하지 않는 변수

final int a = 1;

프로그래밍에서 상수를 사용할 때는 C,C++는 const , Java에서는 final키워드를 사용한다.

리터럴 이란? 데이터 그 자체를 뜻한다. 변수에 넣는 변하지 않는 데이터를 의미.

int a = 1;

1 , 2, 3, 4, 1.1 등등 과 같이 변하지않는 데이터를 리터럴이라고 부른다.


변수 선언 및 초기화

int var; // 선언

var = 1; // 초기화

int var = 1; // 선언과 동시에 초기화

 

선언 : 변수를 사용할 것이라고 선언하는것. 선언하게 되면 메모리에 변수가 들어갈 공간을 확보하게된다.

초기화 : 확보된 공간에 값을 등록한다.


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

 

 

 

대괄호로 묶인영역을 스코프라고 부른다.

라이프 타임은 변수가 메모리에 존재하는 기간을 말한다.

해당 이미지에서는

ItemRepository 스코프 

  - save 스코프

  - findAll 스코프

가 존재한다.


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

 

타입 변환

작은 크기를 가진 타입이 큰 크기를 가진 타입에게 저장될 때 발생

short tempS = 1;

int tempI = tempS;

일 경우 크기가작은 short 가 int 타입으로 저장된다.


1차 및 2차배열 선언하기

1차 배열

int[] array = new int[5];

int array[] = new int[5];

int[] arry = {1,2,3,4,5,};

2차 배열

int[][] array2D = new int[3][5];

int[][] array2D = {{1,2,3,4,5},{6,7,8,9,10}};


 

타입 추론 , var

변수의 타입을 명시적으로 적어주지 않고, 컴파일러가 변수의 타입을 대입된 리터롤로 추론하는 것.

자바 10부터 타입추론을 지원하는 키워드 var가 지원됨.

var a = "hi"; // String

var b = 10; // int

 

728x90
반응형

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

[Java] 클래스  (0) 2022.09.27
[JAVA]제어문  (2) 2022.09.20
[Java] 연산자  (0) 2022.09.14
[JAVA] JVM 이란 무엇이며 자바코드는 어떻게 실행되는가  (0) 2022.08.30
좋은객체지향의설계원칙5가지(SOLID)  (0) 2022.02.26