※ '자바의 정석 기초편'을 읽으며 정리한 자료임을 미리 밝힙니다.
Chapter 03.
(1) 상수(Constant)란?
→ 변수와 마찬가지로 '값을 저장할 수 있는 공간'이지만, 변수와 달리 한 번 값을 저장하면 다른 값으로 변경할 수 없음.
→ 상수를 선언하는 방법은 변수와 동일. 단, 변수의 타입 앞에 키워드 'final'을 붙여주어야 함.
final int CHICKEN_PRICE = 20000
// 상수를 선언할 때 변수명은 대문자로 나타내는 것이 관례. 여러 단어로 이루어져 있는 경우 '_'로 구분
(2) 리터럴(Literal)이란?
→ 원래는 12, 435, 3.14, 'A'와 같은 값들이 상수이지만, 프로그래밍에서 상수를 '값을 한 번 저장하면 변경할 수 없는 저장 공간'으로 정의했기 때문에 이와 구분하기 위해 상수를 다른 이름으로 불러야 했음.
→ 따라서 리터럴이란, 기존의 의미(값을 뜻하는)를 가진 상수의 다른 이름.
→ 프로그래밍에서의 상수 != 기존의 상수
→ 기존의 상수 == 리터럴(Literal)
변수(Variable) : 하나의 값을 저장하기 위한 공간
상수(Constant) : 값을 한 번만 저장할 수 있는 공간(프로그래밍에서의)
리터럴(Literal) : 그 자체로 값을 의미하는 것
(3) 리터럴의 타입과 접미사
→ 변수에 타입이 있는 것처럼 리터럴에도 타입이 있음.
→ 변수의 타입은 저장될 '값의 타입(리터럴의 타입)'에 의해 결정되므로, 리터럴에 타입이 없다면 변수에도 타입이 없음.
종류 | 리터럴 | 접미사 |
논리형 | false, true | 없음 |
정수형 | 123, 0b0101, 077, 0xFF. 100L | L |
실수형 | 3.14, 3.0e8, 1.4f, 0x1.0p-1 | f, d |
문자형 | 'A', '1', '\n' | 없음 |
문자열 | "ABC", "123", "A", "true" | 없음 |
→ 정수형과 실수형에는 여러타입이 존재하므로 리터럴에 접미사를 붙여 타입을 구분함.
→ 정수형의 경우 : long타입의 리터럴에 접미사 'l' 또는 'L'을 붙이고 없으면 int타입의 리터럴임.
→ byte와 short타입의 리터럴은 별도로 존재하지 않으며 byte와 short의 변수에 값을 저장할 때엔 int타입의 리터럴을 사용
→ 실수형의 경우 : flaot타입의 리터럴에 접미사 'f' 또는 'F'를 붙이고, double타입의 리터럴에는 'd' 또는 'D'를 붙임.
(4) 문자 리터럴과 문자열 리터럴
→ 'A'와 같이 작은 따옴표로 문자 하나를 감싼 것을 '문자 리터럴'이라 함.
→ "chicken"과 같이 두 문자 이상은 큰 따옴표로 감싸야 하며 '문자열 리터럴'이라 함.
문자열은 '문자의 연속된 나열'이라는 뜻이며, 영어로는 String이라고 한다.
char ch = 'J'; // char ch = 'Java'; 이렇게 하는 것은 불가능
String name = "Java"; // 변수 name에 문자열 리터럴 "Java"를 저장함
→ char타입의 변수는 단 하나의 문자만 저장할 수 있음.
→ 여러 문자(문자열)을 저장하기 위해서는 String타입을 사용해야 함.
→ 문자열 리터럴은 " " 안에 아무 문자도 넣지 않는 것을 허용하며, 이를 빈 문자열(Empty String)이라고 함.
→ 하지만 문자 리터럴은 반드시 ' ' 안에 하나의 문자가 있어야 함.
String str = ""; // 사용 가능. 내용이 없는 빈 문자열
char ch = ''; // 사용 불가능. ''안에 반드시 하나의 문자가 필요
char ch = ' '; // 사용 가능. 공백 문자(blank)로 변수 ch를 초기화한 것
→ 원래 String은 클래스이므로 아래와 같이 객체를 생성하는 연산자 'new'를 사용해야 하지만, 특별이 이와 같은 표현도 허용된다.
String name = new String("Java"); // String 객체 생성
String name = "Java"; // 위의 문장을 간단히 한 것
(5) 문자열 결합
→ 숫자 뿐만 아니라 아래와 같이 두 문자열을 합칠 때에도 덧셈(+)을 사용할 수 있음.
String name = "Ja" + "va"; // 출력하면 Java가 나온다.
String str = name + 8.0; // 출력하면 Java8.0이 나온다.
→ 덧셈 연산자(+)는 피연산자 모두가 숫자일 때는 두 수를 더하지만, 피연산자 중 어느 한쪽이라도 String이면 나머지 한 쪽을 먼저 String으로 변환한 다음 두 String을 결합함.
→ 변수의 타입이 무엇이든 간에 문자열과 덧셈 연산을 수행하면 그 결과는 문자열이 됨.
"치킨" + 15000 = "치킨15000"
15000 + "치킨" = "15000치킨"
→ 덧셈 연산자는 왼쪽에서 오른쪽의 방향으로 연산을 수항해기 때문에 결합 순서에 따라 결과가 달라진다.
'java' 카테고리의 다른 글
05. 연산자(Operator) (0) | 2022.06.25 |
---|---|
04. 기본형과 참조형 (0) | 2022.06.25 |
02.변수(Variable) (0) | 2022.06.25 |
01. JAVA란? (0) | 2022.06.25 |