변수와 자료형
1. 변수
메모리에 저장된 값을 사용하기 위해서 사용한다.
변수를 사용하기 위해서는 먼저 자료형을 선언하고 변수명을 선언한다.
int num;
변수에 값을 대입하기 위해서 대입연산자 =를 사용한다.
int num = 10;
변수를 여러개 선언하기 위해서는 쉼표를 사용한다.
int num, num2, num3;
위 선언에 대입연산자를 다음과 같이 결합하여 각 변수별로 값을 지정할 수 있다.
int num=10, num2=20, num3=30;
변수명은 규칙은 다음에 맞게 작성한다.
- 영문자, 숫자, $, _ 조합으로 작성한다.
- 숫자로 시작할 수 없다.
- 예약어를 사용할 수 없다.
필수적으로 지켜야 할 사항은 아니지만 오래된 관습처럼 지켜야 할 것이 있다.
- 상수를 제외하고 변수명의 첫 문자는 영소문자로 작성한다.
- 여러 단어가 결합될 경우 카멜(단어의 첫단어를 대문자) 또는 스네이크(언더) 케이스를 사용한다.
String camelCase;
String snake_case;
final String NUM; // 상수
2. 자료형
자바의 자료형은 기본형과 참조형으로 나뉜다.
2.1. 기본형
기본형은 쉽게 말해 클래스가 아닌 모든 값들이라고 할 수 있다. 이 값들은 변하는 값이 아니기에 상수값이라고 부르기도 한다. 참고로 변하는 것은 변수지 이러한 기본 값들이 아니다.
int num = 1; // num은 변수 1은 상수
num = 2; // 변수의 값을 2로 변경 2는 상수
즉 변수에 대입되는 상수가 다른 상수로 교체되는 것이다.
기본형은 다음과 같다.
- byte : 1byte 크기의 자료형
- boolean : 1byte크기의 자료형
- short : 2byte 크기의 정수값을 갖는 자료형
- int : 4byte 크기의 정수값을 갖는 자료형
- long : 8byte 크기의 정수값을 갖는 자료형
- float : 4byte 크기의 실수값을 갖는 자료형
- double : 8byte 크기의 실수값을 갖는 자료형
2.1.1. byte
가장 작은 크기의 기본형으로 1바이트 크기의 용량을 가진다. 산술 연산이 가능하다.
byte b = 10;
System.out.println(b + 1);
2.1.2. boolean
1byte 크기의 기본형이지만 실제로 1비트를 사용한다.
산술 연산이 불가능하다.
public class Example {
public static void main(String[] args) {
System.out.println(1+true); // 오류
}
}
2.1.3. short
2byte 크기의 정수형이다. 마찬가지로 산술연산이 가능하다.
2.1.4. int
4byte 크기의 정수형이다. 정수형 연산은 전부 int보다 작은 정수형들은 산술연산시 모두 int형으로 된다.
byte b = 10;
byte a = 10;
byte c = (byte)(a+b) ; //연산시 인트형으로 변환 결과도 인트형임 그래서 명시적 형변환 필요.
c = 10+10; // 상수값 끼리의 연산은 범위 안에 있을 경우 자동으로 형변환을 해준다.
2.1.5. long
8byte 크기의 정수형이며 대입되는 상수 뒤에 대문자 L이나 소문자 l을 붙인다.
long형과 산술연산하는 정수형들은 모두 long형으로 변환 뒤 연산되며 결과도 long형이다.
long a = 10L; //대문자 L로 표현
long b = 20l; //소문자 l로 표현
byte c = 5;
long d = a + c; // c가 long형으로 변환되어 연산되고 결과도 long형으로 반환
System.out.println(10L + 10l); // 상수값을 long형으로 변환
2.1.6. float
4byte 크기의 실수형이며 상수값 뒤에 대문자 F 또는 소문자 f를 붙인다.
float a = 10.1f;
float b = 10.1F;
float c = a +b; // float형으로 연산
float d = c + 10; // float형으로 변환되고 연산의 결과도 float
2.1.7. double
8byte 크기의 실수형으로 기본 실수형이다. 실수에 따로 float을 명시하지 않으면 double형으로 변환된다.
double a = 10.1; //실수 기본은 double
double b = 10; // 자동으로 double 변환
double c = a +b; // double형으로 연산
double d = c + 10; // double형으로 변환되고 연산의 결과도 double
2.2. 참조형
클래스로 선언된 유형들은 모두 참조형이다.
String str = "dsfst";
3. 형변환
자료형은 형변환이 가능하며 기본형은 기본형끼리 참조형은 참조형끼리 가능하다.
형변환을 하는 방법에는 명시적 방법과 묵시적 방법이 있다.
자료형을 변환할 경우 메모리 공간이 변하므로 값이 달라질 수 있다.
3.1. 명시적 형변환
명시적 형변환은 큰 자료형에서 작은 자료형으로 변환할 경우 사용한다.
소괄호 안에 변환할 형을 선언한다.
// 기본형
int i = 100;
short s = (short) i; // 큰 기본형에서 작은 기본형으로
// 참조형
Sup sup = new Sup();
Sub sub = (Sub) sup; // 상위 클래스에서 하위 클래스로
3.2. 묵시적 형변한
묵시적 형변환은 작은 자료형에서 큰 자료형으로 변환할 경우 자동으로 변환해 주는 것을 말한다.
// 기본형
short s = 100;
int i = s; // 작은 기본형에서 큰 기본형으로
// 참조형
Sub sub = new Sub();
Sup sup = sub; // 상위 클래스에서 하위 클래스로
끝.
Leave a comment