[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/backdiy/JavaGuide/main/docs/java/new-features/java12-13.md [Back]  [Original]

---
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  

Web Proxy Viewer  |  New URL  |  Original Page