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. ์ด์ 1 2 3 4 5 ๋ค์