์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 31 |
- tcp ์ธ๊ทธ๋จผํธ
- ํ๋ก์ด๋์์
- mariadb
- leetcode
- IEEE 802
- i-type
- well known ํฌํธ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ์ค๋ฅ์ ์ด
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ์ฝ๋ฉํ ์คํธ์ค๋น
- ๋ฐ์ดํฐ ์ ์ก
- tcp ํ๋กํ ์ฝ
- ์ค๋ฅ๊ฒ์ถ
- xv6
- ์ฐ๋ถํฌdb
- ์๋น์ค ํ๋ฆฌ๋ฏธํฐ๋ธ
- ํญํด99
- ํ ํฐ ๋ฒ์ค
- ํ๋ ์ ๊ตฌ์กฐ
- ๊ฐ๋ฐ์์ทจ์
- ์ค๋ ๋
- 99ํด๋ฝ
- ์ค๋ธ์
- ์ฃผ๊ธฐ์ ํธ
- reducible
- ์์๋ฒํธ
- git merge
- til
- ๋น์ฃผ๊ธฐ์ ํธ
- Today
- Total
๋ชฉ๋กJava (24)
Unfazedโ๏ธ๐ฏ
๊ฐ๋น์ง ์ปฌ๋ ์ ์ ์ญ์ฌ๋ง์ ์ฌ๋๋ค์ด ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ์๋ฐ์์ ์ฒ์ ์๊ฐ๋ ๊ธฐ์ ๋ก ์คํดํ์ง๋ง, ์ค์ ๋ก๋ 1960๋ MIT์์ ๊ฐ๋ฐ๋ ์ธ์ด ๋ฆฌ์คํ(LISP)๊ฐ ์ต์ด๋ก ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ณผ ๊ฐ๋น์ง ์ปฌ๋ ์ ๊ธฐ์ ์ ์ฌ์ฉํ์ต๋๋ค. ์กด ๋งฅ์นด์๊ฐ ์ ์ํ 3๊ฐ์ง ํต์ฌ ๋ฌธ์ ๋ฆฌ์คํ์ ์ฐฝ์์ ์กด ๋งฅ์นด์๋ ๊ฐ๋น์ง ์ปฌ๋ ์ ์ด ํด๊ฒฐํด์ผ ํ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ 3๊ฐ์ง๋ฅผ ์ ์ํ์ต๋๋ค.์ด๋ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ํด์ผ ํ๋? (What to collect?)์ธ์ ํ์ํด์ผ ํ ๊น? (When to collect?)์ด๋ป๊ฒ ํ์ํด์ผ ํ ๊น? (How to collect?)์ ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ์ดํดํด์ผ ํ ๊น?ํ๋์ ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ๋งค์ฐ ๋ฐ๋ฌํด์ ๋ชจ๋ ๊ฒ์ด ์๋์ผ๋ก ์ฒ๋ฆฌ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. ํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ ์ํฉ์์๋ ์ง์ ๊ฐ์ ์ด ํ์ํฉ๋๋ค.๋ฉ๋ชจ๋ฆฌ ์ค๋ฒํ๋ก์ฐ์ ๋์ ..

๊ฐ์ฒด ์์ฑ์ ์ ์ฒด ๊ณผ์ 1. ํด๋์ค ๋ก๋ฉ ๋ฐ ๊ฒ์ฆ ๋จ๊ณPerson person = new Person("Alice", 25); ์ ํ ์ค์ ์ฝ๋๊ฐ ์คํ๋ ๋ JVM์ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์นฉ๋๋ค.์ฌ๋ณผ ์ฐธ์กฐ ํ์ธ: new ๋ฐ์ดํธ์ฝ๋์ ๋งค๊ฐ๋ณ์๊ฐ ์์ ํ์ ์ฌ๋ฐ๋ฅธ ํด๋์ค ์ฐธ์กฐ์ธ์ง ํ์ธํด๋์ค ์ํ ๊ฒ์ฆ: Person ํด๋์ค๊ฐ ์ด๋ฏธ ๋ก๋ฉ(Loading), ํด์(Resolving), ์ด๊ธฐํ(Initialization)๋์๋์ง ํ์ธํ์์ ํด๋์ค ๋ก๋ฉ: ์ค๋น๋์ง ์์ ํด๋์ค๋ผ๋ฉด ํด๋์ค ๋ก๋๋ฅผ ํตํด ๋ก๋ฉ ์ํ2. ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋จ๊ณํด๋์ค ๋ก๋ฉ์ด ์๋ฃ๋๋ฉด ๊ฐ์ฒด ํฌ๊ธฐ๋ฅผ ์ ํํ ๊ณ์ฐํ ์ ์์ต๋๋ค.๋ค์์ผ๋ก ํ์์ ๊ฐ์ฒด์ ๋ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํด์ผ ํ๋๋ฐ ๋ํ์ ์ผ๋ก ๋ ๊ฐ์ง ๋ฐฉ์(ํฌ์ธํฐ ๋ฐ์น๊ธฐ, ์ฌ์ ๋ชฉ๋ก)์ด ์กด์ฌํฉ๋๋ค.2.1. ํฌ..

JVM ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐJVM์ ๋ฐํ์ ๋ฐ์ดํฐ ์์ญ์ ํฌ๊ฒ ์ค๋ ๋ ๊ณต์ ์์ญ๊ณผ ์ค๋ ๋ ๊ฐ๋ณ ์์ญ์ผ๋ก ๋๋ฉ๋๋ค.์ค๋ ๋๊ฐ ๊ณต์ ํ๋ ์์ญ๋ฉ์๋ ์์ญ (Method Area)ํ (Heap)์ค๋ ๋๋ณ ๊ฐ๋ณ ์์ญํ๋ก๊ทธ๋จ ์นด์ดํฐ ๋ ์ง์คํฐ (PC Register)๊ฐ์ ๋จธ์ ์คํ (JVM Stack)๋ค์ดํฐ๋ธ ๋ฉ์๋ ์คํ (Native Method Stack)๊ฐ ๋ฉ๋ชจ๋ฆฌ ์์ญ ์์ธ ๋ถ์1. ํ๋ก๊ทธ๋จ ์นด์ดํฐ ๋ ์ง์คํฐ (PC Register)์ญํ : ํ์ฌ ์คํ ์ค์ธ ๋ฐ์ดํธ์ฝ๋์ ์ค ๋ฒํธ๋ฅผ ๊ฐ๋ฆฌํค๋ ์์ ๋ฉ๋ชจ๋ฆฌ ์์ญํน์ง:๊ฐ ์ค๋ ๋๋ง๋ค ๋ ๋ฆฝ์ ์ผ๋ก ์กด์ฌ์๋ฐ ๋ฉ์๋ ์คํ ์: ๋ฐ์ดํธ์ฝ๋ ๋ช ๋ น์ด ์ฃผ์ ์ ์ฅ๋ค์ดํฐ๋ธ ๋ฉ์๋ ์คํ ์: Undefined ์ํ์ ์ผํ๊ฒ OutOfMemoryError ์กฐ๊ฑด์ด ๋ช ์๋์ง ์์ ์์ญ2. ์๋ฐ ๊ฐ์ ๋จธ์ ์คํ (..
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()..