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. [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. IntelliJ JAVA ์น ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ ๋ฐฉ๋ฒ (+ Maven, Tomcat) IntelliJ JAVA ์น ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ ๋ฐฉ๋ฒ (+ Maven, Tomcat) ์ด์ ์ ์์ฑํ๋ [JAVA ์น ๊ฐ๋ฐํ๊ฒฝ] IntelliJ + Tomcat ์ฐ๋ ๋ฐฉ๋ฒ ๊ธ์ ์๊ฐ๋ณด๋ค ๋ง์ ๋ถ๋ค์ด ๋ด์ฃผ์ ์ ์ด๋ฒ ๊ธ์์ ๋ด์ฉ์ ๋ณด๊ฐํ๋ ค๊ณ ํฉ๋๋ค. IntelliJ๋ก JAVA ์น ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํด์ Maven ๊ธฐ๋ฐ์ ์น ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ ์คํํ๋ ๋ฐฉ๋ฒ๊น์ง ๋ค๋ฃจ์ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ค๋นํด์ผ ํ ๊ฒ๋ค JAVA๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ธฐ ์ํด ํ์ํ ๊ฒ๋ค์ ์ผ๋ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ฐธ๊ณ ์ผ์ ํญ๋ชฉ ๋ณ๋ก ๋ค์ด๋ก๋ ๋ฐ์ ์ ์๋ ํ์ด์ง์ ๋งํฌ๋ฅผ ๋ฌ์๋์์ต๋๋ค. ์ ์ฐฝ์ผ๋ก ์ด๋ฆฝ๋๋ค. IntelliJ IDEA ๐ JDK ๐ Maven ๐ (๋๋ ๋ค๋ฅธ ๋น๋ ํด) Tomcat ๐ (๋๋ ๋ค๋ฅธ ์๋ธ๋ฆฟ ์ปจํ ์ด๋) ๋ณธ ๊ธ์์.. 2020. 4. 7. 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. SQL ์์กด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ์ ๊ณผ JPA SQL ์์กด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ์ ๊ณผ JPA ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ค๋ฉด SQL์ ์ฌ์ฉํด์ผ ํ๋ฉฐ ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ JDBC API๋ฅผ ์ฌ์ฉํด์ SQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ฌํ ์ ์๋ค. JPA๋ฅผ ์ฌ์ฉํ์ ๋์ ์ด์ ์ด ๋ฌด์์ธ์ง, SQL์ ์ง์ ๋ค๋ฃฐ ๋์ ๋ฌธ์ ์ ์ ๋ฌด์์ธ์ง ์์๋ณด๊ธฐ ์ํด ์๋ฐ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํด์ ํ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํด๋ณด์. ํ์ ํ ์ด๋ธ์ ์ด๋ฏธ ๋ง๋ค์ด์ ธ ์๋ค๊ณ ๊ฐ์ ํ๊ณ CRUD(๋ฑ๋ก, ์กฐํ, ์์ , ์ญ์ ) ๊ธฐ๋ฅ์ ๊ฐ๋ฐํด๋ณด์. JDBC ํ์ ๊ด๋ฆฌ ์ดํ๋ฆฌ์ผ์ด์ Member(ํ์) ๊ฐ์ฒด ์๋ฐ์์ ์ฌ์ฉํ Member(ํ์) ๊ฐ์ฒด๋ฅผ ๋ง๋ ๋ค. public class Member { private int no; private String email; private String name.. 2020. 3. 18. [JAVA] static import๋ฌธ static import๋ฌธ์ JDK1.5๋ถํฐ ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ด๋ค. import๋ฌธ์ ์ฌ์ฉํ๋ฉด ํด๋์ค์ ํจํค์ง๋ช ์ ์๋ตํ ์ ์๋ ๊ฒ๊ณผ ๊ฐ์ด static import๋ฌธ์ ์ฌ์ฉํ๋ฉด static๋ฉค๋ฒ๋ฅผ ํธ์ถํ ๋ ํด๋์ค๋ช ์ ์๋ตํ ์ ์๋ค. ์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ง๊ณ ํน์ ํด๋์ค์ static ๋ฉค๋ฒ๋ฅผ ์์ฃผ ์ฌ์ฉํ ๋ ํธ๋ฆฌํ์ง๋ง ๋จ์ฉํ๋ฉด ๋ ์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์ ์ฃผ์ํด์ผ ํ๋ค. import static java.lang.Integer.*;// Integer ํด๋์ค์ ๋ชจ๋ static ๋ฉค๋ฒ import static java.lang.Math.random;// Math.random()๋ง import. ๊ดํธ๋ ๋ถ์ด์ง ์๋๋ค. import static java.lang.System.out;// ์ด๋ ๊ฒ ํ๋ฉด System.out์ out.. 2020. 1. 29. ์ด์ 1 2 ๋ค์