1. 개요
Java 프로그래밍 언어로 작업하는 동안 많은 리터럴을 사용합니다.
이 사용방법(예제)에서는 모든 유형의 리터럴과 사용 방법을 살펴보겠습니다.
2. 자바 리터럴이란 무엇입니까?
Java 리터럴은 코드에서 상수로 지정하는 모든 값입니다. integer , float , double , long , String , char 또는 boolean 등 모든 유형이 될 수 있습니다 .
아래 예에서 숫자 1 과 문자열 literal_string 은 리터럴입니다.
int x = 1;
String s = "literal_string";
리터럴로 작업할 때 Java 프리미티브 를 잘 이해하는 것도 마찬가지로 중요합니다 .
3. 리터럴의 종류
몇 가지 예와 함께 다양한 유형의 리터럴을 살펴보겠습니다.
3.1. 정수 리터럴
정수( int, long, short, byte )의 경우 다른 방식으로 지정할 수 있습니다.
첫째, 10진수 리터럴(10진법) 을 사용할 수 있습니다 . 이들은 우리가 매일 사용하는 숫자이기 때문에 가장 많이 사용됩니다.
int x = 1;
둘째, 정수 리터럴을 8진수 형식(밑수 8) 으로 지정할 수 있습니다 . 이 형식에서는 0 으로 시작해야 합니다 .
int x = 05;
셋째, 정수 리터럴은 16진수 형식(밑수 16) 으로 사용할 수 있습니다 . 0x 또는 0X 로 시작해야 합니다 .
int x = 0x12ef;
마지막으로 이진 형식(밑 2) 이 있습니다. 이 형식은 Java 1.7에서 도입되었으며 이러한 리터럴은 0b 또는 0B 로 시작 해야 합니다 .
int x = 0b1101;
위의 예 에서 리터럴 값이 유형 제한을 초과하지 않는 한 int 를 모든 정수 유형으로 변경할 수 있습니다.
이러한 리터럴은 기본적으로 int 로 간주됩니다. long , short 또는 byte 의 경우 컴파일러는 값이 유형의 한계를 초과하는지 확인하고 true인 경우 해당 유형 리터럴로 간주합니다.
긴 리터럴에 l 또는 L 을 사용하여 기본 int 리터럴을 재정의할 수 있습니다 . 리터럴 값이 int 제한 을 초과 하는 경우에만 이것을 사용해야 합니다 .
3.2. 부동 소수점 리터럴
부동 소수점 리터럴은 기본적으로 이중 으로 간주됩니다. d 또는 D 를 사용하여 리터럴이 double 임을 지정할 수도 있습니다 . 필수는 아니지만 좋은 습관입니다.
f 또는 F 를 사용하여 부동 소수점 을 원한다고 지정할 수 있습니다 . 이것은 float 유형의 리터럴에 필수입니다 .
부동 소수점 리터럴은 10진수 형식(기본 10)으로만 지정할 수 있습니다.
double d = 123.456;
float f = 123.456;
float f2 = 123.456d;
float f3 = 123.456f;
두 번째와 세 번째 예제는 유형 불일치로 인해 컴파일되지 않습니다.
3.3. 문자 리터럴
char 데이터 유형의 경우 리터럴은 몇 가지 방식으로 올 수 있습니다.
작은따옴표 문자는 일반적이며 특수 문자에 특히 유용합니다.
char c = 'a';
char c2 = '\n';
작은 따옴표 사이에 하나의 단일 문자 또는 특수 문자만 사용할 수 있습니다 .
문자에 사용된 정수 값은 해당 문자의 유니코드 값으로 변환됩니다.
char c = 65;
정수 리터럴과 같은 방식으로 지정할 수 있습니다.
마지막으로 유니코드 표현을 사용할 수 있습니다.
char c= '\u0041';
마지막 두 예제의 식은 문자 A 를 평가합니다.
3.4. 문자열 리터럴
큰따옴표 사이의 모든 텍스트는 문자열 리터럴입니다.
String s = "string_literal";
문자열 리터럴은 한 줄에만 있을 수 있습니다. 여러 줄 String 을 갖기 위해 컴파일 타임에 실행될 표현식을 사용할 수 있습니다.
String multiLineText = "When we want some text that is on more than one line,\n"
+ "then we can use expressions to add text to a new line.\n";
4. 짧은 바이트 리터럴
위에서 우리는 모든 유형의 리터럴을 선언하는 방법을 보았습니다. byte 및 short 를 제외한 모든 유형에 대해 변수를 만들 필요가 없습니다. 우리는 단순히 리터럴 값을 사용할 수 있습니다.
예를 들어 메서드에 인수를 전달할 때 리터럴을 전달할 수 있습니다.
static void literals(int i, long l, double d, float f, char c, String s) {
// do something
}
//Call literals method
literals(1, 123L, 1.0D, 1.0F, 'a', "a");
리터럴 유형을 지정하는 표기법이 있으므로 기본 유형으로 사용되지 않습니다. 위의 예에서 F 는 유일한 필수 표기법입니다.
놀랍게도 byte 및 short 유형 에 문제가 발생합니다 .
static void shortAndByteLiterals(short s, byte b) {
// do something
}
//Call the method
shortAndByteLiterals(1, 0); // won't compile
이러한 제한에도 불구하고 두 가지 솔루션이 있습니다.
첫 번째 솔루션은 이전에 선언한 몇 가지 변수를 사용하는 것입니다.
short s = 1;
byte b = 1;
shortAndByteLiterals(s, b);
리터럴 값을 캐스팅하는 또 다른 옵션은 다음과 같습니다.
shortAndByteLiterals((short) 1, (byte) 0);
이것은 컴파일러가 적절한 유형을 사용하도록 하기 위해 필요합니다.
5. 결론
이 기사에서는 Java에서 리터럴을 지정하고 사용하는 다양한 방법을 살펴보았습니다.