λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
개발 이야기/JAVA

Java - λ¦¬ν„°λŸ΄ (literals)

by 0_0πŸ–€ 2023. 6. 29.
λ°˜μ‘ν˜•

- κ·Έ 자체둜 값을 의미

- 사싀 μƒμˆ˜μ™€ 같은데 μƒμˆ˜μ™€ κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄ λ¦¬ν„°λŸ΄μ΄λΌλŠ” μš©μ–΄λ₯Ό μ‚¬μš©. (μƒμˆ˜μ™€ λ‹€λ₯Έ 이름)

- λ³€μˆ˜μ™€ μƒμˆ˜μ²˜λŸΌ 데이터가 μ €μž₯된 λ©”λͺ¨λ¦¬ 곡간을 κ°€λ¦¬ν‚€λŠ” 이름을 가지고 μžˆμ§€ μ•Šλ‹€.

int var = 30; // λ¦¬ν„°λŸ΄μ€ 30
final int AGES = 100; // λ¦¬ν„°λŸ΄μ€ 100

 

νƒ€μž…(Type)에 λ”°λ₯Έ λ¦¬ν„°λŸ΄

- μžλ°”μ—μ„œ λ¦¬ν„°λŸ΄μ€ νƒ€μž…μ— 따라 λ‹€μŒκ³Ό 같이 ꡬ뢄할 수 μžˆλ‹€.

 

1. μ •μˆ˜ν˜• λ¦¬ν„°λŸ΄(Integer literals) : 123, -456κ³Ό 같이 아라비아 μˆ«μžμ™€ λΆ€ν˜Έλ‘œ 직접 ν‘œν˜„λœλ‹€.

2. μ‹€μˆ˜ν˜• λ¦¬ν„°λŸ΄(floating-point literals) : 3.14, -45.6κ³Ό 같이 μ†Œμˆ˜ 뢀뢄을 κ°€μ§€λŠ” 아라비아 숫자둜 ν‘œν˜„

3. λ…Όλ¦¬ν˜• λ¦¬ν„°λŸ΄(boolean literals) : trueλ‚˜ false둜 ν‘œν˜„

4. λ¬Έμžν˜• λ¦¬ν„°λŸ΄(character literals) : 'a', 'Z'와 같이 μž‘μ€λ”°μ˜΄ν‘œ( ' ' ) 둜 감싸진 문자둜 ν‘œν˜„

5. λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄(string literals) : "μžλ°”", "홍길동"κ³Ό 같이 큰 λ”°μ˜΄ν‘œ( " " ) 둜 감싸진 λ¬Έμžμ—΄λ‘œ ν‘œν˜„

6. null λ¦¬ν„°λŸ΄ (null literals) : 단 ν•˜λ‚˜μ˜ 값인 null둜 ν‘œν˜„ (λΉ„μ–΄μžˆμŒ 의미)

 

λ¦¬ν„°λŸ΄ νƒ€μž… 접미사 (literal type suffix)

- λ¦¬ν„°λŸ΄ 뒀에 μΆ”κ°€λ˜μ–΄ ν•΄λ‹Ή λ¦¬ν„°λŸ΄μ˜ νƒ€μž…μ„ λͺ…μ‹œν•΄μ£ΌλŠ” 접미사

- λ³€μˆ˜μ— νƒ€μž…μ΄ μžˆλŠ” κ²ƒμ²˜λŸΌ λ¦¬ν„°λŸ΄μ—λ„ νƒ€μž…μ΄ 쑴재. 특히 μ •μˆ˜ν˜•κ³Ό μ‹€μˆ˜ν˜•μ—λŠ” μ—¬λŸ¬ μ’…λ₯˜μ˜ νƒ€μž…μ΄ 쑴재

 

 

 

(1) μ •μˆ˜ν˜•κ³Ό μ‹€μˆ˜ν˜•μ˜ λ¦¬ν„°λŸ΄ νƒ€μž… 접미사

1. μ •μˆ˜ν˜• long νƒ€μž…μ€ λ¦¬ν„°λŸ΄ 접미사 'L' ν˜Ήμ€ ' l ' (숫자 1κ³Ό ν—·κ°ˆλ¦΄ 수 μžˆμœΌλ―€λ‘œ λŒ€λ¬Έμž μ‚¬μš© ꢌμž₯)

