์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- xv6
- ๊ฐ๋ฐ์์ทจ์
- ์ค๋ฅ์ ์ด
- tcp ์ธ๊ทธ๋จผํธ
- til
- i-type
- leetcode
- ํ๋ ์ ๊ตฌ์กฐ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- mariadb
- ์ฐ๋ถํฌdb
- ์ค๋ธ์
- ํ ํฐ ๋ฒ์ค
- ์์๋ฒํธ
- 99ํด๋ฝ
- ์๋น์ค ํ๋ฆฌ๋ฏธํฐ๋ธ
- ์ค๋ ๋
- ํญํด99
- tcp ํ๋กํ ์ฝ
- git merge
- ํ๋ก์ด๋์์
- ์ฝ๋ฉํ ์คํธ์ค๋น
- ์ฃผ๊ธฐ์ ํธ
- IEEE 802
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ๋ฐ์ดํฐ ์ ์ก
- ๋น์ฃผ๊ธฐ์ ํธ
- well known ํฌํธ
- ์ค๋ฅ๊ฒ์ถ
- reducible
- Today
- Total
๋ชฉ๋กJava (21)
Unfazedโ๏ธ๐ฏ
Java์ String Pool์ JVM์ด ๋ฌธ์์ด ๊ฐ์ฒด๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํน๋ณํ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด๋ค. ์ด๋ฅผ ํตํด ๋์ผํ ๋ฌธ์์ด ๊ฐ์ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ์ฌ์ฌ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ด๊ณ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๋ค.๊ธฐ๋ณธ ๊ฐ๋ String Pool(๋๋ String Constant Pool, String Intern Pool)์ JVM์ ํ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์กด์ฌํ๋ ํน๋ณํ ๊ณต๊ฐ์ผ๋ก, ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ด ์ ์ฅ๋๋ค. String Pool์ ๋ฌธ์์ด์ ๋ถ๋ณ์ฑ(immutability)๊ณผ String interning์ด๋ผ๋ ๊ฐ๋ ์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ค. 2. ๋ฌธ์์ด ์์ฑ ๋ฐฉ์๊ณผ String Pool1. ๋ฌธ์์ด ๋ฆฌํฐ๋ด ์์ฑString s1 = "hello";String s2 = "hello"; JVM์ str1์ ์์ฑํ ๋ "..

