๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JAVA ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผํ•  String ํด๋ž˜์Šค - 2ํŽธ ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ง€๋‚œ ํฌ์ŠคํŒ…์— ์ด์–ด์„œ JAVA ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผํ•˜๋Š” String ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ฃผ์š” ๋‚ด์šฉ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. String, StringBuilder, StringBuffer์˜ ํŠน์ง•๊ณผ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์ฃผ๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋ชฉ์ฐจ String, StringBuilder, StringBuffer - immutable(๋ถˆ๋ณ€) VS mutable(๊ฐ€๋ณ€) StringBuilder VS StringBuffer String, StringBuilder, StringBuffer - immutable(๋ถˆ๋ณ€) VS mutable(๊ฐ€๋ณ€) String, StringBuilder, StringBuffer๋Š” ๋ชจ๋‘ ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃจ๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ๊ฐ ํด๋ž˜์Šค๋Š” ๊ณ ์œ ํ•œ ํŠน์„ฑ์ด ์žˆ์–ด ์ด๋ฅผ ์•Œ๊ณ  ์ ํ•ฉํ•œ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. S.. 2023. 2. 18.
JAVA ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผํ•  String ํด๋ž˜์Šค - 1ํŽธ ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” JAVA ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผํ•˜๋Š” String ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ฃผ์š” ๋‚ด์šฉ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ชฉ์ฐจ ๋ฌธ์ž์—ด ๋ถ™์ด๊ธฐ - concat() VS '+' ์—ฐ์‚ฐ์ž ๋ถˆ๋ณ€(immutable) ๋ฌธ์ž์—ด ๋น„๊ต - == VS equals() String ๊ฐ์ฒด ์ƒ์„ฑ - ๋ฆฌํ„ฐ๋Ÿด VS new ์—ฐ์‚ฐ์ž ๋ฌธ์ž์—ด ๋ถ™์ด๊ธฐ - concat() VS '+' ์—ฐ์‚ฐ์ž concat() ๋ฉ”์†Œ๋“œ์™€ + ์—ฐ์‚ฐ์ž๋Š” ๋‘˜ ๋‹ค ๋‘ ๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ์ด์–ด๋ถ™์—ฌ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์—๋Š” ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. concat() ๋ฉ”์†Œ๋“œ๋Š” ํ˜ธ์ถœํ•˜๋Š” ๋ฌธ์ž์—ด ๋’ค์— ์ „๋‹ฌ๋œ ๋ฌธ์ž์—ด์„ ์ด์–ด๋ถ™์ž…๋‹ˆ๋‹ค. + ์—ฐ์‚ฐ์ž๋Š” ์™ผ์ชฝ ๋ฌธ์ž์—ด๊ณผ ์˜ค๋ฅธ์ชฝ ๋ฌธ์ž์—ด์„ ์ด์–ด๋ถ™์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. String str1 = "Hello"; String str2 .. 2023. 2. 17.
[JAVA] Class ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ๋ฉ”์†Œ๋“œ์™€ ์ƒ์„ฑ์ž ์–ป๊ธฐ JAVA์˜ Class ํด๋ž˜์Šค Object์˜ getClass() ๋ฉ”์†Œ๋“œ๋Š” Class ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. Class ํด๋ž˜์Šค๋Š” ํ•ด๋‹น ํด๋ž˜์Šค์— ์„ ์–ธ๋œ ๋ฉ”์†Œ๋“œ์™€ ์ƒ์„ฑ์ž๋“ค์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. getDeclaredConstructors(), getMethods()๊ฐ€ ๊ทธ๋Ÿฌํ•œ ๋ฉ”์†Œ๋“œ๋“ค์ž…๋‹ˆ๋‹ค. Class#getName() Object obj = new Object(); Class clazz = obj.getClass(); System.out.println(clazz.getName()); ๐Ÿ–ฅ ์‹คํ–‰๊ฒฐ๊ณผ java.lang.Object getName()์€ ํด๋ž˜์Šค ์ด๋ฆ„์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค. Class#getDeclaredConstructors() ... Constructor[] constructors = clazz.getDe.. 2023. 2. 12.
[JAVA] Arrays.asList()์™€ List.of()์˜ ์ฐจ์ด JAVA๋Š” List ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ array๋ฅผ List๋กœ ๋ณ€ํ™˜(array -> list)ํ•˜๊ธฐ ์œ„ํ•ด ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ๋ฉ”์†Œ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ œ๋ชฉ๊ณผ ๊ฐ™์€ Arrays.asList()์™€ List.of() ๋‘ ๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค. ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋‘ ๋ฉ”์†Œ๋“œ์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๊ณผ ์ฐจ์ด๋ฅผ ์•Œ์•„๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. Arrays.asList() ์ด ๋ฉ”์†Œ๋“œ๋Š” List, ์ฆ‰ Java Collections Framework์— ์†ํ•˜๋Š” List ๊ฐ์ฒด๋ฅผ ๊ฐ„๋‹จํžˆ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. Array(๋ฐฐ์—ด)์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„ List ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ JAVA 1.2์—์„œ ๋„์ž…๋œ ์˜ค๋ž˜๋œ ๋ฉ”์†Œ๋“œ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ๐Ÿ“„ [Excample Code] @DisplayName("Arrays.asList() ์‚ฌ์šฉ๋ฐฉ๋ฒ•") @Test void usa.. 2023. 2. 10.
JAVA์—์„œ String์„ Null Safeํ•˜๊ฒŒ ๋น„๊ตํ•˜๊ธฐ Nullableํ•œ ๋‘ ๊ฐœ์˜ String์ด equalํ•œ์ง€๋ฅผ null safeํ•˜๊ฒŒ ๋น„๊ตํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž. String#equals ๋‘ String์ด null์ด ์•„๋‹ˆ๋ฉด String ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ equals๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. @Test void test0() { String s1 = "hello"; String s2 = "hello"; assertThat(s1.equals(s2)).isTrue(); s2 = "world"; assertThat(s1.equals(s2)).isFalse(); } @Test void test1() { String s1 = null; String s2 = null; assertThatThrownBy(() -> s1.equals(s2)).isInstanceOf(NullP.. 2021. 8. 14.
JAVA ์ œ๋„ค๋ฆญ(Generics) ํด๋ž˜์Šค์™€ ๋ฉ”์†Œ๋“œ JAVA ์ œ๋„ค๋ฆญ(Generics) ํด๋ž˜์Šค์™€ ๋ฉ”์†Œ๋“œ ๐Ÿ“ ๋‹ค๋ฃจ๋Š” ๋‚ด์šฉ ์ œ๋„ค๋ฆญ์˜ ์ •์˜ ์ œ๋„ค๋ฆญ ํด๋ž˜์Šค ์ œ๋„ค๋ฆญ ๋ฉ”์†Œ๋“œ ์ œ๋„ค๋ฆญ ์ œํ•œ(extends, super) ์™€์ผ๋“œ ์นด๋“œ ์ œ๋„ค๋ฆญ ์˜ˆ - Collections.sort() ์ œ๋„ค๋ฆญ(Generics) ์ด๋ž€? ์ œ๋„ค๋ฆญ์€ ํด๋ž˜์Šค, ๋ฉ”์†Œ๋“œ์—์„œ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋‚˜์ค‘์— ํ™•์ •ํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ๋‚˜์ค‘์—๋ผ๋Š” ๋ง์€ ํด๋ž˜์Šค๋‚˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์„ ์–ธํ•  ๋•Œ๊ฐ€ ์•„๋‹Œ ์‚ฌ์šฉํ•  ๋•Œ, ์ฆ‰ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋‚˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์ •ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ์ œ๋„ค๋ฆญ์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๊ณผ ํŠน์ง•์€ ๋ฉ”์†Œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๊ต‰์žฅํžˆ ์œ ์‚ฌํ•œ๋ฐ, ๋ฉ”์†Œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ '๊ฐ’'๊ณผ ๊ด€๋ จ๋˜์–ด ์žˆ๋‹ค๋ฉด ์ œ๋„ค๋ฆญ์€ ๋ฐ์ดํ„ฐ์˜ 'ํƒ€์ž…'๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํด๋ž˜์Šค์™€ ๋ฉ”์†Œ๋“œ๊ฐ€ ๋‹ค์–‘ํ•œ ํƒ€์ž…์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋ฅผ ์ œ๋„ค๋ฆญ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜๋ฉด ๋ฐฉ๋ฒ•์€ .. 2020. 7. 11.
JAVA์˜ ๊ฐ์ฒด ์ง๋ ฌํ™”(Serialization)์™€ JSON ์ง๋ ฌํ™” JAVA์˜ ๊ฐ์ฒด ์ง๋ ฌํ™”(Serialization)์™€ JSON ์ง๋ ฌํ™” ๐Ÿ“ ๋‹ค๋ฃจ๋Š” ๋‚ด์šฉ ์ง๋ ฌํ™”์™€ ์—ญ์ง๋ ฌํ™”์˜ ๊ฐœ๋… ObjectInputStream๊ณผ ObjectOutputStream Serializable transient ์ง๋ ฌํ™”/์—ญ์ง๋ ฌํ™”์˜ ๊ตฌํ˜„ serialVersionUID Jackson์„ ์ด์šฉํ•œ JSON ์ง๋ ฌํ™” ์ง๋ ฌํ™”, ์—ญ์ง๋ ฌํ™”๋ž€? ์ง๋ ฌํ™” - ๊ฐ์ฒด์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ I/O ์ŠคํŠธ๋ฆผ์— ์“ฐ๊ธฐ(์ถœ๋ ฅ) ์œ„ํ•ด ์—ฐ์†์ ์ธ(serial) ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ ์—ญ์ง๋ ฌํ™” - I/O ์ŠคํŠธ๋ฆผ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์„œ(์ž…๋ ฅ) ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ ์ž๋ฐ”์—์„œ ์ง๋ ฌํ™”์™€ ์—ญ์ง๋ ฌํ™”๋Š” ๊ฐ์ฒด๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ์ œ๊ณต๋˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ๊ฐ์ฒด๋Š” '์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ์ง‘ํ•ฉ'์ด๋ฏ€๋กœ ๊ฐ์ฒด๋ฅผ ์ €์žฅ/์ „์†กํ•˜๋Š” ๊ฒƒ์€ ๊ฐ์ฒด์˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ๊ฐ’์„.. 2020. 7. 10.
์ž๋ฐ” Object ํด๋ž˜์Šค ์ •๋ฆฌ - toString(), equals(), hashCode(), clone() ์ž๋ฐ” Object ํด๋ž˜์Šค ์ •๋ฆฌ - toString(), equals(), hashCode(), clone() Object ํด๋ž˜์Šค - java.lang.Object - ๋ชจ๋“  ํด๋ž˜์Šค์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค Object ํด๋ž˜์Šค๋Š” ์ž๋ฐ”์—์„œ ์ œ๊ณตํ•˜๋Š” ์ค‘์š”ํ•œ ํด๋ž˜์Šค ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. java.lang.Object ํด๋ž˜์Šค๋Š” ๋ชจ๋“  ํด๋ž˜์Šค์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค๋กœ ๋ชจ๋“  ํด๋ž˜์Šค๋Š” Object ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“  ํด๋ž˜์Šค๋Š” Object ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ์ผ๋ถ€ ๋ฉ”์†Œ๋“œ๋ฅผ overrideํ•ด์„œ ์‚ฌ์šฉํ• ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, ๋‹น์—ฐํžˆ final ๋ฉ”์†Œ๋“œ๋Š” overrideํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Object ํด๋ž˜์Šค๊ฐ€ ๋“ค์–ด์žˆ๋Š” java.lang ํŒจํ‚ค์ง€๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ž๋™์œผ๋กœ import๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ java.lang ํŒจํ‚ค์ง€์— ์žˆ๋Š”.. 2020. 6. 30.
[JAVA ๋””์ž์ธ ํŒจํ„ด] ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ ํŒจํ„ด [JAVA ๋””์ž์ธ ํŒจํ„ด] ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ ํŒจํ„ด - ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ํ”ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ์„ค๊ณ„ ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜ - abstract, final ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„ - final ๋ฉ”์†Œ๋“œ์™€ abstract ๋ฉ”์†Œ๋“œ๋กœ ๋กœ์ง์˜ ํ๋ฆ„๋งŒ์„ ์ •์˜ํ•˜๊ณ  ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„์€ ํ•˜์œ„ ํด๋ž˜์Šค์— ์œ„์ž„ ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ ํŒจํ„ด์€ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ํ”ํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ์„ค๊ณ„ ๊ธฐ๋ฒ• ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์šฐ์„  ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ๋ž€ ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์˜ ํ๋ฆ„(์‹œ๋‚˜๋ฆฌ์˜ค)๋ฅผ ์ •์˜ํ•œ ๋ฉ”์†Œ๋“œ์ž…๋‹ˆ๋‹ค. final ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ overrideํ•  ์ˆ˜ ์—†๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•œ ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ ํŒจํ„ด์€ abstract ํด๋ž˜์Šค์—์„œ abstract ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์ „์ฒด ํ๋ฆ„์„ ์ •์˜ํ•˜๊ณ  ๊ตฌ์ฒด์ ์ธ ๊ฐ ๋ฉ”์†Œ๋“œ์˜ ๊ตฌํ˜„์€ ํ•˜์œ„ ํด๋ž˜์Šค์— ์œ„์ž„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์œ„ํด๋ž˜์Šค ๋งˆ๋‹ค ์„ธ.. 2020. 6. 26.
[JAVA ๋””์ž์ธ ํŒจํ„ด] static์„ ์‘์šฉํ•œ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด(Singleton Pattern) ๊ตฌํ˜„ [JAVA ๋””์ž์ธ ํŒจํ„ด] static์„ ์‘์šฉํ•œ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด(Singleton Pattern) ๊ตฌํ˜„ ํด๋ž˜์Šค ๋‚ด์˜ ๋ณ€์ˆ˜์— static ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์ด๋ฉด ๊ทธ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋“ค์ด ๊ณต์œ ํ•˜๋Š” ํด๋ž˜์Šค ๋ณ€์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ๋ด…์‹œ๋‹ค. ์‚ฌ์šฉ์ž ํด๋ž˜์Šค User๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋งˆ๋‹ค ์ฒซ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค์—๋Š” 1001์„, ๋‘ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค์—๋Š” 1002, ๋‹ค์Œ์€ 1003, ... ์ด๋Ÿฐ์‹์œผ๋กœ 1000๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋งˆ๋‹ค 1์”ฉ ์ฆ๊ฐ€์‹œ์ผœ id๋ฅผ ๋ถ€์—ฌํ•ด์ฃผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. /* ์‚ฌ์šฉ์ž ํด๋ž˜์Šค */ public class User { private static Long serialNumber = 1000L; private Long userId; private String userName; public User(St.. 2020. 6. 18.
[AspectJ Weaver] execution ์ง€์‹œ์ž ์„ค์ • ๋ฐฉ๋ฒ• ์ •๋ฆฌ [AspectJ Weaver] execution ์ง€์‹œ์ž ์„ค์ • ๋ฐฉ๋ฒ• ์ •๋ฆฌ Execution ์ง€์‹œ์ž Execution ์ง€์‹œ์ž ์„ค์ • ๋ฐฉ๋ฒ• - Pointcut์„ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ๋ฒ• - ํ˜•์‹ : execution(๋ฆฌํ„ดํƒ€์ž… ํด๋ž˜์Šค์ด๋ฆ„ ๋ฉ”์†Œ๋“œ์ด๋ฆ„(๋งค๊ฐœ๋ณ€์ˆ˜)) - ๋ฆฌํ„ดํƒ€์ž… โžก๏ธ ๋ฉ”์†Œ๋“œ์˜ ๋ฆฌํ„ด ํƒ€์ž… - ํด๋ž˜์Šค ์ด๋ฆ„ โžก๏ธ ํŒจํ‚ค์ง€๋ฅผ ํฌํ•จํ•œ ํด๋ž˜์Šค ์ด๋ฆ„ / ํŒจํ‚ค์ง€ ์ƒ๋žต ์‹œ ๋ชจ๋“  ํŒจํ‚ค์ง€ / ํด๋ž˜์Šค ์ƒ๋žต ์‹œ ๋ชจ๋“  ํด๋ž˜์Šค - ๋ฉ”์†Œ๋“œ ์ด๋ฆ„ โžก๏ธ ๋ฉ”์†Œ๋“œ์˜ ์ด๋ฆ„ - ๋งค๊ฐœ๋ณ€์ˆ˜ โžก๏ธ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํ˜•ํƒœ ์™€์ผ๋“œ์นด๋“œ * โžก๏ธ ํ•˜๋‚˜์˜ ๋ชจ๋“  ๊ฒƒ์„ ์˜๋ฏธ .. โžก๏ธ ๊ฐœ์ˆ˜ ์ƒ๊ด€์—†์ด ๋ชจ๋“  ๊ฒƒ์„ ์˜๋ฏธ ์˜ˆ) execution(void com.atoz_develop.beans.TestBean1.method1()) โžก๏ธ ๋ฆฌํ„ดํƒ€์ž… void, com.atoz_d.. 2020. 4. 27.
JAVA ์žฌ๊ท€ ํ˜ธ์ถœ(Recursive Call) ์˜ˆ์ œ JAVA ์žฌ๊ท€ ํ˜ธ์ถœ(Recursive Call) ์˜ˆ์ œ ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ๊ท€ ๋ฉ”์†Œ๋“œ(recursive method)๋ผ ํ•œ๋‹ค. ์žฌ๊ท€ ๋ฉ”์†Œ๋“œ๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ•˜์ง€๋งŒ ๋น„๊ต์  ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง„๋‹ค. JAVA ์žฌ๊ท€ ๋ฉ”์†Œ๋“œ์˜ ๊ตฌ์กฐ returnType methodName() { // some codes.. methodName();// ์ž๊ธฐ ์ž์‹ ์„ ํ˜ธ์ถœ } JAVA ์žฌ๊ท€(Recursion) ์˜ˆ์ œ1 - StackOverFlow ๋ฐœ์ƒ static void printHelloInfinite() { System.out.println("hello"); printHelloInfinite(); } public static void main(String[] args) { printHelloInfinite(); } ๐Ÿ–ฅ ์‹คํ–‰.. 2020. 4. 7.