자바의 정석 기초편 2-7~10
2-7 문자 리터럴과 문자열 리터럴
문자 리터럴은 'A'와 같이 작은따옴표로 문자 하나를 감싼 것을 의미함.
문자열 리터럴은 "ABC"와 같이 큰따옴표로 두 문자 이상을 감싼 것을 의미함.
char ch = 'A';
char ch = 'AB' // error
String s = "ABC";
String은 java에서 제공하는 클래스임.
원래 클래스는
String s = new String ("AB");
이런 식으로 객체를 생성하는 연산자 new를 사용해야 하는데,
워낙 많이 쓰이다 보니 변수의 선언 형식을 허용함.
String s = "AB";
그러나 두 문장은 비슷하지만 다름. 차이는 나중에 배울 것임.
문자열string은 문자의 연속된 나열을 의미함.
문자열 리터럴은 "" 안에 아무런 문자도 넣지 않는 것을 허용하는데,
이를 빈 문자열empty string이라고 함.
String s = "A";
String s = ""; // 빈 문자열 empty string
char ch = ''; // error
2-8 문자열 결합
문자열을 합칠 때도 덧셈 연산자(+)를 사용할 수 있음.
String s1 = "A" + "B"; // "AB"가 s1에 저장됨
String s2 = "" + 7; // 7이 문자열로 변환되어 최종적으로 "7"이 s2에 저장됨
문자열은 문자열과만 결합할 수 있기 때문에, 숫자 7이 문자 7로 변환된 것.
즉, 빈 문자열과 숫자를 더하면 숫자를 문자열로 변환할 수 있음.
빈 문자열과 숫자의 결합은 왼쪽부터 순서가 시작함.
예를 들어 "" + 7 + 7 의 결합은
"7" + 7 → "7" + "7" → "77"
최종 문자열은 77이 됨.
다른 예를 들어 7 + 7 + "" 의 결합은
14 + "" → "14" + "" → "14"
최종 문자열은 14가 됨.
문자열을 숫자로 변환하는 방법은 다음에 배울 것임.
이클립스 실습↓
배운대로 출력됨.
2-9 두 변수의 값 바꾸기
변수 x와 y가 있다고 가정.
int x = 10, y = 20;
두 변수 x와 y에 저장된 값을 교환하려면 값을 임시로 저장할 변수가 하나 더 필요함.
int tmp; //임시로 값을 저장하기 위한 변수
tmp = x; // 1. x의 값을 tmp에 저장
x = y; // 2. y의 값을 x에 저장
y = tmp; // 3. tmp에 저장된 값을 y에 저장
시각적으로 표현하면 이런 순서.
이클립스 실습 ↓
x와 y 값이 바뀌어서 출력됨.
2-10 기본형과 참조형
java에서 자주 사용하는 값data의 종류type는 크게 두가지로 나뉨.
1. 문자 : 'A', '1', "ABC" _ char
2. 숫자
2.1. 정수 : 123, 0, -100 _ byte, short, int, long
2.2. 실수 : 3.14, -3.0x100000 _ float, double
이러한 값data의 종류type에 따라 값이 저장될 공간의 크기와 저장 형식을 정의한 것이 자료형 data type임.
자료형도 크게 두가지로 나뉨.
1. 기본형primitive type:
논리형boolean, 문자형char, 정수형byte/ short/ int/ long, 실수형float/ double 계산을 위한
실제 값data을 저장함. 모두 8개.
java는 C와 달리 참조형 변수 간의 연산을 할 수 없음.
실제 연산에 사용되는 것은 모두 기본형 변수임.
2. 참조형reference type:
어떤 값이 저장되어 있는 주소memory address(메모리에 1byte 단위로 붙은 일련 번호)를 저장.
즉 객체의 주소를 저장함(32bit Java Virtual Machine에선 4byte/ 64bit JVM에선 8byte).
→이해를 돕기 위해 4byte로 간주하고 진행.
8개를 제외한 나머지 타입(Ex. String, System, etc.)
참조형은 마음대로 만들어낼 수 있기 때문에 그 수가 정해져 있지 않음.
참조형 변수의 예를 들어봄.
Date today; // 참조형 변수 today 선언
today = new Date(); // today에 객체의 주소를 저장
일단 이 정도만 이해하면 됨. 자세한건 다음에 배울 것임.