βοΈ Java 17μ μ¬μ©νλ μ΄μ
- Java 11λ³΄λ€ μ§μκΈ°κ°μ΄ κΈΈλ€.
- Java 8μ΄λ Java 11μ μ¬μ©νμ λ λ³΄λ€ μ κ· λ²μ μΌλ‘ λ§μ΄κ·Έλ μ΄μ νκΈ°μ 리μ€ν¬κ° μ μ΄μ§λ€.
- SpringBoot 3.0 λΆν° Java 17 μ΄μμ μ§μνλ€.
- νμ¬ SpringBoot 2.x.xλ 23λ 11μμ μ§μμ΄ μ’ λ£λμλ€.
- Java 17μμ κ°λΉμ§ 컬λ μ μκ³ λ¦¬μ¦(ZGC, Shenandoah GC)μ΄ κ°μ λμ΄ λ©λͺ¨λ¦¬ κ΄λ¦¬ ν¨μ¨μ΄ ν₯μλμμΌλ©°, μ»΄νμΌλ¬ μ΅μ ν κΈ°μ μ΄ μ κ·Έλ μ΄λλμ΄ μ ν리μΌμ΄μ μ μ€ν μλμ μλ΅ μκ°μ΄ κ°μ λμλ€.
- Java 17μμ μνΈν λ° μΈμ¦ μκ³ λ¦¬μ¦μ μ΅μ νμ€μ μ§μν΄μ μΉ μλΉμ€ λ° μ ν리μΌμ΄μ μ 보μμ κ°ννλ€.
- μλ‘μ΄ λ©μλ μΆκ°
π Java 17 λ©μλ
1. recode
recodeλ λ°μ΄ν° ν΄λμ€λ₯Ό μλ―Ένλ©° DTOκ°μ ν΄λμ€λ₯Ό μ½κ² μ μν μ μλ€.
- getterκ° μλμ μΌλ‘ μμ±λλ€.
- equals, hashcode, toStringμ΄ μλμ μΌλ‘ μμ±λλ€.
- λ©€λ²λ³μκ° private finalλ‘ μ μΈλλ€.
- κΈ°λ³Έμμ±μλ μ§μνμ§ μμΌλ―λ‘ νμν κ²½μ° μ§μ μμ±ν΄μΌ λλ€.
- final ν΄λμ€μ΄λ―λ‘ λ€λ₯Έ ν΄λμ€λ₯Ό μμνκ±°λ μμμν¬ μ μλ€.
- private final fields μ΄μΈμ μΈμ€ν΄μ€ νλλ₯Ό μ μΈν μ μλ€.
before
public class Response {
private final String name;
private final int age;
public Response(final string name, final int age){
this.name = name;
this.age = age;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
}
after
public recode Response(
String name;
int age;
){}
2. Stream.toList()
Collectors.toList()λ₯Ό .toList()λ‘ ννν μ μλ€.
before
.stream()
.collect(Collector.toList())
after
.stream()
.toList();
3. Switch Expression
κΈ°μ‘΄μ switch ~ case: break λ³΄λ€ κ°κ²°νκ² μ¬μ©ν μ μλ€.
- μ€νλ¬Έμ -> μ μ΄μ©ν΄μ λνλΈλ€.
- 쑰건λ€μ , λ₯Ό μ΄μ©ν΄ λμ΄νλ€.
- breakλ₯Ό μ¬μ©νμ§ μλλ€.
before
switch(a){
case "aa":
case "bb":
break;
}
after
switch(a){
case "aa", "bb"
-> System.out.println("~~~");
}
4. ν μ€νΈ λΈλ‘
κΈ°μ‘΄μ λ¬Έμ₯μ ν©μΉλ €λ©΄ +λ₯Ό μ¬μ©νμ΄μΌ ν΄μ κ°λ μ±μ΄ μμ’μλλ° Java 17μμλ ν μ€νΈ λΈλ‘μ μ¬μ©ν΄μ ννν μ μλ€.
before
String jsonString = "{\\n" +
" \\"name\\": \\"Jinny\\",\\n" +
" \\"age\\": 20\\n" +
"}";
@Query("select m from Member m"
+ "where m.id = :id")
after
String jsonString = """
{
"name": "Jinny",
"age": 20
}
""";
@Query("""
select m from Member m
where m.id = :id
""")
Reference
'JAVA & OOP' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JAVA] HashCodeμ equals μ€λ²λΌμ΄λ© (0) | 2024.03.21 |
---|---|
[JAVA] Optional ν΄λμ€μ orElseμ orElseGet μ°¨μ΄ (0) | 2024.03.15 |
JAVA :: HashMap, hashing κ°λ μ 리 (0) | 2022.08.14 |
JAVA :: Optional ν΄λμ€ κ°λ μ 리 (0) | 2022.07.31 |
JAVA :: μ λ€λ¦μ€(Generics) κ°λ μ 리 (0) | 2021.10.01 |