Language/Java
63

[JAVA] ArrayList<Integer>์์ ์ํ๋ ์ซ์ Value ์ง์ฐ๊ธฐ
0. ๋ค์ด๊ฐ๋ฉฐ...ํด๋น ๊ธ์ ArrayList์์ ์ํ๋ ์ซ์๋ฅผ ์ง์ฐ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ธ์ด๋ค. ArrayList.remove() ํจ์๋ก ์ง์ฐ๋ฉด ๋์ง ์๊ฒ ๋ ์๊ฐํ ์ ์์ง๋ง .remove(int i)๋ฅผ ๋ฃ์ผ๋ฉด, remove์ ์ค๋ฒ๋ก๋ฉ๋ ํจ์ ์ค ArrayList.remove(int index)๊ฐ ํธ์ถ๋์ด, i๋ฅผ index๋ก ๊ฐ์ง๋ Value๋ฅผ ArrayList์์ ์ญ์ ํ๋ค. ๋ฐ๋ผ์ ์๋ ์๋ํ 'i๋ผ๋ Value ์ง์ฐ๊ธฐ'๋ ์คํจํ๋ค.1. ArrayList.remove(int index)์์์ ์ค๋ช
ํ๋ฏ์ด remove์ ์์ ์๋ฃํ int๋ฅผ ๋ฃ์ผ๋ฉด ํด๋น ์ธ์๋ฅผ index๋ก ๊ฐ์ง๋ Value๋ฅผ ArrayList์์ ์ญ์ ํ๋ค.2. ArrayList.remove(Object o)์ฐ๋ฆฌ๊ฐ ์ค์ i๋ผ๋ Value๋ฅผ ์ญ..
2025.01.25
Language/Java

[JAVA] Long๋ณด๋ค ํฐ ์๋ฅผ ๋ค๋ฃจ๋ ๋ฒ
0. ๋ค์ด๊ฐ๋ฉฐ๊ฐ๋ฐ์ ํ๊ฑฐ๋, ์ฝ๋ฉํ
์คํธ์์ ์ ์๋ก ๊ด๋ จ ๋ฌธ์ ๋ฅผ ๋ง๋๋ฉด ํ ๋ฒ์ฉ ์ฃผ์ด์ง๋ ์
๋ ฅ์ ํฌ๊ธฐ๊ฐ Longํ์ ์ด์ํ ์ ์์ ๋๊ฐ ๊ฐํน ์๋ค. ๋จผ์ ์ฝํ
์์ ์์ฃผ ์ฐ์ด๋ ์๋ฃํ์ธ int์ Longํ์ ์ต๋, ์ต์๊ฐ์ ์์๋ณด์.์ ์ํ ํ์
๋ฐ์ดํฐ ํํ ๋ฒ์int-2,147,483,648 ~ 2,147,483,647 ($10^{10}$)long-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 ($10^{18}$)long์ด ์ ๋ง ๋ง์ ์์ ๋ฒ์๋ฅผ ์ปค๋ฒํ ์ ์์์๋ ๋ถ๊ตฌํ๊ณ ๋ฐฑ์ค์ ๊ฑฐ์ ์์๊ฐ์ ๋ฌธ์ ๋ ์ด๋ฌํ ์๋ฃํ์ ๋ฐ์ด๋๋๋ค. ์ด๋์ ๋์ฒ๋ฒ 2๊ฐ์ง๋ฅผ ์ค๋ช
ํ๊ฒ ๋ค.1. ์ค์ ์๋ฃํ์ธ Double ์ฌ์ฉ Double์ 64bit ๋ถ๋ ์์์ ์ผ๋ก ํํ๋ ์๋ฃํ์ผ๋ก..
2025.01.24
Language/Java

[JAVA] For ๋ฌธ ์๋ ์์
0. ์ ๋ฆฌํ๋ ์ด์ ์ฝํ
๋ฌธ์ ๋ฅผ ํ๋ค๊ฐ ๊ฐ์๊ธฐ ์์๊ฐ ํท๊ฐ๋ ธ๋ค. ๊ทธ๋์ ์ ๋ฆฌํด๋์ผ ๊ฒ ๋ค1. For ๋ฌธ ์๋ ์์1๏ธโฃ: ์ง์ญ ๋ณ์ ์ ์ธ ๋ฐ ์ด๊ธฐํ (ํด๋น ๋ถ๋ถ์ด For๋ฌธ ๋ฐ์ ์์ด๋ ๋๋ค. ๋ค๋ง ๊ทธ๋ ๊ฒ ํ๋ฉด, for ๋ฌธ์ด ๋๋ ๋ค์๋ i ๊ฐ์ด ์ ์ง๋๋ค.)2๏ธโฃ: ์ค์์ ์กฐ๊ฑด ์ฒดํฌ (์ฌ๊ธฐ์ ๊ฑธ๋ฆฌ๋ฉด for๋ฌธ ๋ด์ฉ๋ฌผ์ ๋ค์ด๊ฐ์ง ์๊ณ ๋ฐ๋ก for ๋ฌธ์ด ๋๋๋ค.)3๏ธโฃ: ๋ด์ฉ๋ฌผ ์ฒ๋ฆฌ4๏ธโฃ: i ํฌ๊ธฐ ์ฌ๋ฆฌ๊ธฐ5๏ธโฃ: ๋ค์ ํ ๋ฒ ๋ ์กฐ๊ฑด ์ฒดํฌ
2025.01.24
Language/Java