2. μ‹€μˆ˜ν˜• float νƒ€μž…μ€ λ¦¬ν„°λŸ΄ 접미사 'F' ν˜Ήμ€ ' f '

3. μ‹€μˆ˜ν˜• double νƒ€μž…μ€ λ¦¬ν„°λŸ΄ 접미사 'D' λ˜λŠ” 'd' (μƒλž΅ κ°€λŠ₯)

νƒ€μž… 접미사 λ¦¬ν„°λŸ΄ νƒ€μž… 예제
L λ˜λŠ” l long ν˜• 123456789L, ...
F λ˜λŠ” f float ν˜• 1.234567F, 8.9f, ...
D λ˜λŠ” d (μƒλž΅ κ°€λŠ₯) double ν˜• 1.2345D, 6.789d, ...

 

float pi = 3.14F;
float pi = 3.14; // (error) 
                 // 접미사가 μ—†μœΌλ©΄ double νƒ€μž…μ˜ λ¦¬ν„°λŸ΄μ΄κΈ° λ•Œλ¬Έμ— 
                 // float νƒ€μž… (4byte) μ €μž₯곡간에 doubleνƒ€μž… (8byte)의 값을 μ €μž₯ν•  수 μ—†λ‹€.
long big = 100_000_000L;

 - JDK 1.7 λΆ€ν„° μ •μˆ˜ν˜• λ¦¬ν„°λŸ΄ 쀑간에 κ΅¬λΆ„μž( _ )λ₯Ό 넣을 수 μžˆμ–΄ 큰 숫자 확인이 μš©μ΄ν•΄μ§ ( 10_000 = 10,000 )

 

 

 

(2) λ¦¬ν„°λŸ΄μ€ 10μ§„μˆ˜ 외에도 2,8,16 μ§„μˆ˜λ‘œ ν‘œν˜„ν•  수 μžˆλ‹€.

1. 2μ§„μˆ˜λŠ” 접두사 '0B' λ˜λŠ” '0b'

2. 8μ§„μˆ˜λŠ” 접두사 ' 0 '

3. 16μ§„μˆ˜λŠ” 접두사 '0X' λ˜λŠ” '0x'

νƒ€μž… 접두사 λ¦¬ν„°λŸ΄ νƒ€μž… 예제
0B λ˜λŠ” 0b 2μ§„μˆ˜ 0b10 ...
0 8μ§„μˆ˜ 010 ...
0X λ˜λŠ” 0x 16μ§„μˆ˜ 0x10 ...

 

int binNum = 0b10; // 2μ§„μˆ˜ 10, 10μ§„μˆ˜λ‘œλŠ” 2
int octNum = 010; // 8μ§„μˆ˜ 10, 10μ§„μˆ˜λ‘œλŠ” 8
int hexNum = 0x10; // 16μ§„μˆ˜ 10, 10μ§„μˆ˜λ‘œλŠ” 16

 

 

 

(3) μ‹€μˆ˜ν˜• λ¦¬ν„°λŸ΄μ€ 기호 E λ˜λŠ” eλ₯Ό 톡해 μ†Œμˆ˜μ μ΄λ‚˜ 10의 μ œκ³±μ„ λ‚˜νƒ€λ‚Έλ‹€.

μžλ£Œν˜• λ¦¬ν„°λŸ΄ λ‹€λ₯Έ ν˜•νƒœμ˜ λ™λ“±ν•œ ν‘œν˜„
double 10. 10.0
double .10 0.10
double 1e1 10.0
double 1e-3 0.001
float 10f 10.0f
float 3.14e3f 3140.0f

 

- double : 8λ°”μ΄νŠΈ (64bit)κΉŒμ§€ 수λ₯Ό ν‘œν˜„

- float : 4λ°”μ΄νŠΈ (32bit)κΉŒμ§€ 수λ₯Ό ν‘œν˜„

 

double이 μ’€ 더 큰 μˆ«μžκΉŒμ§€ ν‘œν˜„ν•  수 μžˆλ‹€.

λ°˜μ‘ν˜•

'개발 이야기 > JAVA' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

Java - 이클립슀 ν™˜κ²½ μ„€μ •  (0) 2023.07.01
Java - 데이터 νƒ€μž… (data type)  (0) 2023.06.29
Java - μƒμˆ˜ (constant)  (0) 2023.06.29
Java - λ³€μˆ˜ (variable)  (0) 2023.06.29
Java - System.out.println()  (0) 2023.06.29