[JAVA]์ฐ์ฐ์
in Tech-Stack on JAVA
Contents
์ฐ์ฐ์
- ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ธฐํธ ์งํฉ
- ๊ธฐ์กด ๋ฐ์ดํฐ์์ ์ฐ์ฐ์๋ฅผ ํตํด ์ํ๋ ๊ฐ์ ์ป๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
- ํน์ ์ฐ์ฐ์๋ฅผ ์ ์ธํ๊ณ ๋ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฐ์ฐ์ ์งํํ๋ค.
- ์ฐ์ ์์
์ฆ๊ฐ ์ฐ์ฐ์ -> ์ฐ์ ์ฐ์ฐ์ -> ๋์ ์ฐ์ฐ์ -> ๋น๊ต ์ฐ์ฐ์ -> ๋ ผ๋ฆฌ ์ฐ์ฐ์ -> ๋จํญ ์ฐ์ฐ์
์์ฃผ ์ฌ์ฉ๋๋ ์ฐ์ฐ์
| ์ต์ฐ์ ์ฐ์ฐ์ | . - ๋ฉค๋ฒ ์ฐ์ฐ์ |
|---|---|
| ์ฐ์ ์ฐ์ฐ์ | / - ๋ชซ์ ๊ตฌํจ% - ๋๋จธ์ง ์ฐ์ฐ์(mod ์ฐ์ฐ) |
| ๊ด๊ณ ์ฐ์ฐ์ | ๊ฒฐ๊ณผ๊ฐ boolean ํ์ ์ผ๋ก ๋ฐํ๋๋ค. |
| ๋ ผ๋ฆฌ ์ฐ์ฐ์ | && - and ์ฐ์ฐ์. ๋ชจ๋ ์กฐ๊ฑด์ด true๋ฉด true, ํ๋๋ผ๋ false๋ฉด false|| - or ์ฐ์ฐ์. ํ๋๋ผ๋ true๋ฉด true |
| ๋์ ์ฐ์ฐ์ | =, +=, *=, -=, ... |
| ๋จํญ ์ฐ์ฐ์ | ๋ฌธ์++, ๋ฌธ์--, !, +/- |
| ์ฆ๊ฐ ์ฐ์ฐ์ | ++๋ฌธ์, --๋ฌธ์, -=, ... |
| ์ผํญ ์ฐ์ฐ์ | (์กฐ๊ฑดํญ) ? (true ๊ฒฐ๊ณผ) : (false ๊ฒฐ๊ณผ) |
| ๋นํธ ์ฐ์ฐ์ | ~ - Not ์ฐ์ฐ์<<, >>, >>> - shift ์ฐ์ฐ์. bit๋ฅผ ํ์ดํ ๋ฐฉํฅ์ผ๋ก ๋ฏธ๋ ๊ฒ &, |, ^ -> ^ : Xor ์ฐ์ฐ์. ๊ฐ์ผ๋ฉด false, ๋ค์ผ๋ฉด true ๋ฐํ |
ํน์ด ์ฌํญ
- ๋์
์ฐ์ฐ์
byte a = 10; a = a + 1;a๋ 1byte์ธ๋ฐ 1์ 4byte๋ผ์ ์ฐ์ฐ๊ฒฐ๊ณผ๋ 4byte๋ก ๋ฐํ๋๋ค.
4byte๋ฅผ 1byte์ ๋์ ํ๋ ค ํด์ error ๋ฐ์byte a = 10; a += 1;ํ์ง๋ง ๋์ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด 1์ a์ ๋์ผํ ํ์ ์ผ๋ก ํ๋ณํํด์ ์์์ ๊ณ์ฐํด์ค๋ค.
- ์ฆ๊ฐ ์ฐ์ฐ์
int a = 10; int b = a++; // ๋จํญ ์ฐ์ฐ์ int c = ++a; // ์ฆ๊ฐ ์ฐ์ฐ์ a = 12, b = 10, c = 12- ์ฆ๊ฐ ์ฐ์ฐ์๊ฐ ๋์ ์ฐ์ฐ์๋ณด๋ค ์ฐ์ ์์๊ฐ ๋๋ค.
- ๋จํญ ์ฐ์ฐ์๊ฐ ๋์
์ฐ์ฐ์๋ณด๋ค ์ฐ์ ์์๊ฐ ๋ฎ๋ค.
์ฆ๊ฐ ์ฐ์ฐ์ -> ๋์ ์ฐ์ฐ์(
=) -> ๋จํญ ์ฐ์ฐ์
- ๋
ผ๋ฆฌ ์ฐ์ฐ์์ short circuit evalution
- ๋
ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ์ฒด๋ฅผ ๋ ๊ฐ๋ก ๋๋๋ค.
bo = a++ > 0 || 1 < ++b * d-- / ++c; 1. a++ > 0 2. 1 < ++b * d-- / ++c - ์ฒซ๋ฒ์งธ ์์ ๊ฒฐ๊ณผ๊ฐ ์ ์ฒด ๊ฒฐ๊ณผ์ ์ํฅ์ ์ค๋ค๋ฉด ์ต์์ ํ์๋ง ํ๊ณ ์ข
๋ฃํ๋ค.
&&-> A && B ์์ A๊ฐ false๋ฉด ์ ์ฒด ๊ฒฐ๊ณผ๋ ๋ฌด์กฐ๊ฑด false์ด๋ฏ๋ก B๋ฅผ ์คํํ์ง ์๋๋ค.||-> A && B ์์ A๊ฐ true๋ฉด ์ ์ฒด ๊ฒฐ๊ณผ๋ ๋ฌด์กฐ๊ฑด true ์ด๋ฏ๋ก B๋ฅผ ์คํํ์ง ์๋๋ค.
- ๋
ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ์ฒด๋ฅผ ๋ ๊ฐ๋ก ๋๋๋ค.
~Not ์ฐ์ฐ์byte a = 10; // 00001010 ~a; // 11110101<<, >>, >>>shift ์ฐ์ฐ์- ๋ฐ๋ฆฐ ๋นํธ๋ ๋ถํธ ๋นํธ๋ก ์ฑ์ด๋ค. ์์๋ 0, ์์๋ 1 ```java byte a = 10; // 00001010 a ยซ= 2; // 001010_ _ -> 00101000 // a๋ 40
byte b = -1; // 11111111 bย ยป= 2; // _ _ 111111 -> 11111111 // b๋ -1 ```
&, |, ^์ฐ์ฐ์byte a = 10; a = a & 3; // 10 = 00001010 // 3 = 00000011 // => 00000010 a = 2byte b = 10; b = b | 3; // 10 = 00001010 // 3 = 00000011 // => 00001011 b = 11byte c = 10; c = c ^ 3; // 10 = 00001010 // 3 = 00000011 // => 00001001 c = 9System.out.print์์์ ์ฐ์ ์ฐ์ฐ์+1+2=3์ ์ถ๋ ฅํ๊ณ ์ถ์ด์ ์์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์คํํ๋ฉด46=2์ด ๊ฒฐ๊ณผ๋ก ๋ฐํ๋๋ค.int a = 1, b = 2; char operator = +; int result = a + b; System.out.println(a + operator + b + "=" + result);int(a, b),char(operator)๋ ๋ชจ๋ ์ ์ํ์ด๋ผ์+์ฐ์ฐ์๋ฅผ ๋ง๋๋ฉด์ 1 + 43(ASCIIcode๊ฐ) + 2๊ฐ ์คํ๋๊ธฐ ๋๋ฌธ์ด๋ค.
์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ๋๋ค.// ๋ฐฉ๋ฒ 1 System.out.printf("%d %s %d = %d", a, operator, b, result); // ๋ฐฉ๋ฒ 2 - ์ฐ์ฐ์๋ก ""์ ์ ์๋ฅผ ๋ํ๋ฉด ๋ฌธ์์ด์ด ๋๋ค. System.out.println("" + a + operator + b + "=" + result);
