자바에서 변수를 선언하려면 초기화를 해주어야 한다.
우선 정수형 타입의 변수를 선언해보겠다.
int hour;
변수 hour를 선언했다. 초기화는 되지 않은 상태다.
이번엔 변수 hour에 값을 저장해보겠다.
hour = 12;
12라는 값이 변수 hour에 초기화되었다.
초기값은 변수를 선언함과 동시에 줄 수도 있다.
int hour = 12;
데이터의 기본 타입은 정수, 실수, 문자, 논리 리터럴을 직접 저장하는 타입이다.
메모리의 최소 기억 단위인 bit가 모여 byte를 형성한다.
💡8bit = 1byte
| 값의 종류 | 기본 타입 | 메모리 사용 크기 | 저장되는 값의 범위 | |
|---|---|---|---|---|
| 정수 | byte | 1byte | 8bit | 27 ~ 27-1(-128~127) |
| char | 2byte | 16bit | 0 ~ 216-1 | |
| short | 2byte | 16bit | -215 ~ 215-1 (-32,768~32,767) | |
| int | 4byte | 32bit | -231 ~ 231-1 (-2,147,483,648~2,147,483,647) | |
| long | 8byte | 64bit | -263 ~ 263-1 | |
| 실수 | float | 4byte | 32bit | (+/-)1.4E-45 ~ (+/-)3.4E38 |
| double | 8byte | 64bit | (+/-)4.9E-324 ~ (+/-)1.7E308 | |
| 논리 | boolean | 1byte | 8bit | true, false |
✅ 정수형의 기본 디폴트 값은 int이다!
int value1 = 123; //10진수 (99.7)
int value2 = 0207; //앞에 0이 붙이면 8진수 (0.1)
int value3 = 0b0101; //앞에 0b가 붙이면 2진수 (0.1)
int value4 = 0xB; //앞에 0x가 붙으면 16진수 (0.1)
System.out.println(value1); //123
System.out.println(value2); //0208
System.out.println(value3); //123
System.out.println(value4); //0208
byte bvalue1 = 0;
byte bvalue2 = 127;
byte bvalue3 = 128;
//byte타입 표현 범위 : -128~127 이므로 bvalue3은 컴파일에러 발생!
long lvalue1 = 10;
long lvalue2 = 3000L; //long 뒤에 L이 붙으면 long타입 숫자
✅ char 타입은 문자리터럴을 저장하지만 사실 정수형 타입이다!
char chvalue1 = '문';
char chvalue2 = 'A';
char chvalue3 = 75;
char chvalue4 = '\u0039'; //16진수
char chvalue5 = 65;
System.out.println(chvalue1); //문
System.out.println(chvalue2); //A
System.out.println(chvalue3); //K 유니코드:75
System.out.println(chvalue4); //9
System.out.println(chvalue5+5); //70
✅ 실수형의 기본 디폴트 값은 double이다!
double dvalue1 = 1.23; //실수형 8byte
float fvalue1 = 1.23f; //실수형 4byte 뒤에 f가 붙으면 float형
// 4byte = 8byte
double dvalue2 = 0.1234567890123456789;
float fvalue2 = 0.1234567890123456789f;
System.out.println(dvalue1); //1.23
System.out.println(fvalue1); //1.23
System.out.println(dvalue2); //0.12345678901234568
System.out.println(fvalue2); //0.12345679
✅ 문자열은 큰따옴표(")로 저장한다! ( char은 작은따옴표(') )
String str1 = "A";
String str2 = "ABCD";
String str3 = "문자열 저장은 String";
System.out.println(str1); //A
System.out.println(str2); //ABCD
System.out.println(str3); //문자열 저장은 String
int p1 = 100;
double p2 = 10.99;
boolean p3 = true;
char p4 = 'T';
String p5 = "입니다";
String p6 = "200";
System.out.println(p1+p2); //100+10.99
System.out.println(100+10.99); //정수형+실수형=실수형(형태가 큰 것으로 변환)
System.out.println(p2);
System.out.println(p3);
System.out.println(p4+5); //'T'+5=89 ('T'=84)
//정수형(문자)+정수형=정수형
//char+int=int
System.out.println(p5+10); //"입니다" + 10
System.out.println(p1+p5); //100 + "입니다"
//정수형 + 문자열 = 문자열
System.out.println(p1+p6); //100 + "200" = 100200
//정수형 + 문자열 = 문자열
System.out.println(p3+p5); //true + "입니다"
//논리형 + 문자열 = 문자열
System.out.println(p1+p2+p6); //110.99200
// 110.99+"200" -> 문자열
System.out.println(p6+p2+p1); //20010.99100
// "20010.99" + 100 -> p6+p2에서 이미 문자열
💡오늘의 결론 : 문자열을 만나면 다 문자열화 된다고 생각하자 !!!
(교재 : 이것이 자바다/저자 신용권)