[JAVA] ์ฝ๋ฉํ
์คํธ ์ค ์ค์ํ๊ธฐ ์ฌ์ด StringBuilder์ ์์ฑ์
0. ๋ฌด์์ ์ ๋ฆฌํ๋์ํ์๋ ๋ฌธ์์ด์ ๋ค์ง๋ ๊ธฐ์ ์ด ํ์ํ ๋, StringBuilderํด๋์ค์ reverse()๋ฅผ ์์ฃผ ํ์ฉํ๋ค. ๊ทผ๋ฐ, ํ ๋ฆฐ๋๋กฌ ์๋ฅผ ๋น ๋ฅด๊ฒ ๊ตฌํ๊ธฐ ์ํด, ๋ค์๊ณผ ๊ฐ์ด ๋ฌธ์ ๋ฅผ ํธ๋ ํ๋ฆฌ๋ ๊ฒ ์๋๊ฐ! StringBuilder straight = new StringBuilder(num);StringBuilder reverse = new StringBuilder(num).reverse();์ฝ์์ ์ฐ์ด๋ณด๋ ๋ ๊ฐ์ฒด ๋ชจ๋์ ์ด๋ ํ ์
๋ ฅ๊ฐ๋ ๋ค์ด๊ฐ์ง ์์๋ค! ์ฝํ
์์ ์ด๋ฌํ ์๋ฌ๋ฅผ ๊ฒช์์ผ๋ฉด ์ ์์ด ๋นํฉํ์ ๊ฒ ๊ฐ๋ค. ์ค๋์ ํ์์ ๊ฐ์ด ๋นํฉํ ์ฌ๋๋ค์ ์ํด, StringBuilder์ ์์ฑ์์ int i๋ฅผ ๋ฃ๋ ๊ฒ๊ณผ String str์ ๋ฃ๋ ๊ฒ์ ์ฐจ์ด๋ฅผ ์์๋ณด๋ ค ํ๋ค.1. ne..
2025.01.24
Language/Java

[Java] HashMap์์ Custom Class๋ฅผ Key๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ, ๊ทธ๋ฆผ์ผ๋ก ์ฝ๊ฒ ์ดํดํ๊ธฐ
0. ์์๋ณผ ๊ฒ1. Hash Map ์ด๋? ํํ์ ๋ฐ์ดํฐ ์์ผ๋ก ์ด๋ฃจ์ด์ง ์๋ฃ๊ตฌ์กฐKEY๋ฅผ ํ์ฉํด HashMap์ VALUE์ (์ ์ฅ, ์ญ์ , ์กฐํ) ํ๋๋ฐ ํ๊ท O(1)์ ์๊ฐ์ด ๋ ๋ค. ์์ ENTRY๋ผ๊ณ ๋ถ๋ฅธ๋ค.KEY ๊ฐ์ ์ค๋ณต๋ ์ ์๊ณ , VALUE ๊ฐ์ KEY ๊ฐ์ด ๋ค๋ฅด๋ค๋ฉด ์ค๋ณต์ ์ฅ์ด ๊ฐ๋ฅํ๋ค.2. HashMap ๋ด๋ถ ๊ตฌ์กฐHashMap์ ํฌ๊ฒ HASH ํจ์์ Hash Bucket์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.Hash Bucket์ ๊ฐ์ ์ ์ฅํ๋ ์ฅ์๋ก Array๋ก ๊ตฌํ๋์ด ์๋ค.Hash ํจ์๋ ์
๋ ฅ ๊ฐ ๋ง๋ค์ Hash ๊ฐ์ ๋ฐํ ํ๋๋ฐ, ํด๋น Hash ๊ฐ์ Hash Bucket์ Index์ด๋ค. ๋ฐ๋ผ์ Hash ํจ์๋ ์
๋ ฅ ๊ฐ์ด ์ ์ฅ๋ ์์น๋ฅผ ์๋ ค์ฃผ๋ ๋ค๋น๊ฒ์ดํฐ ์ญํ ์ ํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๊ฒ ๋ค.์ด์ ์ค์ ์
๋ ฅ๊ฐ..
2024.12.31
Language/Java

