Java 변수 타입
데이터 타입
정수 타입
// byte - 1byte 메모리 사용 (-128 ~ 127)
byte byte1 = -128;
// char - 2byte 메모리 사용 (음수x 0 ~ 2^16 - 1)
char char1 = 'A';
char char2 = 65;
char char3 = '\u0041'; // char 1, 2, 3 모두 A 저장
// + String - String은 기본 타입이 아닌 클라스 타입 String 은 참조 변수
String string1 = "Name";
// short - 2byte 정수 값
short short1 = 0;
// int - 4byte 정수 값 (-2^31 ~ 2^31 - 1)
int int1 = 10; // 10진수
int int2 = 012; // 8진수
int int3 = 0xA; // 16진수
// long - 8byte 정수 값 (-2^63 ~ 2^63 - 1)
long long1 = 10; // 4 byte
long long2 = 10L; // 8 byte 사용시 명시
실수 타입
// float - 4byte
// Java는 기본적으로 double을 기본 실수로 보기 때문에 f, F 로 float형임을 명시
float float1 = 3.14F;
// double - 8byte
double double1 = 3000000; // 3000000
double double2 = 3e6; // 3000000
double double3 = 2e-3; // 0.002
논리 타입
// boolean - 1byte
boolean boolean1 = true;
boolean boolean2 = false;
형 변환
// 자동 형변환(크기가 작은 것에서 큰 형으로 변환)
int intValue1 = byte1; // int <- byte
int intValue2 = char1; // int <- char
long longValue1 = int1; // long <- int
double doubleValue1 = int2; // double <= int
// 강제 형변환( 작은 크기 타입 = (작은 크기 타입)큰 크기 타입 )
byte byteValue1 = (byte)int1; // 강제 타입 변환(캐스팅)
강제 형변환으로 데이터 손실을 막기위해선 예외처리 사용
if((i < Byte.MIN_VALUE) || (i > Byte.MAX_VALUE)) {
System.out.println("Error");
}else {
byte byteValue1 = (byte) i;
}
참조 변수
- String
String string2 = "name"; String string3 = "name"; String string4 = new String("name");
string2, string3 는 동일한 문자열 리터럴로 생성된 객체를 참조해 == true 가 됨 string4 는 String 객체를 새로 생성했기 때문에 == 시 false가 된다. 서로 다른 객체사이에서 리터럴 검사 시 string2.equals(string4)
- 배열
- 배열의 선언
// 타입[] 변수 int[] intArray; // 타입 변수[] int intArray[]; // 배열 초기화 String[] names = {"name1", "name2", "name3"}; names = new String[] {"name1", "name2", "name3"}; int[] intArray = new int[5] // 배열의 길이 intArray.length