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

Created:

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

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

프리미티브 타입이란 정수, 실수, 문자, 논리 리터럴을 직접 저장하는 타입을 말한다. 정수타입에는 byte, char, short, int, long이 있고, 실수타입에는 float, double이 있다. 그리고 논리타입에는 boolean이 있다.

타입 범위 기본값
byte -128 ~ 127 0
char 0 ~ 65535 \u0000
short -32768 ~ 32767 0
int -2147483648 ~ 2147483647 0
long -9223372036854775808 ~ 9223372036854775807 0L
float 1.4E-45 ~ 3.4028235E38 0.0f
double 4.9-324 ~ 1.7976931348623157E308 0.0d
boolean true, false false

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

프리미티브 타입

  • 정수, 실수, 문자, 논리 리터럴을 저장하는 타입
  • 실제값을 변수안에 저장

레퍼런스 타입

  • 메모리의 번지를 값으로 갖음

리터럴

소스코드 내에서 직접 입력된 값을 리터럴이라 한다. 리터럴은 값의 종류에 따라 정수 리터럴, 실수 리터럴, 문자 리터럴, 논리 리터럴로 구분된다.

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

변수선언

변수선언을 하기 위해서는 타입과 변수이름이 필요하다.

int number;  // 정수(int)값을 저장할 수 있는 number변수 선언
double rating; // 실수(double)값을 저장할 수 있는 rating변수 선언
int a, b, c;  // 정수 타입인 변수 a,b,c를 한꺼번에 선언

초기화

대입연산자(=)를 사용해서 초기화 할 수 있다.

변수 선언후 초기화

int number;
number = 123;

변수 선언함과 동시에 초기화

int number = 123;

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

스코프와 라이프타임

변수종류 스코프 라이프타임
인스턴스변수 static 메서드를 제외한 선언된 클래스 내에서 유효 인스턴스가 소멸될때까지
클래스변수 선언된 클래스 내에서 유효 프로그램이 종료되기전까지
지역변수 선언된 블록 내에서 유효 선언된 블록을 떠날때까지

변수 선언위치

public class variable {

  int iv; // 인스턴스 변수
  static int cv;  // 클래스 변수

  void method() {
    int iv; // 지역변수
  }
}

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

자동타입변환

작은 크기를 가지는 타입이 큰 크기를 가지는 타입에 저장하는것으로 프로모션 이라고도 한다.

byte byteValue = 8;
int intValue = byteValue; // 자동타입변환 (프로모션)

강제타입변환

큰 데이터 타입을 작은 데이터 타입으로 쪼개어서 저장하는것으로 캐스팅이라고도 한다.

int intValue = 20200101;
byte byteValue = (byte) intValue; // 강제타입변환 (캐스팅)

1차 및 2차 배열 선언하기

1차배열 선언

두가지 형태로 작성가능하다.

int[] intArray;
int intArray[];

2차배열 선언

int[][] intArray;

타입 추론, var

var는 java10부터 추가된 것으로, 타입이 정해지지 않은 변수에 대해서 컴파일러가 변수의 타입을 스스로 찾아낼 수 있도록한다.

var name = "HelloWorld";

참고

https://frontierdev.tistory.com/78
https://league-cat.tistory.com/411

Tags:

Categories:

Updated:

Comments