Java์์ ์ฐธ์กฐ๋ณ์๋ ๋จ์ํ ๊ฐ์ฒด์ ์ฃผ์๊ฐ์ ์ ์ฅํ๊ณ ์๋ค๊ณ ์๊ฐํ๊ณ ์์๋๋ฐ, ์ฐธ์กฐ๋ณ์๋ฅผ ์ถ๋ ฅํด๋ณด์์ ๋๋ ํด๋์ค๋ช @16์ง์ ํด์์ฝ๋๋ก ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ๊ณ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ฐธ์กฐ๋ณ์๊ฐ ๊ฐ์ฒด์ ์ฃผ์๊ฐ์ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ธ์ง ๊ถ๊ธํด์ก๋ค.ํด๋น ๊ธ์์๋ ์ฐธ์กฐ ๋ณ์๊ฐ ๊ฐ์ฒด๋ฅผ ์ด๋ป๊ฒ ์ฐธ์กฐํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ฐธ์กฐ ๋ณ์ ์ถ๋ ฅ ์ ๋ํ๋๋ ํด์์ฝ๋์ ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ๊ด๊ณ์ ๋ํด ์์๋ณด๋ ค๊ณ ํ๋ค.Java์ ์ฐธ์กฐ ๋ณ์์ฐธ์กฐ๋ณ์๋ ํ(Heap) ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๊ฐ์ฒด์ ์ฃผ์๋ฅผ ์ ์ฅํ์ง๋ง, ๊ฐ๋ฐ์์๊ฒ ์ง์ ์ฃผ์๊ฐ์ ๋ ธ์ถํ์ง ์๋๋ค๊ณ ํ๋ค. ๋์ toString() ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ํด๋์ค๋ช @ํด์์ฝ๋ ํ์์ ๋ฌธ์์ด์ด ๋ฐํ๋๋ค. ํด์์ฝ๋ vs ์ค์ ์ฃผ์Product@1302068a์ ๊ฐ์ ํด์์ฝ๋๋ ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์๋ฏธํ์ง ์๋..
API๋ฅผ ์ค๊ณํ ๋, ์ฌ์ฉ์๊ฐ ๋ฉ์๋ ์๊ทธ๋์ฒ๋ง ๋ณด๊ณ ๋ ๋ฐํ๊ฐ์ด ์ ํํ์ธ์ง, ์ฆ ๊ฐ์ด ์กด์ฌํ์ง ์์ ์ ์์์ ์ฝ๊ฒ ์ธ์งํ ์ ์๋ค๋ฉด ํจ์ฌ ์์ ํ๊ณ ๋ช ๋ฃํ API๋ฅผ ์ ๊ณตํ ์ ์์ ๊ฒ์ด๋ค. ์ด ๊ธ์์๋ Java 8๋ถํฐ ๋์ ๋ Optional ํด๋์ค๋ฅผ ํ์ฉํด API ์ค๊ณ์ ๋ช ํ์ฑ์ ๋์ด๊ณ , NullPointerException๊ณผ ๊ฐ์ ์ค๋ฅ๋ฅผ ์๋ฐฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๋ ค ํ๋ค.1. Optional์ ๊ธฐ๋ณธ ๊ฐ๋ public final class Optionalextends ObjectA container object which may or may not contain a non-null value. - ๊ณต์ ๋ฌธ์ ์ ์Java 8 ๋ถํฐ ๋์ ๋ Optional๋ null์ด ๋ ์ ์๋ ๊ฐ์ ๊ฐ์ธ๋ ๋ํผ(wrapp..
Java์์ null์ ์ฐธ์กฐ ํ์ ๋ณ์๊ฐ ์๋ฌด ๊ฐ์ฒด๋ ๊ฐ๋ฆฌํค์ง ์์์ ๋ํ๋ด๋ ํน์ํ ๋ฆฌํฐ๋ด์ด๋ค. null์ ๊ฐ์ฒด๊ฐ ์๋๋ฉฐ, ๋ชจ๋ ์ฐธ์กฐ ํ์ ์ ํ ๋น ๊ฐ๋ฅํ์ง๋ง ์ฃผ์๊ฐ์ด 0x0์ผ๋ก ๊ณ ์ ๋์ด ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ด ์ฐจ๋จ๋๋ค.null์ ๋ณธ์ง์ ํน์ฑ๋ฆฌํฐ๋ด ํ์ : null์ ํค์๋๊ฐ ์๋ ๋ฆฌํฐ๋ด๋ก ๋ถ๋ฅ๋๋ฉฐ, instanceof ์ฐ์ฐ์๋ก ํ์ธ ์ ํญ์ false ๋ฐํ(null์ Object๊ฐ ์๋๊ธฐ ๋๋ฌธ)ํ์ ์์คํ : ๋ชจ๋ ์ฐธ์กฐ ํ์ (ํด๋์ค, ์ธํฐํ์ด์ค, ๋ฐฐ์ด)์ ํ ๋น ๊ฐ๋ฅํ์ง๋ง ๊ธฐ๋ณธํ(int ๋ฑ)์๋ ์ง์ ํ ๋น ๋ถ๊ฐํน์ฑ์ค๋ช ์ฃผ์๊ฐ0x0์ผ๋ก ๊ณ ์ ๋์ด ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ ์ฐจ๋จ๋ฉ๋ชจ๋ฆฌ ๋ ์ด์์๊ฐ์ฒด ํค๋ ์์ด ๋จ์ 0๊ฐ ์ ์ฅํ์ ์บ์คํ ์ด๋ค ์ฐธ์กฐ ํ์ ์ผ๋ก๋ ์บ์คํ ๊ฐ๋ฅ์ด๊ธฐํ ๊ธฐ๋ณธ๊ฐํด๋์ค ๋ฉค๋ฒ ๋ณ์์ ๊ฒฝ์ฐ ์๋์ผ๋ก null ์ด๊ธฐํnull..

Java์์ start() ๋ฉ์๋๋ฅผ ํธ์ถํด์ผ ํ๋ ์ด์ ์ run() ๋ฉ์๋ ์ง์ ํธ์ถ์ ๋ฌธ์ ์ ์ ์์๋ณด์. 1. ์ค๋ ๋ ์คํ ๋ฉ์ปค๋์ฆ์ ํต์ฌ ์ฐจ์ดstart() ๋ฉ์๋์ ์ญํ ์๋ก์ด ํธ์ถ ์คํ(Call Stack)์ ์์ฑํ์ฌ JVM์ด ํด๋น ์ค๋ ๋๋ฅผ ์ค์ผ์ค๋งํ ์ ์๋๋ก ์ค๋น ์ํ๋ก ์ ํํ๋ค. ์ด ๊ณผ์ ์์ ๋ค์ดํฐ๋ธ ๋ฉ์๋ start0()๊ฐ ํธ์ถ๋๋ฉฐ, ์ด๋ OS ์์ค์์ ์ค์ ์ค๋ ๋ ๋ฆฌ์์ค๋ฅผ ํ ๋นํ๋ ์ญํ ์ ์ํํ๋ค. run() ์ง์ ํธ์ถ์ ๋ฌธ์ ์ ํ์ฌ ์คํ ์ค์ธ ์ค๋ ๋์ ํธ์ถ ์คํ์์ ๋๊ธฐ์ ์ผ๋ก ์ฝ๋๊ฐ ์คํ๋๋ค. ์ด๋ ๋จ์ ๋ฉ์๋ ํธ์ถ๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ์๋ํ๋ฉฐ, ๋ฉํฐ์ค๋ ๋ฉ์ ํต์ฌ์ธ ๋ณ๋ ฌ ์คํ์ด ๋์ง ์๋๋ค.// ์๋ชป๋ ์ฌ์ฉ ์์Thread myThread = new MyCustomThread();myThrea..
์ค๋ ๋ ์ค๋จ์ ํ์์ฑ๊ณผ ์ํฉ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ค๋ ๋๋ ์์์ ์๋นํ๋ค. ์ค๋ ๋๊ฐ ์คํ ์ค์ด์ง ์๋๋ผ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ปค๋ ์์์ ์ฌ์ฉํ๋ฉฐ, ์คํ ์ค์ธ ๊ฒฝ์ฐ CPU ์๊ฐ์ ํ ๋น๋ฐ๋๋ค. ์ด๋ฌํ ์์ ์๋น๋ ๋ถํ์ํ๊ฒ ์คํ๋๊ณ ์๊ฑฐ๋ ๋ ์ด์ ์์ ์ ์ํํ์ง ์๋ ์ค๋ ๋๊ฐ ์กด์ฌํ ๋ ๋ฌธ์ ๊ฐ ๋๋ค. ํนํ ๋ค์๊ณผ ๊ฐ์ ์ํฉ์์ ์ค๋ ๋ ์ค๋จ์ด ์๊ตฌ๋๋ค.๋ถํ์ํ ๋ฆฌ์์ค ํ์: ์์ ์ ์๋ฃํ ํ์๋ ์ค๋ ๋๊ฐ ์ข ๋ฃ๋์ง ์์ ๋ฆฌ์์ค๋ฅผ ๊ณ์ ์๋นํ๋ ๊ฒฝ์ฐ, ํด๋น ์ค๋ ๋๋ฅผ ์ข ๋ฃํจ์ผ๋ก์จ ์์ ์ฌ์ฉ์ ์ต์ ํํ ์ ์๋ค.๋น์ ์ ๋์ ๋์: ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๊ฑฐ๋ ๋ณต์กํ ๊ณ์ฐ์ ์ํํ๋ ๋์ค, ์์๋ณด๋ค ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ๋ ์๋ต์ด ์๋ ๊ฒฝ์ฐ ์ค๋ ๋๋ฅผ ์ค๋จํด ์์คํ ์ ์ฒด์ ์์ ์ฑ์ ์ ์งํ ์ ์๋ค.์ ํ๋ฆฌ์ผ์ด์ ์ข ๋ฃ ์ ์ฒ๋ฆฌ: ๋ฉ์ธ ์ค๋ ๋๊ฐ ์ข ..
Java์์๋ ์ค๋ ๋๋ฅผ ์์ฑํ๋ ๋ ๊ฐ์ง ๋ฐฉ์์ด ์๋ค.Runnable ์ธํฐํ์ด์ค ๊ตฌํ ๋ฐฉ์๋ณ๋์ Runnable ๊ฐ์ฒด๋ฅผ ์์ฑํ ํ ์ด๋ฅผ Thread ํด๋์ค์ ์์ฑ์์ ์ ๋ฌํ์ฌ ์ค๋ ๋๋ฅผ ์์ฑํ๋ค.์ด์ ๊ฒ์๊ธ์์ ๋ค๋ฃฌ ๋ฐฉ์์ผ๋ก ์ฝ๋์ ๋ก์ง์ ๋ถ๋ฆฌํด์ ์์ฑํ ์ ์๋ค.Runnable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๋ฐฉ์์ ์ฝ๋์ ์ค๋ ๋ฉ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ์ฌ ์์ฑํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ค๋ ๋๋ก ์คํํ ์์ ์ ์ง์คํ ์ ์๊ณ , ๋์ผํ Runnable์ ์ฌ๋ฌ ์ค๋ ๋์์ ์ฌ์ฌ์ฉํ๊ฑฐ๋ ํ ์คํธํ๊ธฐ๊ฐ ์ฉ์ดํ๋ค. ๋ํ, ์์์ ์ ์ฝ ์์ด ๋ค๋ฅธ ํด๋์ค๋ฅผ ์์๋ฐ์ ์ ์๋ค๋ ์ ๋ ํฐ ์ด์ ์ด๋ค. Thread ํด๋์ค๋ฅผ ์์๋ฐ๋ ๋ฐฉ์Thread ํด๋์ค ์์ฒด๊ฐ Runnable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ณ ์์ผ๋ฏ๋ก, ์ด๋ฅผ ์์ํ์ฌ run()..

1. ๋ฉํฐ์ค๋ ๋ฉ์ ๊ฐ๋ ๋ฉํฐ์ค๋ ๋ฉ์ ํ๋์ ํ๋ก๊ทธ๋จ ๋ด์์ ์ฌ๋ฌ ์์ ์ ๋์์ ์คํํ ์ ์๋๋ก ํ๋ ๊ธฐ๋ฒ์ด๋ค. Java์์๋ Thread ํด๋์ค์ Runnable ์ธํฐํ์ด์ค๋ฅผ ์ด์ฉํด ๋ฉํฐ์ค๋ ๋๋ฅผ ๊ตฌํํ ์ ์๋ค.์ค๋ ๋๋ฅผ ํ์ฉํ๋ฉด CPU ์์์ ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ์ฌ ๋ณ๋ ฌ ์ฒ๋ฆฌ ๋ฐ ์๋ต์ฑ์ ๋์ผ ์ ์๋ค.2. ์๋ก์ด ์ค๋ ๋ ์์ฑํ๊ธฐJava์์ ์๋ก์ด ์ค๋ ๋๋ฅผ ์์ฑํ๋ ค๋ฉด ๋จผ์ Thread ๊ฐ์ฒด๋ฅผ ์์ฑํด์ผ ํ๋ค. ์์ฑ์์ Runnable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ๊ณ , Runnable ์ธํฐํ์ด์ค์ run() ๋ฉ์๋์ ์ค๋ ๋๊ฐ ์คํํ ๋ก์ง์ ์์ฑํ ์ ์๋ค.Thread thread = new Thread(new Runnable() { @Override public void run() { ..

HashSet์ Java Collections Framework์ ํต์ฌ ๊ตฌ์ฑ ์์ ์ค ํ๋๋ก, ์ค๋ณต์ ํ์ฉํ์ง ์๋ ์งํฉ(Set) ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ๋ค. 1. HashSet์ ์ฃผ์ ํน์ง์ค๋ณต ์์๋ฅผ ํ์ฉํ์ง ์์ : ๋ฐ์ดํฐ ๋๋ฑ์ฑ ํ์ธ์ ์ํ equals(), hashCode() ๋ฉ์๋ ํ์์์๋ฅผ ๋ณด์ฅํ์ง ์์ : ์ธ๋ฑ์ค๊ฐ ๋งค๊ฐ ๋ณ์๋ก ๋์ด๊ฐ๋ ๋ฉ์๋(get(int index), indexOf(Object o) ๋ฑ)์ด ์์null ์์ ํ์ฉ ๋น๋๊ธฐ(non-synchronized) ๊ตฌํO(1) ์๊ฐ ๋ณต์ก๋์ ๊ธฐ๋ณธ ์ฐ์ฐ2. ๋ด๋ถ ๊ตฌ์กฐ 2-1) ์ฃผ์ ํ๋์์ ์ฝ๋์์ ๋ณผ ์ ์๋ฏ์ด HashSet์ ๋ด๋ถ์ ์ผ๋ก HashMap์ ์ฌ์ฉํ์ฌ ๊ตฌํํ๋ค.HashSet์ ์์๋ค์ HashMap์ key๋ก ์ ์ฅํ๋ค.๋ชจ๋ ๊ฐ์ ๋..

Java 8์์ ๋์ ๋ Stream API๋ ์ปฌ๋ ์ ์ ์ฒ๋ฆฌํ๋ ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค. ๊ทธ ์ค์์๋ map()๊ณผ flatMap() ๋ฉ์๋๋ ๋ฐ์ดํฐ ๋ณํ๊ณผ ์ฒ๋ฆฌ์ ์์ด ํต์ฌ์ ์ธ ์ญํ ์ ํ๋ค. 1. map() Stream map( Function mapper // R : ์ถ๋ ฅ ํ์ (์๋ก์ด ์คํธ๋ฆผ์ ์์ ํ์ ))map() ๋ฉ์๋๋ ์คํธ๋ฆผ์ ๊ฐ ์์๋ฅผ ๋ค๋ฅธ ์์๋ก ๋ณํํ๋ 1:1 ๋งคํ์ ์ํํ๋ค. ์ ๋ ฅ ์์ ํ๋๋น ์ ํํ ํ๋์ ์ถ๋ ฅ ์์๊ฐ ์์ฑ๋๋ค.์ฃผ์ ํน์ง๊ฐ ์์๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๋ณํ์คํธ๋ฆผ์ ์์ ๊ฐ์ ์ ์ง (one-to-one)์๋ณธ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ณด์กด๋ฐํ ํ์ : Stream (R์ ๋ณํ๋ ํ์ )์์ ์ฝ๋// ๋ฌธ์์ด ๊ธธ์ด ๋ณํList words = Arrays.asList("Java", "Stre..