เจเจพเจฃ เจชเจเจพเจฃ
XNUMX เจฎเจพเจฐเจ เจจเฉเฉฐ, RedHat (เจเฉเจคเฉ เจนเฉ IBM)
เจเฉเจเจพ เจเจพเจตเจพ เจจเฉเฉฐ เจเฉเจฌเจฐเจจเฉเจเจธ เจคเฉเจจเจพเจคเฉ เจ เจคเฉ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจเจชเจฒเฉเจเฉเจธเจผเจจ เจกเจฟเจตเฉเจฒเจชเจฎเฉเจเจ เจฒเจ เจฎเฉเจนเจฐเฉ เจชเจฒเฉเจเจซเจพเจฐเจฎ เจฌเจฃเจพเจเจฃเจพ เจนเฉ, เจกเจฟเจตเฉเจฒเจชเจฐเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจคเฉเจเจฟเจฐเจฟเจเจธเจผเฉเจฒ เจ เจคเฉ เจฒเจพเจเจผเจฎเฉ เจธเจผเฉเจฒเฉเจเจ เจตเจฟเฉฑเจ เจตเจฟเจเจพเจธ เจฒเจ เจเฉฑเจ เจเจเฉเจเฉเจฐเจฟเจค เจชเจนเฉเฉฐเจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจเจพ เจนเฉเฅค
เจเฉ เจคเฉเจธเฉเจ เจฆเฉเจเจฆเฉ เจนเฉ
เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเจพเจเจ เจฆเฉ เจฌเจนเฉเจค เจคเฉเจเจผ เจเจคเฉ เจ เจคเฉ เจเฉฑเจ เจฎเฉเจฎเฉเจฐเฉ เจเจชเจค เจฆเจพ เจตเจพเจ เจฆเจพ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค เจเจน เจกเจฟเจตเฉเจฒเจชเจฐ เจฆเฉ เจตเฉเฉฑเจฌเจธเจพเจเจ เจคเฉเจ เจกเฉเจเจพ เจนเฉ:
เจธเจผเฉเจฐเฉเจเจค เจคเฉเจ เจฒเฉ เจเฉ เจชเจนเจฟเจฒเฉ เจเจตเจพเจฌ เจคเฉฑเจ เจฆเจพ เจธเจฎเจพเจ:
เจเฉเจจเจซเจฟเจเจฐเฉเจธเจผเจจ
เจเจฐเจพเจฎ
REST+JPA
เจเฉเจเจฐเจเจธ+เจเฉเจฐเฉเจฒเจตเฉเจเจฎ
0.014
0.055
เจเฉเจเจฐเจเจธ+เจเจชเจจเจเฉเจกเฉเจเฉ
0.75
2.5
เจฐเจตเจพเจเจคเฉ เจเจฒเจพเจเจก เจจเฉเจเจฟเจต เจธเจเฉเจ*
4.3
9.5
เจฎเฉเจฎเฉเจฐเฉ เจฆเฉ เจเจชเจค (Mb):
เจเฉเจจเจซเจฟเจเจฐเฉเจธเจผเจจ
เจเจฐเจพเจฎ
REST+JPA
เจเฉเจเจฐเจเจธ+เจเฉเจฐเฉเจฒเจตเฉเจเจฎ
13
35
เจเฉเจเจฐเจเจธ+เจเจชเจจเจเฉเจกเฉเจเฉ
74
130
เจฐเจตเจพเจเจคเฉ เจเจฒเจพเจเจก เจจเฉเจเจฟเจต เจธเจเฉเจ*
140
218
เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ, เจนเฉ เจจเจพ?
*เจฎเฉเจจเฉเฉฐ เจเจธ เจเฉเจเจจเจพเจฒเฉเจเฉ เจธเจเฉเจ เจฌเจพเจฐเฉ เจเฉเจ เจเจพเจฃเจเจพเจฐเฉ เจจเจนเฉเจ เจฎเจฟเจฒเฉ, เจ เจธเฉเจ เจเจน เจฎเฉฐเจจ เจธเจเจฆเฉ เจนเจพเจ เจเจฟ เจเจน เจเฉฑเจ เจตเจพเจงเฉ เจฌเจพเจกเฉ เจเจฟเฉฑเจ เจตเจพเจฒเจพ เจธเจชเจฐเจฟเฉฐเจ เจฌเฉเจ เจนเฉ.
เจธเจคเจฟ เจธเฉเจฐเฉ เจ เจเจพเจฒ เจฆเฉเจจเจฟเจ!
เจเฉเจเจฐเจเจธ เจตเจฟเฉฑเจ เจฒเจฟเจเฉ เจธเจญ เจคเฉเจ เจธเจฐเจฒ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเฉเจตเฉเจเฉ:
@Path("/hello")
public class GreetingResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return "hello";
}
}
เจเจน เจธเจผเจพเจฌเจฆเจฟเจ เจเฉฑเจ เจเจฒเจพเจธ เจนเฉ เจ เจคเฉ เจเจน เจเจพเจซเจผเฉ เจนเฉ! เจคเฉเจธเฉเจ เจตเจฟเจเจพเจธ เจฎเฉเจก เจตเจฟเฉฑเจ เจฎเจพเจตเฉเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเจฒเจพ เจธเจเจฆเฉ เจนเฉ:
mvn compile quarkus:dev
โฆ
$ curl http://localhost:8080/hello
hello
เจเฉฑเจ เจจเจฟเจฏเจฎเจค เจเจชเจฒเฉเจเฉเจธเจผเจจ เจคเฉเจ เจซเจฐเจ เจเจน เจนเฉ เจเจฟ เจเฉฑเจฅเฉ เจเฉเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเจฒเจพเจธ เจจเจนเฉเจ เจนเฉ! เจเฉเจเจฐเจเจธ เจนเฉเจ เจฐเฉเจฒเฉเจก เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจฆเจพ เจนเฉ, เจเจธเจฒเจ เจคเฉเจธเฉเจ เจเจชเจฃเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจฐเฉเจธเจเจพเจฐเจ เจเฉเจคเฉ เจฌเจฟเจจเจพเจ เจฌเจฆเจฒ เจธเจเจฆเฉ เจนเฉ, เจเจฟเจธ เจจเจพเจฒ เจตเจฟเจเจพเจธ เจนเฉเจฐ เจตเฉ เจคเฉเจเจผ เจนเฉ เจเจพเจเจฆเจพ เจนเฉเฅค
เจ
เฉฑเจเฉ เจเฉ เจนเฉ? เจคเฉเจธเฉเจ เจเฉฑเจ เจเจจเฉเจเฉเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉฑเจ เจเฉฐเจเจฐเฉเจฒเจฐ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเฉเจตเจพ เจธเจผเจพเจฎเจฒ เจเจฐ เจธเจเจฆเฉ เจนเฉ
@ApplicationScoped
public class GreetingService {
public String greeting(String name) {
return "Hello " + name + "!";
}
}
เจเฉฐเจเจฐเฉเจฒเจฐ:
@Path("/hello")
public class GreetingResource {
@Inject
GreetingService service;
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/{name}")
public String greeting(@PathParam("name") String name) {
return service.greeting(name);
}
}
$ curl http://localhost:8080/hello/developer
Hello developer!
เจจเฉเจ เจเจฐเฉ เจเจฟ เจเฉเจเจฐเจเจธ เจเจพเจฃเฉ-เจชเจเจพเจฃเฉ เจซเจฐเฉเจฎเจตเจฐเจ - CDI เจ เจคเฉ JAX-RS เจคเฉเจ เจฎเจฟเจเจฐเฉ เจเจจเฉเจเฉเจธเจผเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเฉเฅค เจเฉ เจคเฉเจธเฉเจ เจชเจนเจฟเจฒเจพเจ CDI เจ เจคเฉ JAX-RS เจจเจพเจฒ เจเฉฐเจฎ เจเฉเจคเจพ เจนเฉ, เจคเจพเจ เจเฉเจ เจจเจตเจพเจ เจธเจฟเฉฑเจเจฃ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ, เจฌเฉเจธเจผเฉฑเจเฅค
เจกเจพเจเจพเจฌเฉเจธ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจเจพ
เจเจเจพเจเจเจ เจฒเจ เจนเจพเจเจฌเจฐเจจเฉเจ เจ
เจคเฉ เจฎเจฟเจเจฐเฉ JPA เจเจจเฉเจเฉเจธเจผเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉเฅค เจเจฟเจตเฉเจ เจเจฟ REST เจเฉฐเจเจฐเฉเจฒเจฐเจพเจ เจจเจพเจฒ, เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจเฉ-เจเฉฑเจ เจเฉเจก เจฒเจฟเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจ
เจธเฉเจเจฌเจฒเฉ เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจจเจฟเจฐเจญเจฐเจคเจพ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจฃ เจฒเจ เจเจน เจเจพเจซเจผเฉ เจนเฉ, เจเจจเฉเจเฉเจธเจผเจจ เจธเจผเจพเจฎเจฒ เจเจฐเฉ @Entity
เจ
เจคเฉ application.properties เจตเจฟเฉฑเจ เจกเฉเจเจพเจธเฉเจฐเจธ เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐเฉเฅค
เจธเจพเจฐเฉเฅค เจเฉเจ sessionFactory, persistence.xml เจเจพเจ เจนเฉเจฐ เจธเฉเจตเจพ เจซเจพเจเจฒเจพเจ เจจเจนเฉเจ เจนเจจเฅค เจ เจธเฉเจ เจธเจฟเจฐเจซเจผ เจเจนเฉ เจเฉเจก เจฒเจฟเจเจฆเฉ เจนเจพเจ เจเจฟเจธเจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจนเจพเจฒเจพเจเจเจฟ, เจเฉเจเจฐ เจฒเฉเฉ เจนเฉเจตเฉ, เจคเจพเจ เจคเฉเจธเฉเจ persistence.xml เจซเจพเจเจฒ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเฉ เจ เจคเฉ ORM เจฒเฉเจ เจฐ เจจเฉเฉฐ เจนเฉเจฐ เจฌเจพเจฐเฉเจ เจฐเฉเจช เจตเจฟเฉฑเจ เจเฉเจเจซเจฟเจเจฐ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
เจเฉเจเจฐเจเจธ เจเจเจพเจเจเจ เจฆเฉ เจเฉเจธเจผเจฟเฉฐเจ, เจเจ-เจคเฉเจ-เจเจ เจธเจฌเฉฐเจงเจพเจ เจฒเจ เจธเฉฐเจเฉเจฐเจนเจฟ, เจ เจคเฉ เจธเจตเจพเจฒเจพเจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจฆเจพ เจนเฉเฅค เจชเจนเจฟเจฒเฉ เจจเจเจผเจฐ 'เจคเฉ เจเจน เจฌเจนเฉเจค เจตเจงเฉเจ เจฒเฉฑเจ เจฐเจฟเจนเจพ เจนเฉ, เจชเจฐ เจเจน เจนเฉ เจธเจฅเจพเจจเจ เจเฉเจธเจผเจฟเฉฐเจ, เจเฉฑเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจจเฉเจก เจฒเจเฅค เจเจน. เจตเฉฑเจ-เจตเฉฑเจ เจจเฉเจกเจพเจ เจฆเฉ เจเฉเจ เจเฉฑเจ เจฆเฉเจเฉ เจจเจพเจฒ เจธเจฎเจเจพเจฒเฉ เจจเจนเฉเจ เจนเฉเฉฐเจฆเฉ เจนเจจเฅค เจฎเฉเจจเฉเฉฐ เจเจฎเฉเจฆ เจนเฉ เจเจฟ เจเจน เจ เจธเจฅเจพเจ เจนเฉเฅค
เจ เจธเจฟเฉฐเจเฉเจฐเฉเจจเจธ เจเฉเจก เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ
เจเจฟเจตเฉเจ เจเจฟ เจเฉฑเจชเจฐ เจฆเฉฑเจธเจฟเจ เจเจฟเจ เจนเฉ, เจเฉเจเจฐเจเจธ เจฐเจฟเจเจเจเจฟเจต เจชเฉเจฐเฉเจเจฐเจพเจฎเจฟเฉฐเจ เจธเจผเฉเจฒเฉ เจฆเจพ เจตเฉ เจธเจฎเจฐเจฅเจจ เจเจฐเจฆเจพ เจนเฉเฅค เจชเจฟเจเจฒเฉ เจ เจฐเจเจผเฉ เจฆเจพ เจเฉเจก เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจฒเจฟเจเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
@Path("/hello")
public class GreetingResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/{name}")
public CompletionStage<String> greeting(@PathParam("name") String name) {
return CompletableFuture.supplyAsync(() -> {
return "Hello " + name + "!";
});
}
}
เจ เจธเจฟเฉฐเจเฉเจฐเฉเจจเจธ เจเฉเจก เจจเฉเฉฐ เจตเฉ เจธเฉเจตเจพ เจตเจฟเฉฑเจ เจคเจฌเจฆเฉเจฒ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจจเจคเฉเจเจพ เจเจนเฉ เจนเฉเจตเฉเจเจพเฅค
เจเฉเจธเจเจฟเฉฐเจ
เจเฉเจเจฐเจเจธ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฒเจ เจเฉเจธเจ JUnit4 เจเจพเจ JUnit5 เจตเจฟเฉฑเจ เจฒเจฟเจเฉ เจเจพ เจธเจเจฆเฉ เจนเจจเฅค เจนเฉเจ เจพเจ เจเฉฑเจ เจ เฉฐเจคเจฎ เจฌเจฟเฉฐเจฆเฉ เจฒเจ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจเฉเจธเจ เจนเฉ, เจเจน RestAssured เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฒเจฟเจเจฟเจ เจเจฟเจ เจนเฉ, เจชเจฐ เจเฉฑเจ เจนเฉเจฐ เจซเจฐเฉเจฎเจตเจฐเจ เจตเจฐเจคเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ:
@QuarkusTest
public class GreetingResourceTest {
@Test
public void testGreetingEndpoint() {
String uuid = UUID.randomUUID().toString();
given()
.pathParam("name", uuid)
.when().get("/hello/{name}")
.then()
.statusCode(200)
.body(is("Hello " + uuid + "!"));
}
}
@QuarkusTest เจเจจเฉเจเฉเจธเจผเจจ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเจธเจ เจเจฒเจพเจเจฃ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเจฒเจพเจเจฃ เจฒเจ เจจเจฟเจฐเจฆเฉเจธเจผ เจฆเจฟเฉฐเจฆเฉ เจนเฉเฅค เจฌเจพเจเฉ เจธเจพเจฐเฉ เจกเจฟเจตเฉเจฒเจชเจฐเจพเจ เจฒเจ เจเจพเจฃเฉ เจเฉเจก เจนเฉเฅค
เจชเจฒเฉเจเจซเจพเจฐเจฎ-เจตเจฟเจธเจผเฉเจธเจผ เจเจชเจฒเฉเจเฉเจธเจผเจจ
เจเจฟเจเจเจเจฟ เจเฉเจเจฐเจเจธ GraalVM เจจเจพเจฒ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจจเจพเจฒ เจเจเฉเจเฉเจฐเจฟเจค เจนเฉ, เจฌเฉเจธเจผเจ เจชเจฒเฉเจเจซเจพเจฐเจฎ-เจตเจฟเจธเจผเฉเจธเจผ เจเฉเจก เจฌเจฃเจพเจเจฃเจพ เจธเฉฐเจญเจต เจนเฉเฅค เจ
เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ GraalVM เจจเฉเฉฐ เจเฉฐเจธเจเจพเจฒ เจเจฐเจจ เจ
เจคเฉ GRAALVM_HOME เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉเจฐเฉเจเจฌเจฒ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจ
เฉฑเจเฉ
mvn package -Pnative
เจฆเจฟเจฒเจเจธเจช เจเฉฑเจฒ เจเจน เจนเฉ เจเจฟ, เจคเจฟเจเจฐ เจเฉเจคเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจเจพเจเจ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉ. เจ เจคเฉ เจเจน เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจนเฉ เจเจฟเจเจเจเจฟ เจฎเฉเจฒ เจเฉเจก เจฆเจพ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ JVM 'เจคเฉ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจคเฉเจ เจตเฉฑเจเจฐเจพ เจนเฉ เจธเจเจฆเจพ เจนเฉเฅค @SubstrateTest เจเจจเฉเจเฉเจธเจผเจจ เจชเจฒเฉเจเจซเจพเจฐเจฎ-เจตเจฟเจธเจผเฉเจธเจผ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเฉเจก เจจเฉเฉฐ เจเจฒเจพเจเจเจฆเฉ เจนเฉเฅค เจฎเฉเจเฉเจฆเจพ เจเฉเจธเจ เจเฉเจก เจฆเฉ เจฎเฉเฉ เจตเจฐเจคเฉเจ เจตเจฟเจฐเจพเจธเจค เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉ; เจจเจคเฉเจเฉ เจตเจเฉเจ, เจชเจฒเฉเจเจซเจพเจฐเจฎ-เจจเจฟเจฐเจญเจฐ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจเจพเจเจ เจเจฐเจจ เจฒเจ เจเฉเจก เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเฉเจตเฉเจเจพ:
@SubstrateTest
public class GreetingResourceIT extends GreetingResourceTest {
}
เจคเจฟเจเจฐ เจเจฟเฉฑเจคเจฐ เจจเฉเฉฐ เจกเฉเจเจฐ เจตเจฟเฉฑเจ เจชเฉเจ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ เจ
เจคเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจพเจ เจเจชเจจเจธเจผเจฟเจซเจ เจตเจฟเฉฑเจ เจเจฒเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจเจฟเจธ เจตเจฟเฉฑเจ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจ เจฆเฉฑเจธเจฟเจ เจเจฟเจ เจนเฉ
เจธเฉฐเจฆ
เจเฉเจเจฐเจเจธ เจซเจฐเฉเจฎเจตเจฐเจ เจจเฉเฉฐ Maven เจ
เจคเฉ Gradle เจจเจพเจฒ เจตเจฐเจคเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจเฉเจฐเฉเจกเจฒ เจฆเฉ เจเจฒเจ, เจฎเจพเจตเฉเจจ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจธเจฎเจฐเจฅเจฟเจค เจนเฉเฅค เจฌเจฆเจเจฟเจธเจฎเจคเฉ เจจเจพเจฒ, เจเจธ เจธเจฎเฉเจ เจเฉเจฐเฉเจกเจฒ เจเฉฑเจ เจเจพเจฒเฉ เจชเฉเจฐเฉเจเฉเจเจ เจฌเจฃเจพเจเจฃ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจจเจนเฉเจ เจเจฐเจฆเจพ เจนเฉ; เจตเฉเจฌเจธเจพเจเจ 'เจคเฉ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจเจพเจฃเจเจพเจฐเฉ เจนเฉ
เจเจเจธเจเฉเจเจธเจผเจจเจพเจ
เจเฉเจเจฐเจเจธ เจเฉฑเจ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจขเจพเจเจเจพ เจนเฉเฅค เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจ เจเฉฑเจ เจเจฐเจกเจฐ เจนเฉ
เจธเจฟเฉฑเจเจพ
เจฎเฉเจฐเฉ เจฐเจพเจ เจตเจฟเฉฑเจ, เจเฉเจเจฐเจเจธ เจเจธ เจธเจฎเฉเจ เจฆเฉ เจฐเฉเจเจพเจจเจพเจ เจฆเฉ เจจเจพเจฒ เจเจพเจซเจผเฉ เจฎเฉเจฒ เจเจพเจเจฆเจพ เจนเฉเฅค เจฌเฉเจเจเจเจก เจเฉเจก เจตเจฟเจเจพเจธ เจเจธเจพเจจ เจ เจคเฉ เจเจธเจพเจจ เจนเฉเฉฐเจฆเจพ เจเจพ เจฐเจฟเจนเจพ เจนเฉ, เจ เจคเฉ เจเจน เจซเจฐเฉเจฎเจตเจฐเจ เจกเฉเจเจฐ เจ เจคเฉ เจเฉเจฌเจฐเจจเฉเจเจธ เจฒเจ เจฎเฉเจฒ เจธเจนเจพเจเจคเจพ เจเฉเฉ เจเฉ เจธเฉเจตเจพ เจตเจฟเจเจพเจธ เจจเฉเฉฐ เจนเฉเจฐ เจธเจฐเจฒ เจ เจคเฉ เจคเฉเจเจผ เจเจฐเจฆเจพ เจนเฉเฅค เจเฉฑเจ เจตเฉฑเจกเจพ เจชเจฒเฉฑเจธ GraalVM เจ เจคเฉ เจชเจฒเฉเจเจซเจพเจฐเจฎ-เจจเจฟเจฐเจญเจฐ เจเจฟเฉฑเจคเจฐเจพเจ เจฆเฉ เจชเฉเฉเฉเจนเฉ เจฒเจ เจฌเจฟเจฒเจ-เจเจจ เจธเจฎเจฐเจฅเจจ เจนเฉ, เจเฉ เจธเฉเจตเจพเจตเจพเจ เจจเฉเฉฐ เจ เจธเจฒ เจตเจฟเฉฑเจ เจคเฉเจเจผเฉ เจจเจพเจฒ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจ เจคเฉ เจฌเจนเฉเจค เจเฉฑเจ เจฎเฉเจฎเฉเจฐเฉ เจธเจชเฉเจธ เจฒเฉเจฃ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค เจ เจคเฉ เจเจน เจฎเจพเจเจเฉเจฐเฉเจธเฉเจตเจพเจตเจพเจ เจ เจคเฉ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจเจฐเจเฉเจเฉเจเจเจฐ เจฒเจ เจธเจพเจกเฉ เจตเฉฑเจกเฉ เจเจจเฉเฉฐเจจ เจฆเฉ เจธเจฎเฉเจ เจตเจฟเฉฑเจ เจฌเจนเฉเจค เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจนเฉเฅค
เจ
เจงเจฟเจเจพเจฐเจค เจธเจพเจเจ -
เจธเจฐเฉเจค: www.habr.com