본문 바로가기

자바기초

[JAVA 기초] 변수, 상수, 리터럴, 타입(정수, 실수,논리,문자, String)

** 개인 학습용으로 작성한 내용이니 정확하지 않을 수 있음 ** 

 

변수 Variable : 변할 수 있는 값을 저장할 수 있는 메모리 공간을 확보하고, 사람이 식별할 수 있는 이름을 붙여 값을 임시적으로 할당하는 것. 값은 "=" 대입 연산자로 할당 할 수 있음.

 

변수는 아래와 같이 재할당 할 수 있음.

public class Variable {
    public static void main(String[] args) {
        int num;	//변수선언
        num = 1;	// 값 할당 (초기화)
        num = 2;	// 값 할당 (재힐당)

        System.out.println(num);	// 결과 : 2
    }
}

변수명 규직:

- camelCase 처럼 두번째 첫 글자를 대문자로 시작하여 구분함

- 영문자, 숫자, _, $를 사용할 수 있음

- 영문자는 대소문자가 구별하여 인식함

- 숫자로 시작하면 안 됨

- 자바의 예약어로는 변수명 선언 안 됨 ex) int byte; int class;

- ex) int num; int NUM; int num_1; int num$1; 모두 사용 가능함


상수 Constant: 변하지 말아야 할 값을 저장. 재할당은 금지 되어 있음.

상수명 규칙:

- final 로 선언 관례적으로 대문자에 언더바(_)를 넣어 구분하는 final doublw CALCULATOR_PI = 3.14;


리터럴 Literal: 문자가 가라키는 값 그 자체.

class Main {
	public static void main(String[] args) {
		int num; // 변수 선언
		num = 1; // 값 할당 >> num에 할당하는 리터럴은 1
	}
}

타입: 값의 유형으로 값이 차지하는 메모리 공간의 크기와 값이 저장되는 방식이 결정 됨

ex) 정수형 int 는 4 byte, 문자형 1byte

ex) 값을 그대로 저장 = 기본 타입, 저장할 값을 임의 메모리 공간에 저장 후 메모리 공간의 주소를 저장 = 참조타입

 

기본 타입 Primitive type = 데이터의 실제 값을 저장 함, byte, short, int, long, float, double, char, boolean.

참조 타입 reference type = 값을 저장은 하지만 데이터가 저장 된 주소값을 저장함, 위 8개의 기본형 외에 나머지.

 

정수타입 integer number: 숫자이며 byte, short, int, long 이 있음.

타입 메모리 표현범위
byte 1byte -128(-27) ~ 127(27 - 1)
short 2byte -32,768(-215) ~ 32,767(215 - 1)
int 4byte -2,147,483,648(-231) ~ 2,147,483,647(231 - 1)
long 8byte -9,223,372,036,854,775,808(-263) ~ 9,223,372,036,854,775,807(263 - 1)

 

정수형 언더플로우 = -120에서 10을 빼면 -130 이 돼서 언더플로우

정수형 오버플로우 = 120 에서 10을 더하면 130이 돼서 오버플로우

** 이유는 위 표의 정수형 표현 범위 참고 **

 

실수타입 real number: 소수점을 가진 값이며 float, double 이 있음

 

타입메모리표현 범위정밀도

타입 메모리 표현범위 정밀도
float 4byte 음수 : -3.4 * 1038 ~ -1.4 * 10-45
양수 : 1.4 * 10-45 ~ 3.4 * 1038
7자리
double 8byte 음수 : -1.8 * 10308 ~ -4.9 * 10-324
양수 : 4.9 * 10-324 ~ 1.8 * 10308
15자리
// float형 리터럴을 float형 변수에 할당
float num1 = 3.14f;

// double형 리터럴을 double형 변수에 할당
double num2 = 3.141592d;
double num2 = 3.141592;

논리 타입: boolean 으로 true 또는 false 값을 가짐

boolean isRainy = true;
boolean isAdult = false;

문자 타입: char 으로 문자 하나만 할당. 2 byte 크기임. 문자형 리터럴은 작은 따옴표 ' ' 로 할당함.

ex) char letter1 = 'a';

ex) char letter2 = "b"; >> 에러! 작은 따옴표 사용!

ex) char letter3 = 'ab' >> 에러! 단 한의 문자 할당!

 

String 타입:  문자열으로 큰 따옴표로 " " 리터럴 할당 

String name1 = "Kim Coding";