๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

Java107

[Java-๊ธฐ์ดˆ] try-with-resources๋ฌธ โ–ถ try-with-resources๋ฌธ โ€‹ -AutoCloseable ์ธํ„ฐํŽ˜์ด์Šค try-with-resources ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๊ฐ€ AutoCloseable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. AutoCloseable ์ธํ„ฐํŽ˜์ด์Šค์—๋Š” close( ) ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๊ณ  ์ด๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋Š” close( )๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœํ•˜์ง€ ์•Š์•„๋„ close( ) ๋ฉ”์„œ๋“œ ๋ถ€๋ถ„์ด ํ˜ธ์ถœ๋œ๋‹ค. โ€‹ โ€‹ AutoCloseObj.java package exception; public class AutoCloseObj implements AutoCloseable { @Override public void close() throws Exception { System.out.println("๋ฆฌ์†Œ์Šค๊ฐ€ close() ๋˜์—ˆ์Šต๋‹ˆ๋‹ค."); }.. 2021. 2. 22.
[Java-๊ธฐ์ดˆ] ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์˜ˆ์™ธ๊ฐ€ ์ฒดํฌ๋˜๋Š” ๊ฒฝ์šฐ โ–ถ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์˜ˆ์™ธ๊ฐ€ ์ฒดํฌ๋˜๋Š” ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜๋Š” ๋งŽ์€ ์˜ˆ์™ธํด๋ž˜์Šค๋“ค์€ ์ž๋ฐ”์—์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋‚จ๋Š” ๊ฒƒ์ด ๋งŽ๋‹ค. โ€‹ โ€‹ *ํŒŒ์ผ ์ž…์ถœ๋ ฅ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์ž๋ฐ”์—์„œ ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๋Š” ๋ฐ ์ŠคํŠธ๋ฆผ(stream) ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. package exception; import java.io.FileInputStream; import java.io.FileNotFoundException; public class ExceptionHandling1 { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("a.txt"); } catch (FileNotFoundE.. 2021. 2. 22.
[Java-๊ธฐ์ดˆ] ์˜ˆ์™ธ ํด๋ž˜์Šค โ–ถ ์˜ˆ์™ธ ํด๋ž˜์Šค โ€‹ *์˜ค๋ฅ˜๋ž€? ํ”„๋กœ๊ทธ๋žจ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์€ ๋‘ ๊ฐ€์ง€์ด๋‹ค. 1. ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ ์ž‘์„ฑ ์ค‘ ์‹ค์ˆ˜๋กœ ๋ฐœ์ƒํ•˜๋Š” ์ปดํŒŒ์ผ ์˜ค๋ฅ˜ ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ๋Œ€๋ถ€๋ถ„ ์›์ธ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. 2. ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์ด ์˜๋„ํ•˜์ง€ ์•Š์€ ๋™์ž‘์„ ํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ๊ทธ๋žจ์ด ์ค‘์ง€๋˜๋Š” ์‹คํ–‰ ์˜ค๋ฅ˜ ์‹คํ–‰ ์˜ค๋ฅ˜ ์ค‘ ํ”„๋กœ๊ทธ๋žจ์„ ์ž˜๋ชป ๊ตฌํ˜„ํ•˜์—ฌ ์˜๋„ํ•œ ๋ฐ”์™€ ๋‹ค๋ฅด๊ฒŒ ์‹คํ–‰๋˜์–ด ์ƒ๊ธฐ๋Š” ์˜ค๋ฅ˜๋ฅผ '๋ฒ„๊ทธโ€‹'๋ผ๊ณ  ํ•œ๋‹ค. โ€‹ โ€‹ โ€‹ *์˜ค๋ฅ˜์™€ ์˜ˆ์™ธ ์‹คํ–‰ ์˜ค๋ฅ˜๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, ํ•˜๋‚˜๋Š” ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์‹œ์Šคํ…œ ์˜ค๋ฅ˜(error)์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์˜ˆ์™ธ(exception)์ด๋‹ค. ์‹œ์Šคํ…œ ์˜ค๋ฅ˜์˜ ์˜ˆ๋กœ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋™์  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ๋‚˜ ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ๋“ฑ์„ ๋“ค ์ˆ˜ ์žˆ๋‹ค. โ†’ ์ด๋Ÿฐ ์‹œ์Šคํ…œ ์˜ค๋ฅ˜๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ œ์–ด.. 2021. 2. 22.
[Java-๊ธฐ์ดˆ] ์ŠคํŠธ๋ฆผ โ–ถ ์ŠคํŠธ๋ฆผ โ€‹ *์ŠคํŠธ๋ฆผ์ด๋ž€? ์—ฌ๋Ÿฌ ์ž๋ฃŒ์˜ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ๋†“์€ ํด๋ž˜์Šค๊ฐ€ ์ŠคํŠธ๋ฆผ(stream)์ด๋‹ค. ์ŠคํŠธ๋ฆผ์„ ํ™œ์šฉํ•˜๋ฉด ๋ฐฐ์—ด, ์ปฌ๋ ‰์…˜ ๋“ฑ์˜ ์ž๋ฃŒ๋ฅผ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž๋ฃŒ์— ๋”ฐ๋ผ ๊ธฐ๋Šฅ์„ ๊ฐ๊ฐ ์ƒˆ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์ž๋ฃŒ๊ฐ€ ๋ฌด์—‡์ธ์ง€์™€ ์ƒ๊ด€์—†์ด ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. โ€‹ -๋ฐฐ์—ด ์ถœ๋ ฅ๋ฌธ int[] arr = {1, 2, 3, 4, 5}; for(int i = 0; i System.out.println(n)); ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•˜๊ณ  ๋ฏธ๋ฆฌ ๊ตฌ.. 2021. 2. 22.
[Java-๊ธฐ์ดˆ] ๋žŒ๋‹ค์‹ โ–ถ ๋žŒ๋‹ค์‹ *ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๋žŒ๋‹ค์‹ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ค‘์—๋Š” ํ•จ์ˆ˜์˜ ๊ตฌํ˜„๊ณผ ํ˜ธ์ถœ๋งŒ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์ด ์žˆ๋‹ค. ์ด๋ฅผ 'ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ'์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ž๋ฐ”์—์„œ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์„ '๋žŒ๋‹ค์‹'์ด๋ผ๊ณ  ํ•œ๋‹ค. โ€‹ โ€‹ โ€‹ *๋žŒ๋‹ค์‹ ๊ตฌํ˜„ํ•˜๊ธฐ ๋žŒ๋‹ค์‹์€ ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜๋ฉด ํ•จ์ˆ˜ ์ด๋ฆ„์ด ์—†๋Š” ์ต๋ช… ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. โ€‹ โ€‹ *๋žŒ๋‹ค์‹ ๋ฌธ๋ฒ• ์‚ดํŽด๋ณด๊ธฐ โ€‹ -๋งค๊ฐœ๋ณ€์ˆ˜ ์ž๋ฃŒํ˜•๊ณผ ๊ด„ํ˜ธ ์ƒ๋žตํ•˜๊ธฐ -์ค‘๊ด„ํ˜ธ ์ƒ๋žตํ•˜๊ธฐ -return ์ƒ๋žตํ•˜๊ธฐ โ€‹ โ€‹ โ€‹ *๋žŒ๋‹ค์‹ ์‚ฌ์šฉํ•˜๊ธฐ โ€‹ MyNumber.java package lambda; public interface MyNumber { int getMax(int num1, int num2); // ์ถ”์ƒ ๋ฉ”์„œ๋“œ ์„ ์–ธ } TestMyNumber.java pack.. 2021. 2. 22.
[Java-๊ธฐ์ดˆ] ๋‚ด๋ถ€ ํด๋ž˜์Šค โ–ถ ๋‚ด๋ถ€ ํด๋ž˜์Šค *๋‚ด๋ถ€ ํด๋ž˜์Šค ์ •์˜์™€ ์œ ํ˜• โ†’ ์ฃผ๋กœ ๋ณด์•ˆ์ชฝ์—์„œ ๋งŽ์ด ์“ฐ์ž„ ๋‚ด๋ถ€ ํด๋ž˜์Šค๋Š” ๋ง ๊ทธ๋Œ€๋กœ 'ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์„ ์–ธํ•œ ํด๋ž˜์Šค'์ด๋‹ค. ๋‚ด๋ถ€์— ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜๋Š” ์ด์œ ๋Š” ๋Œ€๊ฐœ ์ด ํด๋ž˜์Šค์™€ ์™ธ๋ถ€ ํด๋ž˜์Šค๊ฐ€ ๋ฐ€์ ‘ํ•œ ๊ด€๋ จ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋˜ํ•œ ๊ทธ ๋ฐ–์˜ ๋‹ค๋ฅธ ํด๋ž˜์Šค์™€ ํ˜‘๋ ฅํ•  ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ์— ๋‚ด๋ถ€ ํด๋ž˜์Šค๋กœ ์„ ์–ธํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. ์ธ์Šคํ„ด์Šค ๋‚ด๋ถ€ ํด๋ž˜์Šค, ์ •์ (static) ๋‚ด๋ถ€ ํด๋ž˜์Šค, ์ง€์—ญ(local) ๋‚ด๋ถ€ ํด๋ž˜์Šค๊ฐ€ ์žˆ๋Š”๋ฐ, ์ด๊ฒƒ์€ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์„ ์–ธํ•˜๋Š” ๋ณ€์ˆ˜์˜ ์œ ํ˜•(์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜, ์ •์  ๋ณ€์ˆ˜, ์ง€์—ญ ๋ณ€์ˆ˜)๊ณผ ์œ ์‚ฌํ•˜๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ํด๋ž˜์Šค ์ด๋ฆ„ ์—†์ด ์„ ์–ธํ•˜๊ณ  ๋ฐ”๋กœ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ต๋ช…(anonymous) ๋‚ด๋ถ€ ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค. โ€‹ โ€‹ โ€‹ *์ธ์Šคํ„ด์Šค ๋‚ด๋ถ€ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค ๋‚ด๋ถ€ ํด๋ž˜์Šค๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ์™€.. 2021. 2. 22.
๋ฐ˜์‘ํ˜•