๊ธฐ๋ณธํ
์ค์ ๊ฐ์ ์ ์ฅ
- ๋ ผ๋ฆฌํ (boolean)
- ๋ฌธ์ํ (char)
- ์ ์ํ (byte, short, int, long)
- ์ค์ํ (float, double)
์ฐธ์กฐํ
๊ฐ์ฒด์ ์ฃผ์๋ฅผ ์ ์ฅ
8๊ฐ์ ๊ธฐ๋ณธํ์ ์ ์ธํ ๋๋จธ์ง ํ์
์ฐธ์กฐ ๋ณ์์ ํ์ : ํด๋์ค ์ด๋ฆ
์ฐธ์กฐ ๋ณ์๋ null ํน์ ๊ฐ์ฒด ์ฃผ์๋ฅผ ๊ฐ์ผ๋ก ๊ฐ์ง
Date today = new Date();
1. ๊ธฐ๋ณธํ
- ๋ ผ๋ฆฌํ (boolean): true์ false์ค ํ๋๋ฅผ ๊ฐ์ผ๋ก ๊ฐ์ง
- ๋ฌธ์ํ (char): ํ๋์ ๋ฌธ์๋ง ์ ์ฅ ๊ฐ๋ฅ
- ์ ์ํ (byte, short, int, long)
- ์ค์ํ (float, double)
1byte (8bit) | 2byte (16bit) | 4byte (32bit) | 8byte (64bit) | |
๋ ผ๋ฆฌ ํ | boolean | |||
๋ฌธ์ ํ | char | |||
์ ์ ํ | byte | short | int | long |
์ค์ ํ | float | double |
๊ฐ์ ๋ฒ์: -2^n-1 ~ 2^n-1 -1 (n์ bit์)
2. ์์์ ๋ฆฌํฐ๋ด
์์
- ํ๋ฒ ๊ฐ์ ์ ์ฅํ๋ฉด ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋ณ๊ฒฝํ ์ ์๋ค
- ์์์ ์ด๋ฆ์ ๋ชจ๋ ๋๋ฌธ์, ์ฌ๋ฌ ๋จ์ด์ธ ๊ฒฝ์ฐ '_'๋ก ๊ตฌ๋ถํ๋ค
final int MAX_SPEED = 10;
๋ฆฌํฐ๋ด
์ฐ๋ฆฌ๊ฐ ๊ธฐ์กด์ ์๊ณ ์๋ ‘์์’
→ ํ๋ก๊ทธ๋๋ฐ์์ ์์๋ฅผ ‘๊ฐ์ ํ๋ฒ ์ ์ฅํ๋ฉด ๋ณ๊ฒฝํ ์ ์๋ ๊ณต๊ฐ’์ผ๋ก ์ ์ํ์ฌ ์ด์ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ฌ์ฉ
int year = 2023;
final int MAX_VALUE = 100;
์์ ์์์์ year๋ ๋ณ์, MAX_VALUE๋ ์์
2023๊ณผ 100์ ๋ฆฌํฐ๋ด์ด๋ค.
๐ก์ ๋ฆฌ
๋ณ์(variable): ํ๋์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ๊ณต๊ฐ
์์(constant): ๊ฐ์ ํ๋ฒ๋ง ์ ์ฅํ ์ ์๋ ๊ณต๊ฐ
๋ฆฌํฐ๋ด(literal): ๊ทธ ์์ฒด๋ก ๊ฐ์ ์๋ฏธํ๋ ๊ฒ
์์๊ฐ ํ์ํ ์ด์
int triangleArea = (20 * 10) / 2; // ์ผ๊ฐํ์ ๋ฉด์ ์ ๊ตฌํ๋ ๊ณต์
int rectangleArea = 20 * 10; // ์ฌ๊ฐํ์ ๋ฉด์ ์ ๊ตฌํ๋ ๊ณต์
์์๋ฅผ ์ด์ฉํ์ฌ ์์ ์ฝ๋ ์์
final int WIDTH = 20;
final int HEIGHT = 10;
int triangleArea = (WIDTH * HEIGHT) / 2;
int rectangleArea = WIDTH * HEIGHT;
1. ๊ณต์์ ์๋ฏธ๊ฐ ๋ช ํํ๋ค
2. ์์์ ๊ฐ์ ๋ณ๊ฒฝํ ๋ ์์ ์ ํธํ๊ฒ ํ ์ ์๋ค
๋ฆฌํฐ๋ด์ ํ์ ๊ณผ ์ ๋ฏธ์ฌ
์ข
๋ฅ |
๋ฆฌํฐ๋ด | ์ ๋ฏธ์ฌ |
๋ ผ๋ฆฌ ํ | false, true | |
์ ์ ํ | 123, 123L | L |
์ค์ ํ | 3.14, 1.4f | f, d |
๋ฌธ์ ํ | ‘A’, ‘1’ | |
๋ฌธ์์ด | “ABC” |
์ ์ํ
์ ๋ฏธ์ฌ๊ฐ ์์ผ๋ฉด intํ
์ ๋ฏธ์ฌ๊ฐ L์ด๋ฉด longํ
2์ง์, 8์ง์, 16์ง์๋ ์ ๋์ฌ๋ฅผ ๋ถ์ฌ ๊ตฌ๋ถ
16์ง์: 0x
8์ง์: 0
2์ง์: 0b
int hexNum = 0x10; // 16์ง์ 10, 10์ง์ 16
int octNum = 010; // 8์ง์ 10, 10์ง์ 8
int binNum = 0b10; // 2์ง์ 10, 10์ง์ 2
* JDK1.7๋ถํฐ ์ ์ ํ ๋ฆฌํฐ๋ด์ ์ค๊ฐ์ _ ๊ตฌ๋ถ์ ๋ฃ๊ธฐ ๊ฐ๋ฅ
์ค์ํ
floatํ์๋ f / F
doubleํ์๋ d / D → ๊ธฐ๋ณธ ์๋ฃํ์ด๋ฏ๋ก ์๋ต ๊ฐ๋ฅ
float pi = 3.14f;
double rate = 1.618d;
๋ฆฌํฐ๋ด์ ์์์ ์ด๋ 10์ ์ ๊ณฑ์ ๋ํ๋ด๋ ๊ธฐํธ E / e, ๊ทธ๋ฆฌ๊ณ ์ ๋ฏธ์ฌ f, F, d, D๋ฅผ ํฌํจํ๊ณ ์์ผ๋ฉด ์ค์ ํ ๋ฆฌํฐ๋๋ก ๊ฐ์ฃผ๋๋ค.
์๋ฃํ |
์ค์ ํ ๋ฆฌํฐ๋ด | ๊ฐ์ ํํ |
float | 3.14e3f | 3140.0f |
double | 1e-3 | 0.001 |
double | .10 | 0.10 |
ํ์ ์ ๋ถ์ผ์น
์ ์ฅ ๋ฒ์๊ฐ ๋์ ํ์ ์ ์ข์ ํ์ ์ ๊ฐ์ ์ ์ฅํ๋ ๊ฒ์ ํ์ฉ
long i = 123; // int๋ณด๋ค longํ์
์ด ๋ ๋ฒ์๊ฐ ๋๋ค
double d = 3.14f; // float๋ณด๋ค doubleํ์
์ด ๋ ๋ฒ์๊ฐ ๋๋ค
⇒ ํ์ง๋ง ๋ฐ๋์ ๊ฒฝ์ฐ๊ฐ ๋๋ฉด ์ปดํ์ผ ์๋ฌ ๋ฐ์!
๋ฌธ์ ๋ฆฌํฐ๋ด๊ณผ ๋ฌธ์์ด ๋ฆฌํฐ๋ด
๋ฌธ์ ๋ฆฌํฐ๋ด: ์์ ๋ฐ์ดํ๋ก ๋ฌธ์ ํ๋๋ฅผ ๊ฐ์ผ ๊ฒ
๋ฌธ์์ด ๋ฆฌํฐ๋ด: ํฐ ๋ฐ์ดํ๋ก ๋ ๋ฌธ์ ์ด์์ ๋ฌธ์๋ฅผ ๊ฐ์ผ ๊ฒ
๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ๋น ๋ฌธ์์ด์ ํ์ฉํ์ง๋ง ๋ฌธ์ ๋ฆฌํฐ๋ด์ ๋ฐ๋์ ‘’ ์์ ํ๋์ ๋ฌธ์๊ฐ ์์ด์ผ ํ๋ค.
String str = "";
char ch = ''; // Error
์๋ String์ ํด๋์ค์ด๋ฏ๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ฐ์ฐ์ new๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
ํ์ง๋ง ์์ ๊ฐ์ ํํ๋ ํ์ฉํ๋ค.
String name = new String("Java");
๋ฌธ์์ด ๋ฆฌํฐ๋ด ๊ฒฐํฉ
๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ ๊ตฌ๋ถ ์์ด ์ด๋ค ํ์ ์ ๋ณ์๋ ๋ฌธ์์ด๊ณผ ๋ง์ ํ๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ ๋ฌธ์์ด์ด ๋๋ค.
๋ฌธ์์ด + any type → ๋ฌธ์์ด + ๋ฌธ์์ด → ๋ฌธ์์ด
any type + ๋ฌธ์์ด → ๋ฌธ์์ด + ๋ฌธ์์ด → ๋ฌธ์์ด
7 + “” → “7”
true + “” → “true”
7 + 7 + “” → “77”
3. ํ์ํ๋ ์ถ๋ ฅ - printf()
‘์ง์์’๋ฅผ ํตํด ๋ค์ํ ํ์์ผ๋ก ์ถ๋ ฅ ๊ฐ๋ฅ
์ถ๋ ฅ ํ ์ค๋ฐ๊ฟ์ ํ์ง ์์ผ๋ฏ๋ก ์ํ๋ฉด %n์ ์ฌ์ฉ
์ง์์ | ์ค๋ช |
%b | booleanํ์ |
%d | 10์ง(decimal) ์ ์ |
%o | 8์ง(octal) ์ ์ |
%x, %X | 16์ง(hexa - decimal)์ ์ |
%f | ๋ถ๋ ์์์ (floating-point) |
%e, %E | ์ง์(exponent) ํํ์ |
%c | ๋ฌธ์(character) |
%s | ๋ฌธ์์ด(string) |
์ ์ํ
10์ง์
์ง์์: %d
์ถ๋ ฅ๋ ๊ฐ์ด ์ฐจ์งํ ๊ณต๊ฐ์ ์ซ์๋ก ์ง์ ๊ฐ๋ฅ
System.out.printf("[%5d]%n", finger); // [ 10]
System.out.printf("[%-5d]%n", finger); // [10 ]
System.out.printf("[%05d]%n", finger); // [00010]
16์ง์, 8์ง์
์ง์์ %x , %o์ #๋ฅผ ์ฌ์ฉํ๋ฉด ์ ๋์ฌ 0x, 0์ด ๋ถ๋๋ค
%X ๋ 16์ง์์ ์ฌ์ฉ๋๋ ์ ๋์ฌ์ ์๋ฌธ์๋ฅผ ๋๋ฌธ์๋ก ์ถ๋ ฅ
System.out.printf("%x%n", hex); // ffffffffffffffff
System.out.printf("%#x%n", hex); // 0xffffffffffffffff
System.out.printf("%#X%n", hex); // 0XFFFFFFFFFFFFFFFF
2์ง์
10์ง์๋ฅผ 2์ง์๋ก ์ถ๋ ฅํด์ฃผ๋ ์ง์์๋ ์๋ค
์ ์๋ฅผ 2์ง์ ๋ฌธ์์ด๋ก ๋ณํํด์ฃผ๋ Integer.toBinaryString(int i) ์ฌ์ฉ
System.out.printf("%s%n", Integer.toBinaryString(binNum));
charํ์
%d ๋ก ์ถ๋ ฅํ๊ณ ์ถ์ ๋๋ int๋ก ํ๋ณํ ํ ์ฌ์ฉ
System.out.printf("c = %c, %d %n", c, (int)c);
์ค์ํ
์ง์์: %f, %e, %g
์ฃผ๋ก %f๊ฐ ์ฐ์ด๊ณ , ์ง์ ํํ๋ก ์ถ๋ ฅํ ๋ %e, ๊ฐ์ ๊ฐ๋ตํ๊ฒ ํํํ ๋ %g๋ฅผ ์ฌ์ฉ
%f๋ ์์์ ์๋ 6์๋ฆฌ๊น์ง ์ถ๋ ฅ, ์์์ ์๋ 7์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ
double d = 1.23456789;
System.out.printf("%f", d); // 1.234568
์ ์ฒด ์๋ฆฌ ์์ ์์์ ์๋ ์๋ฆฌ ์ ์ง์ ๊ฐ๋ฅ %์ ์ฒด์๋ฆฌ.์์์ ์๋ ์๋ฆฌf
System.out.printf("%14.10f", d); // ์ ์ฒด 14์๋ฆฌ ์ค ์์์ ์๋ 10์๋ฆฌ
1 | 2 | 3 | 4 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
1 | . | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 0 |
์์์ ๋ ํ ์๋ฆฌ๋ฅผ ์ฐจ์งํ๋ฉฐ, ์์์ ์๋์ ๋น์๋ฆฌ๋ 0์ผ๋ก ์ฑ์ฐ๊ณ ์ ์์ ๋น์๋ฆฌ๋ ๊ณต๋ฐฑ์ผ๋ก ์ฑ์ด๋ค.
๋ฌธ์์ด
์ง์์: %s
String url = "www.codechobo.com":
System.out.printf("[%s]%n", url); // [www.codechobo.com]
System.out.printf("[%20s]%n", url); // [ www.codechobo.com] ์ฐ์ธก์ ๋ ฌ
System.out.printf("[%-20s]%n", url); // [www.codechobo.com ] ์ฃ์ธก์ ๋ ฌ
System.out.printf("[%.8s]%n", url); // [www.code] ์ผ์ชฝ์์ 8๊ธ์๋ง ์ถ๋ ฅ
4. ํ๋ฉด์์ ์ ๋ ฅ ๋ฐ๊ธฐ - Scanner
Scanner scanner = new Scanner(System.in);
Enter๋๋ฅด๊ธฐ ์ ๊น์ง์ ๋ด์ฉ ์ ๋ ฅ: scanner.nextLine()
intํ์ผ๋ก ์ ๋ ฅ: scanner.nextInt()
floatํ์ผ๋ก ์ ๋ ฅ: scanner.nextFloat()
Reference
์๋ฐ์ ์ ์ - ๋จ๊ถ ์ฑ
'๐ Book > ์๋ฐ์ ์ ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
3-1์ฅ ์ฐ์ฐ์ (1) | 2023.03.14 |
---|---|
2-5์ฅ ํ ๋ณํ (0) | 2023.03.09 |
2-4์ฅ ๊ธฐ๋ณธํ (0) | 2023.03.09 |
2-3์ฅ ์ง๋ฒ (1) | 2023.03.09 |
2-1์ฅ ๋ณ์ (0) | 2023.03.07 |
๋๊ธ