Java 21 Full Support

μ €λ§Œ μ§œμ¦λ‚œ 걸지도 λͺ¨λ₯΄κ² μ§€λ§Œ,
Intellij 2023.2 λ²„μ „μ—μ„œλŠ” Jdk 21 λ₯Ό μ™„λ²½ν•˜κ²Œ μ§€μ›ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.
κ°„λ‹¨ν•œ Maven ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•˜κ³ , Main λ¬Έ ν•˜λ‚˜ 돌리렀고 ν•  λ•Œμ—λ„ μΆ”κ°€μ μœΌλ‘œ
μ œκ°€ μˆ˜λ™μœΌλ‘œ μ„ΈνŒ…ν•΄μ€˜μ•Ό ν•˜λŠ” 게 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
그외에도 문법 자체λ₯Ό 인식 λͺ»ν•˜λŠ” λ¬Έμ œλ„ μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ! 였늘 (2023-12-09) 아침에 μΈν…”λ¦¬μ œμ΄μ— μƒˆλ‘œμš΄ μ—…λ°μ΄νŠΈκ°€ μžˆμ–΄μ„œ ν–ˆλŠ”λ°,
μ•„λž˜μ™€ 같은 release note λ‚΄μš©μ„ λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€.

λ§ˆμΉ¨λ‚΄!!



κ°„λ‹¨ν•˜κ²Œ μ•„λž˜μ²˜λŸΌ maven ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•˜κ³  κ³§λ°”λ‘œ ν…ŒμŠ€νŠΈ κ°€λŠ₯ν•©λ‹ˆλ‹€.


pom.xml μ„ΈνŒ…

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>me.dailycode</groupId>
  <artifactId>java-new</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>java-new</name>


  <!-- (ν•„μˆ˜) properties λ₯Ό μ•„λž˜μ²˜λŸΌ μ„ΈνŒ…! -->
  <properties>
    <java.version>21</java.version>
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  </properties>
   
  <!-- 
    (이건 ν•„μˆ˜κ°€ μ•„λ‹™λ‹ˆλ‹€!!!!)
  	spring boot dependencies version 정보 μ°Έμ‘°λ₯Ό μœ„ν•œ bom import
  -->
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>3.1.6</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <!-- μƒλž΅ -->
  </dependencies>
</project>



Jdk21 문법 μ‚¬μš©ν•˜κΈ°

Virtual Thread λ₯Ό ν•˜λ‚˜ μƒμ„±ν•΄μ„œ κ°€λ³κ²Œ λŒλ €λ΄€μŠ΅λ‹ˆλ‹€.
κ·Έλƒ₯ μˆœμˆ˜ν•˜κ²Œ 잘 λŒμ•„κ°€λŠ”μ§€λ§Œ ν™•μΈν•˜λŠ” μ½”λ“œμž…λ‹ˆλ‹€.

package me.dailycode.new_jdk;

public class App {
	public static void main(String[] args) throws InterruptedException {
		
		Thread virtualThread = Thread.ofVirtual()
			.unstarted(() -> {
				System.out.println("who am i? " + Thread.currentThread());
			});
		
		virtualThread.start();
		virtualThread.join();
		
		System.out.println("End of Main Thread!");
	}
}



jdk21 preview κΈ°λŠ₯을 μ‚¬μš©ν•˜κ³  μ‹Άλ‹€λ©΄?

μ•Œκ³  μžˆκ² μ§€λ§Œ, jdk 21 은 λ‹€μ–‘ν•œ κΈ°λŠ₯을 μ œκ³΅μ€ ν•©λ‹ˆλ‹€λ§Œ...
λŒ€λΆ€λΆ„μ΄ preview κΈ°λŠ₯으둜 λ‚˜μ™”μŠ΅λ‹ˆλ‹€. κ·Έλƒ₯ μ’€ μ •μ‹μœΌλ‘œ 내주지...

μ•„λ¬΄νŠΌ μ΄λŸ¬ν•œ preview κΈ°λŠ₯을 μ‚¬μš©ν•˜κ³  μ‹ΆμœΌλ©΄ intellij μ—μ„œλŠ” μ•„λž˜μ™€ 같이 κ°„λ‹¨ν•˜κ²Œ
μ„ΈνŒ…λ§Œ λ°”κΏ”μ£Όλ©΄ μ‚¬μš©μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

(window κΈ°μ€€) ctrl + alt + shift + s λ₯Ό λˆ„λ₯΄κ³  μ•„λž˜μ™€ 같이 μ„ΈνŒ…ν•©λ‹ˆλ‹€.


이후에 μ•„λž˜μ²˜λŸΌ String Template κΈ°λŠ₯을 κ°€λ³κ²Œ ν…ŒμŠ€νŠΈν•΄ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

package me.dailycode.new_jdk;

public class App {
	public static void main(String[] args) {
		int i = 10;
		int j = 2;
		System.out.println(STR."\{i} + \{j} = \{i + j}");
	}
}

// 좜λ ₯:
// 10 + 2 = 12 
profile
λ°±μ—”λ“œ 개발자둜 μΌν•˜κ³  μžˆλŠ” 식빡(🍞)μž…λ‹ˆλ‹€.

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보

Powered by GraphCDN, the GraphQL CDN