Java 21 Release
ยท
Languages/JAVA
Java 21 Release ์˜ˆ์ •๋Œ€๋กœ 9์›” 19์ผ์ž๋กœ Java 21 GA ๋ฆด๋ฆฌ์ฆˆ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (์ด๋ฏธ์ง€ ์ถœ์ฒ˜ - Inside Java) 1. Java 21 Release Note Java 21 ์ „์ฒด ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ๋Š” ์—ฌ๊ธฐ์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - https://jdk.java.net/21/release-notes - https://inside.java/2023/09/19/the-arrival-of-java-21 2. ์ฃผ์š” ๊ธฐ๋Šฅ ์š”์•ฝ Java 21์— ์ถ”๊ฐ€๋˜๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๋“ค ์ค‘ Preview๋‚˜ Incubator๋Š” ์ œ์™ธํ•˜๊ณ , ์ฃผ์š” ๊ธฐ๋Šฅ๋งŒ ์‚ดํŽด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. 2.1 Virtual Threads (Project Loom) ๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. (**JEP 444**) *"๊ฐ€์ƒ ์Šค๋ ˆ๋“œ๊ฐ€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์—์„œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ..
2023๋…„ 3์›” 21์ผ JDK 20์ด ๋ฆด๋ฆฌ์ฆˆ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ยท
Languages/JAVA
JDK 20 ๋ฆด๋ฆฌ์ฆˆ 2023๋…„ 3์›” 21์ผ JDK 20์ด ๋ฆด๋ฆฌ์ฆˆ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฆด๋ฆฌ์Šค์—๋Š” ์ƒˆ๋กœ์šด ํ”„๋ฆฌ๋ทฐ ๋ฐ ์ธํ๋ฒ ์ด์…˜ ๋ผ์šด๋“œ์™€ ํ•จ๊ป˜ Project Amber , Project Loom ๋ฐ Project Panama ์— ๋Œ€ํ•œ ์ง€์†์ ์ธ ๊ธฐ์—ฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” JEP๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค . ์—ฌ๊ธฐ์—์„œ ์ด๋Ÿฌํ•œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ค‘ ๋ช‡ ๊ฐ€์ง€๋ฅผ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. JDK 20์—๋Š” Project Valhalla๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” JEP๊ฐ€ ์—†๋‹ค๋Š” ์ ์€ ์ฃผ๋ชฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค . Oracle์€ Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ ๊ฐ€์ƒ ๋จธ์‹  ๋ฒ„์ „ 20 ์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค . ์ด ์ตœ์ข… ๊ธฐ๋Šฅ ์„ธํŠธ์˜ 7๊ฐœ JEP์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. JEP 429: ๋ฒ”์œ„ ๊ฐ’(์ธํ๋ฒ ์ดํ„ฐ) JEP 429: Scoped Values (Incubator) JEP 429: Scoped ..
[intellij] JDK ์„ค์น˜ ๊ฒฝ์šฐ ์œˆ๋„์šฐ ๊ฒฝ๋กœ
ยท
Tool/IntelliJ
์œ„์น˜ C:/Users/name/.jdks/corretto-11.0.14.1/bin name์€ ์‚ฌ์šฉํ•˜๊ณ ์žˆ๋Š” ์œˆ๋„์šฐ ๊ณ„์ •๋ช…์ž…๋‹ˆ๋‹ค.
[Kotlin] java static method ์ฝ”ํ‹€๋ฆฐ ๋ฌธ๋ฒ•
ยท
Languages/Kotlin
์ž๋ฐ” : class Foo { public static int a() { return 1; } } ์ฝ”ํ‹€๋ฆฐ : class Foo { companion object { fun a() : Int = 1 } } From the docs: https://kotlinlang.org/docs/reference/object-declarations.html#companion-objects kotlinlang.org Companion Objects An object declaration inside a class can be marked with the companion keyword: class MyClass { companion object Factory { fun create(): MyClass = MyClass()..
JPA(Java Persistence API)๋ž€ ๋ฌด์—‡์ธ๊ฐ€?
ยท
Languages/JAVA
JPA(Java Persistence API)๋Š” ์ž๋ฐ” ORM ๊ธฐ์ˆ  ํ‘œ์ค€์ž…๋‹ˆ๋‹ค. JPA๋Š” ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ JDBC ์‚ฌ์ด์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ORM(Object-Relational Mapping)์€ ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๊ฐ์ฒด์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งคํ•‘ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ORM ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฐ์ฒด์™€ ํ…Œ์ด๋ธ”์„ ๋งคํ•‘ํ•ด์„œ ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๋ฅผ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ €์žฅํ•  ๋•Œ, Insert SQL์„ ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๋ฅผ ๋งˆ์น˜ ์ž๋ฐ” ์ปฌ๋ ‰์…˜์— ์ €์žฅํ•˜๋“ฏ์ด ORM ํ”„๋ ˆ์ž„์›Œํฌ์— ์ €์žฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. JPA ์†Œ๊ฐœ ๊ณผ๊ฑฐ ์ž๋ฐ” ๋นˆ์ฆˆ(EJB)๋ผ๋Š” ๊ธฐ์ˆ  ํ‘œ์ค€์„ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ๊ทธ ์•ˆ์—๋Š” ์—”ํ‹ฐํ‹ฐ ๋นˆ์ด๋ผ๋Š” ORM ๊ธฐ์ˆ ๋„ ํฌํ•จ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ณ  ๊ธฐ์ˆ  ์„ฑ์ˆ™๋„๋„ ๋–จ์–ด์กŒ์œผ๋ฉฐ ์ž๋ฐ” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ(J2EE) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์—์„œ๋งŒ ๋™์ž‘ ..
zipํŒŒ์ผ ํ•ด์ œ, ๋Œ€์ƒ ํด๋” ๋ณ€๊ฒฝ & ํŒŒ์ผ ์œ„์น˜ ๋ณ€๊ฒฝ
ยท
Languages/JAVA
public static boolean fileMoveDir(String orgDir, String newDir, String fileName, String fileExtend) throws IOException{ boolean result = false; if(fileExtend.equals("zip")){ byte[] buffer = new byte[1024]; File folder = new File(newDir); if(!folder.exists()){ folder.mkdir(); } ZipInputStream zis = new ZipInputStream(new FileInputStream(orgDir+File.separator+fileName)); ZipEntry ze = zis.getNextE..
[java] ์ฃผ๋ง ์ œ์™ธํ•œ ์ด์ „ 5์ผ ๊ตฌํ•˜๊ธฐ
ยท
Languages/JAVA
import java.time.DayOfWeek; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; public class PreviousDaysExcludingWeekends { public static List getPreviousWeekdays(int days) { List weekdays = new ArrayList(); LocalDate date = LocalDate.now().minusDays(1); // start from yesterday while (weekdays.size() < days) { if (!isWeekend(date)) { weekdays.add(date); } date = date...
[JAVA]ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ์›ํ•˜๋Š” ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜
ยท
Languages/JAVA
/** * ํ•ด๋‹น ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ์›ํ•˜๋Š” ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜์‹œํ‚จ๋‹ค. * \r\n์ผ๊ฒฝ์šฐ \r์€ ๋ฌด์กฐ๊ฑด ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ž์—ด์—์„œ skipํ•œ๋‹ค. * @param str * @param speChar * @param convertStr * @return */ public static String convertSpecialCharToHtml(String str,char speChar, String convertStr){ String finishStr = ""; int strLeng = str.length(); StringBuffer convertBuff = new StringBuffer(strLeng+50); for(int i=0;i
[java]ํŠน์ˆ˜๋ฌธ์ž์˜ ์กด์žฌ์—ฌ๋ถ€
ยท
Languages/JAVA
/** * \r\n์˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ์ฐพ๋Š”๋‹ค๋ฉด \n๋งŒ ์ž…๋ ฅ * @param str * @param speChar * @return ์กด์žฌํ• ๊ฒฝ์šฐ true */ public static boolean existSpecialCharToHtml(String str, char speChar){ boolean isExist = false; int strLeng = str.length(); for(int i=0;i