자바 리마인드#1 변수와 자료형1
2022/12/29
- 학습내용
변수(variable)
프로그래밍에서 변수는 말 그대로 변하는 값을 뜻한다.
변수를 선언할 때는
int a;
string b;
예시와 같이 a,b를 변수라고 한다.
변수 이름 정하기
자바에서 변수 이름은 용도에 맞게 지으면 되지만 몇가지 제약사항이 있다.
제약사항
1. 변수 이름은 영문자(대문자, 소문자)나 숫자를 사용할 수 있고, 특수 문자 중에는 $,_ 만 사용할 수 있다.
2. 변수 이름은 숫자로 시작할 수 없다.
3. 자바에서 이미 사용 중인 예약어는 사용할 수 없다.
※ 예약어 : 프로그래밍 언어에서 특별한 의미로 미리 약속되어 있는 단어를 말한다.
변수 길이에 제한이 없으므로 줄임말보다는 의미를 풀어서 쓰는 것이 좋다.
ex) 학생 수 를 뜻하는 변수를 선언할 때 ns 보다는 numberOfStudend 가 더 이해가 잘된다.
변수와 메모리
변수를 선언하면 변수에 메모리를 할당한다.
ex) int A; 를 선언하면 4바이트(int) 크기의 메모리 공간이 A라는 이름으로 할당된다.
자료형(Type)
1. 기본 자료형
1) 정수 자료형
byte형
1바이트는 8비트다.
바이트형으로 표현할 수 있는 수의 범위는 -128~127 이고, 이 범위를 초과는 값을 대입하면 오류가 발생한다.
short형
2바이트로 정수를 표현하는 자료형이다.
범위는 -32,768 ~ 32,767이다.
int형
4바이트로 정수를 표현하는 자료형이다.
범위는 -2,147,483,648 ~ 2,147,483,647) 로 꽤 큰 범위의 정수를 나타낼 수 있어서 가장 많이 사용되는 자료형이다.
또한, 컴퓨터에서 정수를 연산을 할 때 4바이트 단위로 처리하는 것이 효율적이어서 가장 많이 사용되기도 한다.
long형
자바에서 정수를 표현하는 가장 큰 단위의 자료형이다.
int형의 범위를 넘어서는 정수를 사용할 때 사용한다.
※long형 사용 주의점
long num1 = 12345678900; -> 오류
자바는 모든 정수를 기본으로 int형으로 처리하기 때문에 long형으로 처리하라고 컴파일러에게 알려주어야 한다.
long num1 = 12345678900L;
위와 같이 long형을 나타내는 식별자인 L이나 l을 사용하려는 숫자 뒤에 붙인다.
long num = 1000;
범위 내의 수는 int형이 long형으로 자동형 변환되기 때문에 식별자가 필요없다.
자료형이 다른 정수끼리 더하면 어떻게 될까?
public class IntegerVariable {
public static void main(String[] args) {
short sVal =10;
byte bVal = 20;
System.out.println(sVal + bVal);
}
}
자바가 정수 값을 연산할 때 4바이트를 기본 단위로 사용한다.
즉, 두 정수를 더하기 전에 두 정수는 모두 int형으로 변환된다. 더한 결과 값도 int형으로 저장된다.
2) char(문자 자료형)
문자를 컴퓨터 내부에서 표현하기 위해서는 0과 1의 조합으로 나타내야 한다.
어떤 문자를 컴퓨터 내부에서 표현하려면 특정 정수 값으로 정하고자 약속해야 한다.
이렇게 문자를 정해둔 코드 값으로 변환하는 것을 "문자 인코딩"이라고 한다.
반대로 코드 값을 다시 문자로 변환하는 것을 "문자 디코딩"이라고 한다.
char myChar = 'A';
문자를 변수에 대입하면 문자 그대로 저장되는 것이 아니라 문자에 해당하는 정수 값(아스키 코드 값)이 저장된다.
문자 VS 문자열
문자를 사용할 때는 항상 작은 따옴표를 사용한다.
문자열을 사용할 때는 큰따옴표를 사용한다. 문자열은 기본 자료형으로는 표현할 수 없다.
문자열 끝에는 항상 널 문자(\0)가 있다.
문자와 문자열은 전혀 다른 값을 가진다.
'A' 는 정수 값 65로 정해져 있는 문자이고.
"A" 는 "A \0" 인것이다.
char형에 숫자를 저장하면?
char형으로 선언한 변수에 음수 값을 대입하면 오류가 발생한다.
음수 값을 대입한 정수형 변수를 char형으로 출력하면 물음표(?)로 출력된다.
알 수 없는 문자라는 의미이다.