Java

변수(Variable) - 변수의 타입 : 기본형 & 상수와 리터럴

제주니어 2022. 8. 15. 22:00

변수의 타입

  • 값의 종류에 따라 저장될 공간의 크기와 저장형식을 정의한 것이 자료형(data type)이며, 문자형/정수형/실수형 등이있다.
  • 기본형과 참조형
  • 기본형 변수 : 실제 값(data)을 저장한다.
  • 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double)
  • 참조형 변수 : 어떤 값이 저장되어 있는 주소를 값으로 갖는다.
    • 클래스이름 변수이름 ; // 변수의 타입이 기본형이 아닌 것들은 모두 참조변수
// 정수형 변수 선언
byte bnum;
short snum;
int inum;
long lnum;

// 실수형 변수 선언
float fnum;
double dnum;

// 논리형 변수 선언
boolean isTrue;

// 문자형 변수 선언
char ch;

// 문자열 변수 선언
String str;

 

1. 기본형(primitive type)

  • 정수, 실수, 문자, 논리 타입을 기본 타입이라고 한다.
  • 기본 타입은 정해진 메모리 크기(byte)를 사용해 값을 저장하는데 바이트 크기가 클수록 표현하는 값의 범위가 크다.

  • boolean을 제외한 나머지 7개의 기본형은 서로 연산과 변환이 가능하다.

2. 상수와 리터럴(constant & literal)

1) 상수(constant)

  • 변수와 마찬가지로 ‘값을 저장할 수 있는 공간’이지만, 변수와 달리 한번 값을 저장하면 다른 값으로 변경불가.
  • 선언과 동시에 초기화해야 하며, 그 후에 상수의 값을 변경하는 것이 허용되지 않는다.
  • 상수의 이름은 모두 대문자로 하는 것이 암묵적인 관례, 여러 단어로 이루어진 경우 ‘_(언더바)’로 구분한다.
// 상수 선언
final int PI;

// 선언과 동시에 상수 초기화
final int PI = 3.14;

// 선언 후 상수 초기화
final int PI;

PI = 3.14;
  • 상수 [표현법] - final 자료형 변수명;
    • 변하지 않는 값으로 특정 변수의 값이 변경되는 걸 원하지 않을 때 사용한다.
    • 초기화 이후에는 값을 변경할 수 없다. 
int age;
final int AGE;
		
age = 20;
AGE = 30;

System.out.println(age);
System.out.println(AGE);

age = 25;
// AGE = 35; >> error, final 변수

2)  리터럴

  • 우리가 알고 있는 ‘상수’의 다른 이름.
  • 변수에 기록되는 값 자체를 리터럴이라고 한다.
  • 리터럴은 정수, 실수, 문자, 논리, 문자열 리터럴로 구분되며 리터럴들은 정해진 표기법대로 작성되어야 한다.
    • 변수(variable) : 하나의 값을 저장하기 위한 공간.
    • 상수(constant) : 값을 한번만 저장할 수 있는 공간.
    • 리터럴(literal) : 그 자체로 값을 의미하는 것.
short s = 32767; 
int i = 100; 
long l = 10000L;
float f = 0.123f;
double d = 3.14;
char c = 'A';
String str = "ABC";

3)  리터럴의 타입과 접미사

isTrue = false; 
bNum = 11;
sNum = 12;
iNum = 300;
// 정수형 리터럴은 기본적으로 int 컴파일 된다.
// long 타입의 리터럴은 숫자 뒤에 L 또는 l을 입력해야 한다.
lNum = 314783647L;
// 실수형 리터럴은 기본적으로 double로 컴파일 된다. 
// float 타입의 리터럴은 숫자 뒤에 F 또는 f를 입력해야 한다. 
fNum = 3.14f;
// double 타입의 리터럴에서 숫자 뒤에 D 또는 d는 생략이 가능하다.
dNum = 3.14;

4) 타입의 불일치

  • 타입이 달라도 저장범위가 넓은 타입에 좁은 타입의 값을 저장하는 것은 허용된다.

5) 문자 리터럴과 문자열 리터럴

  • 문자 리터럴
    • ‘ ‘(작은따옴표)로 문자 하나를 감싼 것.
    • ‘’ 안에 하나의 문자가 반드시 있어야 한다.
    • char ch = ‘ ‘ : OK, 공백 문자(blank)로 변수 ch를 초기화
  • 문자열 리터럴
    • “ “(큰따옴표)로 두 문자 이상을 감싼 것.
    • “” 안에 아무런 문자도 넣지 않는 것을 허용, 이를 빈 문자열이라고 한다.
  • 문자열 + any type > 문자열 + 문자열 > 문자열
  • any type + 문자열 > 문자열 + 문자열 > 문자열