[Java] JSON ์ง๋ ฌํ์ ๋ชจ๋ ๊ฒ
1. JSON ์ด๋ ๋ฌด์์ธ๊ฐ์? ๐ก(1) ์ ์JSON์ด๋ JavaScript Object Notation์ ์ฝ์๋ก Javascript ๊ฐ์ฒด ํํ๋ก ๋์ด์๋ ๋ฐ์ดํฐ ๊ตํ ์์์ด๋ค.JS ๊ฐ์ฒด์ ํํ : javascript ๊ฐ์ฒด๋ (key: value) ํํ์ ๊ฐ๋ค์ด ๋์ด๋ ๊ตฌ์กฐ์ด๋ค. java์์ HashMap๊ณผ ์ ์ฌํ๋ค๊ณ ๋ณผ ์ ์๋ค. js์์๋ ๋ฐ๋ก ๋ณ์์ ๋ํ ํ์
์ ์ธ์ด ํ์ ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด ๋ฌธ๋ฒ์ด ๋น๊ต์ ๊ฐํธํ๋ค.(2) ํน์งa. ์ธ์ด ๋
๋ฆฝ์ ์ธ ์์์ด๋ค.๋ถ๋ช
JS ๊ฐ์ฒด ํํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง ์์์ด์ง๋ง, javascript ๋ฟ๋ง ์๋๋ผ ๋๋ค์์ ์ธ์ด, ๊ทธ ์ธ์ด ๊ธฐ๋ฐ ํ๋ ์์ํฌ์์ ํ์ฉํ ์ ์๋ค.b. ์ํ๋ฅผ ๊ตํํ๋ค.JSON์ ํตํด ์ฃผ๊ณ ๋ฐ๋ ๋ฐ์ดํฐ๋ ํน์ ๊ฐ์ฒด ํน์ ๊ฐ๋ค์ ์ํ์ด๋ค. ๊ธฐ๋ฅ์ ์๋ฏธํ..
2024.11.05
Language/Java

JAVA์์์ ๊ฐ์ฒด ์ง๋ ฌํ ๋น๊ต (Byte Stream ์ง๋ ฌํ vs JSON ์ง๋ ฌํ)
0. ์์๋ณผ ๋ด์ฉJava์ ๊ฐ์ฒด ์ง๋ ฌํ์๋ ๋ ๊ฐ์ง ์ข
๋ฅ๊ฐ ์๋ค.์ฒซ ๋ฒ์งธ๋ก, Serializable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ Byte Stream ์ง๋ ฌํํ๋ ๊ฒ ์ด๋ค.๋ ๋ฒ์งธ๋ก, RESTful API Sever๋ฅผ ๊ตฌํํ ๋, ๋ฐ์ดํฐ ๊ตํ์ ์ํด ๊ฐ์ฒด๋ฅผ JSON ์ง๋ ฌํํ๋ ๊ฒ ์ด๋ค.๋ ๊ฐ์ง์ ์ฐจ์ด์ ์ ์ด๋ ดํ์ด ์์ง๋ง, ์ ๋๋ก ๊ตฌ๋ถํ์ฌ ๊ธฐ์ตํ์ง ์์๋๋, ๋ ๋ฐฉ๋ฒ์ ๊ตฌํ ๋ฐฉ์๊ณผ ํ์ฉ๋ฒ์ด ์๋ก ๋ค์ฃฝ๋ฐ์ฃฝ ์์ฌ ์์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ๊ฐ์ง ํํ์ ์ง๋ ฌํ์ ๋ํด ์ ํํ ์์๋ณด๊ณ , ๊ทธ ์ฐจ์ด์ ์ ๊ตฌ๋ถํ๋ ค ํ๋ค.์ฌ๊ธฐ์๋ ๋จผ์ ๋ ์ง๋ ฌํ์ ์๋ฏธ๋ง ๊ฐ๋ตํ ์์๋ณด๊ณ ์ฐจ์ด์ ์ค๋ช
์ ๋ ์ง์คํ๊ฒ ๋ค.๋ง์ฝ ๋ ์์ธํ ์๊ณ ์ถ์ ๋ถ์ ๊ฐ ํญ๋ชฉ ๋ณ ๋ ์์๋ณด๊ธฐ๋งํฌ๋ฅผ ํตํด ํ์ธํ๊ธฐ ๋ฐ๋๋ค.๋ค์๊ณผ ๊ฐ์ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ..
2024.11.04
Language/Java

