---
title: Java 18
description: JDK 18 API
category: Java
tag:
- Java
head:
- - meta
- name: keywords
content: Java 18,JDK18,,API ,JEP
---
Java 18 2022 3 22
JDK 18 8
- [JEP 400: UTF-8 by DefaultUTF-8 ](https://openjdk.java.net/jeps/400)
- [JEP 408: Simple Web Server Web ](https://openjdk.java.net/jeps/408)
- [JEP 413: Code Snippets in Java API DocumentationAPI ](https://openjdk.java.net/jeps/413)
- [JEP 416: Reimplement Core Reflection with Method Handles](https://openjdk.java.net/jeps/416)
- [JEP 417: Vector API (Third Incubator) API](https://openjdk.java.net/jeps/417)
- [JEP 418: Internet-Address Resolution SPI SPI](https://openjdk.java.net/jeps/418)
- [JEP 419: Foreign Function & Memory API (Second Incubator) API](https://openjdk.java.net/jeps/419)
JDK 8 JDK 25

- [OpenJDK Java 18 ](https://openjdk.java.net/projects/jdk/18/)
- [IntelliJ IDEA | Java 18 ](https://mp.weixin.qq.com/s/PocFKR9z9u7-YCZHsrA5kQ)
## JEP 400: UTF-8 by DefaultUTF-8
JDK UTF-8
Java 17 Java Mac Java Windows
## JEP 408: Simple Web Server Web
Java 18 `jwebserver` Web
```bash
$ jwebserver
Binding to loopback by default. For all interfaces use "-b 0.0.0.0" or "-b ::".
Serving /cwd and subdirectories on 127.0.0.1 port 8000
URL: http://127.0.0.1:8000/
```
CGI Servlet
## JEP 413: Code Snippets in Java API DocumentationAPI
Java 18 Javadoc `{@code ...}`
```java
{@code
lines of source code
}
```
`{@code ...}`
Java 18 `@snippet`
```java
/**
* The following code shows how to use {@code Optional.isPresent}:
* {@snippet :
* if (v.isPresent()) {
* System.out.println("v: " + v.get());
* }
* }
*/
```
`@snippet`
## JEP 416: Reimplement Core Reflection with Method Handles
Java 18 `java.lang.reflect.Method``Constructor` API
OpenJDK

## JEP 417: Vector API API
Vector API [JEP 338](https://openjdk.java.net/jeps/338) [ API](http://openjdk.java.net/jeps/11) Java 16 [JEP 414](https://openjdk.java.net/jeps/414) Java 17 [JEP 417](https://openjdk.java.net/jeps/417) Java 18 [JEP 426](https://openjdk.java.net/jeps/426) Java 19
API CPU
API
```java
void scalarComputation(float[] a, float[] b, float[] c) {
for (int i = 0; i < a.length; i++) {
c[i] = (a[i] * a[i] + b[i] * b[i]) * -1.0f;
}
}
```
Vector API
```java
static final VectorSpecies SPECIES = FloatVector.SPECIES_PREFERRED;
void vectorComputation(float[] a, float[] b, float[] c) {
int i = 0;
int upperBound = SPECIES.loopBound(a.length);
for (; i < upperBound; i += SPECIES.length()) {
// FloatVector va, vb, vc;
var va = FloatVector.fromArray(SPECIES, a, i);
var vb = FloatVector.fromArray(SPECIES, b, i);
var vc = va.mul(va)
.add(vb.mul(vb))
.neg();
vc.intoArray(c, i);
}
for (; i < a.length; i++) {
c[i] = (a[i] * a[i] + b[i] * b[i]) * -1.0f;
}
}
```
JDK 18 API
## JEP 418: Internet-Address Resolution SPI SPI
Java 18 SPIservice-provider interface `java.net.InetAddress`
## JEP 419: Foreign Function & Memory API API
Java API Java JVM JVM API Java JNI
API Java 17 [JEP 412](https://openjdk.java.net/jeps/412) [JEP 419](https://openjdk.org/jeps/419) Java 18 [JEP 424](https://openjdk.org/jeps/424) Java 19
[Java 19 ](./java19.md) API