3강. 변수와 자료형(2)

철새·2022년 2월 4일
0
  • Do it! 자바 프로그래밍 입문 온라인 강의를 수강하며 작성하였습니다.
  • Section 0. 자바 기본 익히기
  • 3강 "변수와 자료형(2)"
  • 변수 -> 자료형

1. 변수

(변하는 수, 프로그래밍에서 값(Data)를 사용하기 위해 선언하는 것.)

프로그램에서 사용되는 자료를 저장하기 위한 공간을 '메모리'라고 하는데,
할당 받은 메모리의 주소 대신 '변수'로 부른다.

변수는 사용하기 전에 선언해야하며, 선언과 동시에 초기화할 수 있다.

public class VariableEx {
	public static void main(String[] args) {
		int num;	//변수 선언
		num = 10;	//num 변수에 값을 대입
		System.out.println(num);
		
		int num2 = 20;	//변수 선언과 동시에 초기화
		System.out.println(num2);
	}
}

변수 선언과 초기화 결과
변수 선언 이후에 초기화 한 결과와 변수 선언과 초기화를 동시에 한 결과 모두 정상적으로 출력된다.

변수 선언 시 유의점

  • 변수의 이름은 알파벳, 숫자, _, $로 구성된다.
  • 대소문자를 구분한다.
  • 변수명은 숫자로 시작할 수 없고, 키워드도 변수명으로 사용할 수 없다.
  • 공백이 있을 수 없다.
  • 변수의 이름을 정할 때는 변수의 역할에 어울리는, 의미있는 이름을 지어야 한다.

2. 자료형

(변수가 사용할 공간의 크기와 특성에 따라 자료형을 사용하여 변수를 선언한다.)

정수형문자형실수형논리형
1바이트byte--boolean
2바이트shortchar--
3바이트int-float-
4바이트long-double-

1) 정수 자료형

자료형바이트 크기수의 범위
byte1-2⁷ ~ 2⁷-1
short2-2¹⁵ ~ 2¹⁵-1
int4-2³¹ ~ 2³¹-1
long8-2⁶³ ~ 2⁶³-1

맨 앞 숫자는 부호비트이므로 32비트인 int의 경우에도 맨 앞의 한 비트를 빼서
-2³¹ ~ 2³¹-1 범위로만 수 표현이 가능하다.
-1이 붙는 이유는 모든 비트가 0이면 그 숫자는 0이므로 양수에서 개수가 한 개 빠지게 된다.

자료형설명
byte1바이트 단위의 자료형
동영상, 음악파일 등 실행파일의 자료를 처리할 때 사용하기 좋음
short2바이트 단위의 자료형
주로 C/C++ 언어와의 호환 시 사용
int자바에서 사용하는 정수에 대한 기본 자료형
4바이트 단위의 자료형
프로그램에서 사용하는 모든 숫자(리터럴)은 기본적으로 int(4바이트)로 저장됨
32비트를 초과하는 숫자는 long 형으로 처리해야 함
long8바이트 단위의 자료형
가장 큰 정수 자료형
숫자의 뒤에 L 또는 l을 써서 long 형임을 표시해야 함.
public class VariableEx2 {
	public static void main(String[] args) {
		byte bData = -128;		
		byte bData2 = 128;	// error! (byte 자료형은 -128 ~ 127 까지)
		
		int num = 123456789;
		int num2 = 12345678900;		//error! (32비트 초과)
		long num3 = 12345678900L;	//long 자료형은 숫자 뒤에 L 또는 l을 붙여줘야 함
	}
}

2) 문자 자료형

컴퓨터에서는 문자도 내부적으로는 비트의 조합으로 표현한다.
즉, 문자를 변수에 저장하면 문자에 해당하는 코드 값이 저장된다.

  • 문자를 위한 코드 값은 문자세트로 정해두었는데, 대표적으로 아스키(ASCII)
    유니코드(Unicode)가 있다.
  • 아스키 : 1바이트로 영문자, 숫자, 특수문자 등을 표현
    유니코드 : 한글과 같은 복잡한 언어를 표현하기 위한 표준 인코딩
    (자바는 유니코드 UTF-16 인코딩을 사용한다.)
  • 인코딩 : 각 문자에 따른 특정한 숫자 값(코드 값)을 부여
    디코딩 : 숫자 값을 원래의 문자로 변환
public class CharacterEx {
	public static void main(String[] args) {
		char ch = 'A';
		System.out.println(ch);
		System.out.println((int)ch);
		
		ch = 66;	// 정수를 넣어도 코드값에 해당하는 문자가 출력
		System.out.println(ch);
		
		int ch2 = 67;
		System.out.println(ch2);
		System.out.println((char)ch2);
	}
}

문자 자료형 출력

변수에 문자, 숫자를 넣었을 때, 코드값에 해당하는 문자들이 정상적으로 출력된다.

3) 실수 자료형

float(4바이트), double(8바이트)

실수 자료형은 정수 자료형과 다르게 부동 소수점 방식으로 표현한다.
무한의 실수를 표현하기 위해 실수를 지수부와 가수부로 표현한다.
0.1을 표현하는 방식

public class DoubleEx {
	public static void main(String[] args) {
		double dNum = 3.14;		//실수는 double형이 기본임
		float fNum = 3.14F;		//float형은 뒤에 F를 붙여야 함
	}
}

3) 논리 자료형

논리값 true(참), false(거짓)을 표현하는 자료형으로, boolean으로 선언한다.

public class BooleanEx {
	public static void main(String[] args) {
		boolean isMarried = true;
		System.out.println(isMarried);
	}
}

boolean 출력

  • 자료형이 필요한 이유
    변수를 선언할 때에는 변수가 사용할 메모리 크기와 타입을 구분하기 위해 자료형을 사용
  • 지역변수 자료형 추론 (local variable type inference)
    변수에 대입되는 값을 보고 컴파일러가 추론 (지역변수에서만 사용 가능)
    한 번 타입이 정해지면 변경은 불가능하다. (처음에 int로 추론했으면 문자열로 변환 불가능)
profile
효율성을 추구하며 세상을 떠도는 철새입니다.

0개의 댓글

관련 채용 정보