java TreeMap์ ๋ํด ์์๋ณด์!
(1) ์ ์Red-black Tree๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํ Key ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋๋ Map์ด๋ค.์ ๋ ฌ ๊ธฐ์ค์ default๋ก ์ค๋ฆ์ฐจ์์ด๊ณ , ๋งค๊ฐ๋ณ์๋ก Comparator๋ฅผ ๋ฃ์ผ๋ฉด, ๊ฐ๋ฐ์ ์
๋ง์ ๋ฐ๋ผ ๋ฐ๊ฟ ์ ์๋ค. TreeMap map = new TreeMap((o1,o2) -> (return o1.score - o2.score)); Red-black Tree ๋? ์ด์งํ์์ ๋ณด์ํ์ฌ ์ฑ๋ฅ์ ๊ฐ์ ํ Tree ์๋ฃ ๊ตฌ์กฐ์ด๋ค. ์ด์งํ์์ ์ผ๋ฐ์ ์ผ๋ก O(logN)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง์ง๋ง, ๋ฐ์ดํฐ๊ฐ ํ์ชฝ์ผ๋ก ์น์ฐ์ณ์, ์ผ์ํ Tree๊ฐ ๋์ฌ ๊ฒฝ์ฐ(ex- ๊ณ์ ์์ ๊ฐ์ ๋ฐ์ดํฐ๋ง ์
๋ ฅ ๋ฑ) O(n)์ด๋ผ๋ ์๊ฐ๋ณต์ก๋๊ฐ ๋ ๋ค. ์ด์ ๋นํด Red-black Tree๋ ๋ถ๋ชจ๋
ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ํฐ ๊ฐ์ ์ค๋ฅธ์ชฝ, ์์..
2024.07.18
Language/Java
Enum์ ๋ํ์ฌ
Enum์ ์ด๊ฑฐํ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. (์์ด๋ก๋ enumerated type์ด๋ผ ํ๊ณ ์ด๊ฒ์ ์ค์๋ง์ด๋ค.) Enum์ ‘์์’ ํน์ ‘๋ฉค๋ฒ’ ๋ผ ๋ถ๋ฆฌ๋ ๋ช
๋ช
๋ ๊ฐ์ ์งํฉ์ ์ด๋ฃจ๋ ์๋ฃํ์ด๋ค. ์ฌ๊ธฐ์ ‘๋ช
๋ช
๋๋ค.’๋ ์ด๋ค ๋ฌผ๊ฑด์ด๋ ์ผ์ ์ด๋ฆ์ด ์ง์ด์ ธ ๋ถ์ฌ์ง๋ ๊ฒ์ ๋งํ๋ค. Enum์ ๋ฉค๋ฒ๊ฐ ๋๋ ๋
์๋ค์ ์ฃผ๋ก ์ด๋ค ๋ฌผ๊ฑด์ด๋ ์ผ์ ์๋ณํ๊ธฐ ์ํ ์์ ์ญํ ์ ํ๋ค.
2024.01.16
Language/Java
๋ชฐ๋๋ ๊ฒ
1. Intger ์ปฌ๋์
ํ๋ ์์ํฌ๋ฅผ int ๋ฐฐ์ด๋ก ๋ฐ๊พธ๊ธฐ. int [] arr = map.keySet().stream().mapToInt(x->x).toArray(); maptoInt(x->x): ์ปฌ๋์
ํ๋ ์ ์ํฌ์๋ ๊ฐ๋ค์ Wrapper Class์ธ Integer๋ก ๋ค ์ ์ฅ ํ๋ค. ํ์ง๋ง ๋ฐฐ์ด์ ์ ์ฅํ ๋ ค๋ฉด type์ด ์์ํ์
(int, double,...) ์ฌ์ผ ํ๋ค ํด๋น maptoInt๋ ์ปฌ๋์
ํ๋ ์ ์ํฌ๊ฐ์ IntStream์ผ๋ก ๋ฐ๊ฟ์ค๋ค. (IntStream ์์ ํ์
int์ ๋ํ Stream ์ด๋ค.) toArray(): ์ปฌ๋์
์ ๋ฐฐ์ด๋ก ๋ฐ๊ฟ์ฃผ๋ ํจ์. (์์ ํ์
์ผ๋ก ๋ฐ๊ฟ ๊ฑฐ๋ฉด, ์ธ์๋ ์์ ํ์
์ด์ด์ผ ํ๋ค.) 2. String ArrayList๋ฅผ String ๋ฐฐ์ด๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ String..
2023.05.21
Language/Java
Runnable
runnable๋ Thread์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ณ๋ ฌ ์ํ์ ํ๊ธฐ ์ํ ๊ฒ์ด๋ค. ๋์ ์ฐจ์ด๋ ๋ค์๊ณผ ๊ฐ๋ค. Thread๋ ํด๋์ค์ด๊ณ runnable์ ์ธํฐํ์ด์ค๋ ๊ฒ์ด๋ค. ๋จ์ผ ์์ ์์น์ ๋ฐ๋ผ Thread๋ฅผ ์์ํ ์์ ํด๋์ค๋ ๋ค๋ฅธ ๋ถ๋ชจ ํด๋์ค๋ฅผ ์์ํ์ง ๋ชปํ์ง๋ง, runnable๋ฅผ ๊ตฌํํ ํด๋์ค๋ ๋ณ๋ ฌ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ์ฐ๋ฉด์ ๋ค๋ฅธ ํด๋์ค๋ ์ธํฐํ์ด์ค๋ฅผ ์ฅ์ฐฉํ ์ ์๋ค. 1. ์ฝ๋ ๋ฆฌ๋ทฐ import Chap_12.clean.CleanRunnable; public class _02_Runnable { public static void main(String[] args) { // ์ฐ๋ ๋๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ 2๊ฐ์ง // 1. Thread ๋ผ๋ ํด๋์ค ์์ํด์ ๋ง๋ค๊ธฐ // 2, Runnable ์ด๋ผ๋ ์ธํฐํ์ด์ค ๊ตฌํํด์ ๋ง..
2023.03.11
Language/Java

Thread
1. ์ฉ์ด์ ๋ฆฌ (1) ํ๋ก๊ทธ๋จ์ด๋? ํน์ ์์
์ ์ํํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ๊ธฐ๊ณ. (๊ฐ๋ ์ํ๋ ์ํ, ์ฃฝ์ ์ํ) (2) ํ๋ก์ธ์๋? ์๋ํ๋ ์ํ์ ํ๋ก๊ทธ๋จ์ ์ผ์ปซ๋ ๋ง (๊ฐ๋ ์ค์ธ ์ํ, ์ด์์๋ ์ํ) (3) ์ฐ๋ ๋๋? ํ๋ก์ธ์๋ฅผ ์๋์ํค๊ณ ์๋ ๋
์์ผ๋ก, ํน์ ์์
์ ์ํ์ค (๊ธฐ๊ณ๋ฅผ ๋๋ฆฌ๊ณ ์๋ ์ธ๋ถ) (4) ํ๋ก์ธ์ค๋? ํ๋ก๊ทธ๋จ์ด ๋ค์ด์ ์์
์ ์ฒ๋ฆฌํ๋ ๊ณต๊ฐ. ๋ณดํต ์ค์ ์ํ๋ฉด, ํ๋์ ํ๋ก์ธ์ค์ ํ๋์ ์ฐ๋ ๋๋ง ์กด์ฌํ๋ค. ํ๋ก์ธ์ค์ ์ฌ๋ฌ ๊ฐ์ ์ฐ๋ ๋๋ฅผ ๋๋ ค์ ํ๋ก๊ทธ๋จ๋ค์ด ๋ณ๋ ฌ ์ฒ๋ฆฌ ๋๋๋ก ํ ์ ์๋ค. (ํ์ง๋ง ์ด๊ฒ ์ง์ง๋ก ์ผ์ด ๋์์ ์งํ๋๋ ๊ฒ์ด ์๋๋ผ, ๋ ๊ฐ์ง ์ผ์ด ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌ๋๊ณ ์์ง๋ง, ๊ทธ ๋์ด ์ค์์นญ ํ๋ ๊ฒ ๋๋
ธ๋ฏธํฐ ์ด๋ก ์ด๋ฃจ์ด์ ธ์, ์ฌ๋๋ค ๋์๋ ๊ทธ๊ฒ ๋ณ๋ ฌ ์ฒ๋ฆฌ ํ๋ ๊ฒ์ฒ๋ผ ..
2023.03.09
Language/Java
Throws (์์ธ ์ฒ๋ฆฌ ๋ฏธ๋ฃจ๊ธฐ)
Throws ํด๋น ๋งค์๋์์ ์ผ์ด๋ ์ ์๋ ์์ธ๋ฅผ ์์ฒด์ ์ผ๋ก ํด๊ฒฐ ์ํ๊ณ , ๋ ๋ชฐ๋ผ๋ผ ํ๊ณ ๋ฐ์ผ๋ก ๋์ง๋ ๋ช
๋ น์ด ๋งค์๋๋ฅผ ํธ์ถํ ์ชฝ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ๋ค. ์ฑ
์์ ๊ฐํ๋ ๋ช
๋ น์ด ๋งค์๋๋ฅผ ํธ์ถํ ์ชฝ์์ ๋ throws ์ฐ๋ฉด, ๊ทธ๋ฅ ํ๋ก๊ทธ๋จ ํผ์ ธ๋ ์ฑ
์ ์ ์ง๊ฒ ๋ค๋ ์๋ฆฌ์. import java.io.FileWriter; import java.io.IOException; public class _07_Throws { public static void main(String[] args) { // ํธ์ถํ ๋ฉ์ธ ๋งค์๋์์ ํด๊ฒฐํ๊ฑฐ๋, ์ฌ๊ธฐ์๋ throws๋ก ๋๋ชฐ๋ผ๋ผ ํ๊ฑฐ๋ // ๋ฉ์ธ ๋ฉ์๋์์๋ throws๋ก ๋์ง๋ฉด ๊ทธ๋ฅ ๋ฌธ์ ์๊ธฐ๋ ๊ฑฐ ๊ฐ์ํ๊ณ ๋๋ฆฌ๊ฒ ๋จ ์๋ฆฌ์. try { writeFile(); } catc..
2023.03.02
Language/Java
์ฌ์ฉ์ ์ ์ ์์ธ
์์ธ๋ฅผ ํญ์ throw new Exception(" ์์ธ ๋ฐ์ ์ ํ๊ณ ์ถ์ ๋ง"); ๋ก ํ๋ค๋ฉด, ๋ง์ง๋ง catch ๊ตฌ๋ฌธ์์ ํ ์ผ์ด ๋๋ฌด ๋ง๋ค. Exception์ด๋ ํน์ ์ ์ด์ง ์๊ณ ๋ชจ๋ ๊ฑธ ํฌ๊ดํ๋ ์์ธ์ ๋์ก๊ธฐ ๋๋ฌธ์, ()์์ ๋ง์ด ์๋๋ฉด ๋ฌด์จ ์ด์ ๋์ ์์ธ๊ฐ ์ผ์ด๋ฌ๋์ง ์๊ธฐ๋ ์ฝ์ง ์๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๊ฐ ์ง์ ํน์ ์๊ฐ์๋ง ์๋ํ๋ ์์ธ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ๊ทธ ์์ธ ๊ฐ์ฒด๋ฅผ ์ด์ฉํ์ฌ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ ๋ ค๊ณ ํ๋ค. public class _06_CustomException { public static void main(String[] args) { // ์ฌ์ฉ์ ์ ์ ์์ธ int age = 17; try { if(age < 19){ // System.out.println("๋ง 19์ธ ๋ฏธ๋ง์๊ฒ๋ ํ๋งคํ์ง ์์ต..
2023.03.02
Language/Java
Try with Resources
1. ์ค๋ช
AutoClosable์ด๋ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ try๊ตฌ๋ฌธ ()์์์ ์์ฑ ํ์ ๋๋ฅผ ๊ฐ์ ํ๋ค. ํด๋น ๊ฐ์ฒด๊ฐ try catch ๊ตฌ๋ฌธ์ ๋ค ์ง๋๊ฐ์ผ๋ฉด, try ๊ตฌ๋ฌธ์ด ์๋์ผ๋ก close ๋งค์๋๋ฅผ ํธ์ถํ์ฌ close์ ๊ธฐ๋ฅ์ ์ํํ๊ฒ ํ๋ค. ํด๋น ์คํฌ์ ํด๋์ค๊ฐ AutoClosable์ด๋ผ๋ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํ ํด์ผ๋ง ์ธ ์ ์๋ค. 2. ์ฝ๋ ๋ฆฌ๋ทฐ import java.io.BufferedWriter; public class _05_TryWithResources { public static void main(String[] args) { // close ๊ตฌ๋ฌธ๋ ์์ธ์ฒ๋ฆฌ๊ฐ ํ์ํด์ // try-catch-finally ๊ตฌ๋ฌธ ์์ ๋ try catch ๊ตฌ๋ฌธ์ด ๋ค์ด๊ฐ ๊ฑธ ๋ณผ ์ ์๋ค. MyF..
2023.02.28
Language/Java
Finally ๊ตฌ๋ฌธ
1. ์ค๋ช
์์ธ ๊ตฌ๋ฌธ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฑด ๋ง๊ฑด ์์ธ์ฒ๋ฆฌ ํ ๋ฌด์กฐ๊ฑด ์คํํด์ผํ๋ ์ฝ๋๋ฅผ ์ ์ด ๋๋ ๊ตฌ๋ฌธ 2. ์ฝ๋๋ฆฌ๋ทฐ public class _04_Finally { public static void main(String[] args) { try{ System.out.println("ํ์์ ๋ฌธ์ ์ฐ๋ค."); throw new Exception("ํด๋ฌด ํ์"); // System.out.println("ํ์์ ํ์นํ๋ค."); // ์์ธ๋ฅผ ๋์ง๋ ๋ฌธ์ฅ ์ฃผ์ ์ฒ๋ฆฌ ํ๊ณ ํ์๋ฅผ ํ์นํ๋ค๋ ์ ์ ์ถ๋ ฅ๋ฌธ์ด ๋์๋ finally ๊ตฌ๋ฌธ ์คํ } catch (Exception e) { System.out.println("!! ๋ฌธ์ ๋ฐ์: " + e.getMessage()); } finally { System.out.pri..
2023.02.28
Language/Java

Throw
1. ์ ์ ์ผ๋ถ๋ฌ ์์ธ๋ฅผ ๋ฐ์ ์ํค๋ Keyword (1)ํํ // ๋ด๊ฐ Catch ์ชฝ์ผ๋ก ๋์ง ์๋ก์ด ์์ธ ๊ฐ์ฒด ์์ฑ throw new Exception("๋ฌด์จ ์๋ฌ์ธ์ง ์ค๋ช
"); // throw์์ ๋์ง ์์ธ ๊ฐ์ฒด๋ Catch์์ ๋ฐ์์ ์ฒ๋ฆฌํ๋ค. 2. ์ฝ๋ ๋ฆฌ๋ทฐ public static void main(String[] args) { //๋์ด๊ฐ 19์ธ ๋ฏธ๋ง์ผ ๊ฒฝ์ฐ ์์ธ ์ฒ๋ฆฌ. int age = 17; try { if(age < 19){ throw new Exception("๋ง 19์ธ ๋ฏธ๋ง์๊ฒ๋ ํ๋งคํ์ง ์์ต๋๋ค."); } else { System.out.println("์ฃผ๋ฌธํ์ ์ํ ์ฌ๊ธฐ ์์ต๋๋ค."); } }catch (Exception e){ //์ค๋ฅ๊ฐ ๋ฌด์์ธ์ง ๋ณด์ฌ์ฃผ๋ ์์ธ ๊ฐ์ฒด ๋งค์๋ e.p..
2023.02.24
Language/Java
์ค๋ฅ์ ๋ฐ๋ฅธ ๋ง์ถค ์์ธ ์ฒ๋ฆฌ
1. ๊ฐ๋ณ ์์ธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ Exception ํด๋์ค๋ ๋ชจ๋ ์์ธ๋ค์ ์กฐ์ ํด๋์ค ์ด๋ค. ๊ทธ๋์ ๋ชจ๋ ์์ธ๋ฅผ ๋คํ์ฑ์ ์๋ฆฌ์ ์ํด ๋ค ๋ฐ์ ์ ์์๋ ๊ฒ์ด๋ค. catch์ () ์์ ์์ธ๋ณ๋ก ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ฃผ๋ฉด, ํด๋น ์์ธ๊ฐ ๋ฐ์ ํ์ ์์๋ง ๋ฐ๋ํ๋ ์์ธ ์ฒ๋ฆฌ ๊ตฌ๋ฌธ์ ๋ง๋ค ์ ์๋ค. // ๋ฐฐ์ด ์ธ๋ฑ์ค๋ฅผ ๋ฒ์ด๋ ๊ณณ์ ๋ํ ์์ค ์คํ์ ํ ๊ฒฝ์ฐ์ ์์ธ์ฒ๋ฆฌ๋ฌธ, // ์๋ชป๋ ํ๋ณํ์ด ์ผ์ด๋ฌ์ ๊ฒฝ์ฐ์ ์์ธ์ฒ๋ฆฌ๋ฌธ์ ๋ฐ๋ก ๋์๋ค. // ๋งจ ๋ง์ง๋ง์ ๋๋จธ์ง ์์ธ๋ค์ ๋ํ ์ผ๊ด ์ฒ๋ฆฌ์ด๋ค. catch (ArrayIndexOutOfBoundsException e){ System.out.println("์ธ๋ฑ์ค๋ฅผ ์๋ชป ์ค์ ํ์ด์."); } catch (ClassCastException e) { System.out.println(..
2023.02.23
Language/Java

Run-Time(๋ฐํ์) ์ค๋ฅ์ ์์ธ ์ฒ๋ฆฌ
1. ๋ฐํ์ ์ค๋ฅ๋? (1)๋ฐํ์์ค๋ฅ์ ์ปดํ์ผ ์ค๋ฅ ๋น๊ต ์ข
๋ฅ ์ปดํ์ผ ์๋ฌ ๋ฐํ์ ์๋ฌ ๋ป ์์ค์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ฐ๊ฟ ๋ (์ปดํ์ผ ์) ์ผ์ด๋๋ ์๋ฌ. ๋๊ฒ ๋ฌธ๋ฒ์ ์ค๋ฅ๋ก ์ธํด ์ผ์ด๋๋ค. ์ฝ๋ ์คํ ๋์ค์ ์ผ์ด๋๋ ์๋ฌ ์ฝ๋๊ฐ ๋ฌธ๋ฒ์ ์ผ๋ก ๋ง์ ๋์ง๋ง, ๋
ผ๋ฆฌ์ ์ผ๋ก ๋ง์ด ์๋ ๋ ์ผ์ด๋๋ค. Run ํ์ ์ ์ ์ด์ ๋ฌธ๋ฒ์ ์ผ๋ก ํ๋ ค์ Run ์กฐ์ฐจ ์๋๋ค. ๋ฐํ์ ์ค๋ฅ ์์ ์ ํ๋ก๊ทธ๋จ์ ์ฝ๋๋ฅผ ๋๊น์ง ์คํํ์ง ๋ชปํ๊ณ ์ข
๋ฃ๋๋ค. (๋ฐํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ง์ ์์ ํ๋ก๊ทธ๋จ์ด ์ข
๋ฃ๋๋ค.) ์์ int i = "๋ฌธ์์ด"; (์ ์ด์ ๋ง์ด ์๋๋ ๊ตฌ์กฐ) int[] arr = new int[3]; arr[5] = 100; ํด๋น ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 3์ด๋ฏ๋ก, 5์ ๊ฐ์ ์ง์ด ๋ฃ์ ์ ์๊ธฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ์ฝ๋ ํ ์ค ํ ์ค์ ๋ฌธ๋ฒ..
2023.02.23
Language/Java
[JAVA] Stream ์ค์ต
1. ์ฝ๋๋ฆฌ๋ทฐ // "python", "java", "javascript","c","c++","c#" // C๋ก ์์ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ถ์ถ /*.startsWith()๋ String ํด๋์ค์ ๋งค์๋๋ก์ ()์์ ๊ฐ์ด ๋ฌธ์์ด์ ์๋์ง๋ฅผ boolean์ผ๋ก ๋ฐํ .filter()๋ ()์์ ์กฐ๊ฑด์ ๋ง๋ ์์๋ง ๊ณจ๋ผ์ ๋ง๋ ์ ์คํธ๋ฆผ์ ๋ฐํ */ Arrays.stream(langs).filter(x-> x.startsWith("c")).forEach(System.out::println); System.out.println("-----------------------------------------"); // java ๋ผ๋ ๊ธ์๋ฅผ ํฌํจํ๋ ์ธ์ด Arrays.stream(langs).filter(x-> x.co..
2023.02.19
Language/Java
[JAVA] Stream
1. Stream ์ด๋? (0) ๋ป ๋ฐฐ์ด์ด๋ ์ปฌ๋ ์
ํ๋ ์์ํฌ ์์ ์ ์ฅ๋ ์์๋ค์ ํ๋์ฉ ์ํ ํ๋ฉด์ ์ฝ๋๋ฅผ ์คํํ ์ ์๋ ๊ธฐ๋ฅ์ ๋งํจ. ๋ด๋ถ์ ๋ฐ๋ณต์๊ฐ ๋ฐ๋ก ์กด์ฌํจ. Java 8๋ถํฐ ์ถ๊ฐ ๋์๊ณ , ๊ทธ ์ด์ ์์ ์๋ ๋ฐฐ์ด์ด๋ ์ปฌ๋ ์
์ ๋ํ ์ํ ์ฐ์ฐ์ ํ ๋๋ for, foreach๋ฅผ ์จ์ผ ํ๊ฑฐ๋ Iterator ์จ์ผํด์ ์ฝ๋ ์๊ฐ ๋ง์์ง๊ณ ์ง์ ๋ถ ํ์. ํ์ง๋ง Stream ๋์ ์ฝ๋๊ฐ ๊ฐํธํด์ง๊ณ ๊ฐ๋
์ฑ์ด ์ข์์ง. (1) ์์ฑ a. ๊ธฐ๋ณธ ์๋ฃํ ๋ฐฐ์ด์ ๋ํ Stream ์์ฑ **์ฐธ๊ณ : ๋ฐฐ์ด(a,b)๋ ๋ฐฐ์ด์ ๋ํ ๋ค์ํ ๋งค์๋๊ฐ ์ ์ฅ๋์ด ์๋ Arrays ํด๋์ค๋ฅผ ์ด์ฉํ์ฌ Stream ์์ฑ // int ๋ฐฐ์ด ์์ฑ int[] scores = {100, 95,90,85,80}; // Arrays.stre..
2023.02.18
Language/Java