JAVA

자바의 정석 기초편 2-7~10

Daryl 2023. 2. 10. 21:42

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에 객체의 주소를 저장

일단 이 정도만 이해하면 됨. 자세한건 다음에 배울 것임.