---
title: Java 12 ~ 13
category: Java
tag:
- Java
---
## Java12
### String
Java 11
`indent()`
```java
String text = "Java";
// 4
text = text.indent(4);
System.out.println(text);
text = text.indent(-10);
System.out.println(text);
```
```
Java
Java
```
`transform()`
```java
String result = "foo".transform(input -> input + " bar");
System.out.println(result); // foo bar
```
### Files
Java 12
```java
public static long mismatch(Path path, Path path2) throws IOException
```
`mismatch()` -1L
```java
Path filePath1 = Files.createTempFile("file1", ".txt");
Path filePath2 = Files.createTempFile("file2", ".txt");
Files.writeString(filePath1, "Java 12 Article");
Files.writeString(filePath2, "Java 12 Article");
long mismatch = Files.mismatch(filePath1, filePath2);
assertEquals(-1, mismatch);
```
```java
Path filePath3 = Files.createTempFile("file3", ".txt");
Path filePath4 = Files.createTempFile("file4", ".txt");
Files.writeString(filePath3, "Java 12 Article");
Files.writeString(filePath4, "Java 12 Tutorial");
long mismatch = Files.mismatch(filePath3, filePath4);
assertEquals(8, mismatch);
```
###
`NumberFormat`
```java
NumberFormat fmt = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.SHORT);
String result = fmt.format(1000);
System.out.println(result);
```
:
```
1K
```
### Shenandoah GC
Redhat Pauseless GC 99.9% 10ms
Java11 ZGC JDK11 Shenandoah GC JDK8u Java8
### G1
Java12 G1 :
- **** JEP344 JEP 344 G1 G1
- **** JEP346 G1 GC Java
###
`javac``java``--enable-preview`
#### Switch
`switch` `break` break
Java12 `swtich` lambda break
```java
switch (day) {
case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
case TUESDAY -> System.out.println(7);
case THURSDAY, SATURDAY -> System.out.println(8);
case WEDNESDAY -> System.out.println(9);
}
```
#### instanceof
`instanceof`
```java
Object obj = "";
if(obj instanceof String){
String str = (String) obj;
System.out.println(str);
}
```
`instanceof`
```java
Object obj = "";
if(obj instanceof String str){
System.out.println(str);
}
```
## Java13
### ZGC()
Java 11 ZGC
ZGC ZPages GC ZPages **ZPageCache** ZPages LRU
Java 13 ZGC
### SocketAPI
Java Socket API
Java 13 Socket API `NioSocketImpl` `PlainSocketImpl` `java.util.concurrent` `-Djdk.net.usePlainSocketImpl=true`
Java 13 Socket
```java
public final class NioSocketImpl extends SocketImpl implements PlatformSocketImpl {
}
```
### FileSystems
`FileSystems`
- `newFileSystem(Path)`
- `newFileSystem(Path, Map)`
- `newFileSystem(Path, Map, ClassLoader)`
### CDS
Java 13 Java 10 (AppCDS)** Java ** CDS
[AppCDS](https://openjdk.java.net/jeps/310)
```bash
$ java -XX:ArchiveClassesAtExit=my_app_cds.jsa -cp my_app.jar
$ java -XX:SharedArchiveFile=my_app_cds.jsa -cp my_app.jar
```
###
####
Java ****
Java 13 `"""`
HTML
```java
String json ="{\n" +
" \"name\":\"mkyong\",\n" +
" \"age\":38\n" +
"}\n";
```
HTML
```java
String json = """
{
"name":"mkyong",
"age":38
}
""";
```
SQL
```sql
String query = "SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`\n" +
"WHERE `CITY` = 'INDIANAPOLIS'\n" +
"ORDER BY `EMP_ID`, `LAST_NAME`;\n";
```
SQL
```sql
String query = """
SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
WHERE `CITY` = 'INDIANAPOLIS'
ORDER BY `EMP_ID`, `LAST_NAME`;
""";
```
`String` 3
- `formatted(Object... args)` `String` `format()`
- `stripIndent()`
- `translateEscapes()` _\\\t_ _\t_
```java
@Deprecated(forRemoval=true, since="13")
public String stripIndent() {
}
@Deprecated(forRemoval=true, since="13")
public String formatted(Object... args) {
}
@Deprecated(forRemoval=true, since="13")
public String translateEscapes() {
}
```
#### Switch( yield Switch )
`Switch` `Switch` `yield`
`yield` `return` `return` `yield` `Switch` `yield` `default`
```java
private static String descLanguage(String name) {
return switch (name) {
case "Java": yield "object-oriented, platform independent and secured";
case "Ruby": yield "a programmer's best friend";
default: yield name +" is a good language";
};
}
```
##
- JDK Project Overview
- Oracle Java12 ReleaseNote https://www.oracle.com/java/technologies/javase/12all-relnotes.htm
- What is new in Java 12https://mkyong.com/java/what-is-new-in-java-12/
- Oracle Java13 ReleaseNote
- New Java13 Features
- Java13