Log of study session participation.
Java 9
Java 9 Features | |
---|---|
Module System | jigsaw,Suitable for Cloud deployment, Docker, module-info.Defined in java |
The Modular JDK | |
jShell | |
Encapsulate Internal APIs | |
jlink | tool, Linker can produce custom runtime image(Regular, JVM specific memory images, fast exec) |
Ahead of Time (AOT) Compilation | statically compile java classes,Static and dynamic compilation integration |
G1 Garbage Collector as the Default | Divide the heap space into fixed sizes, E, S,Mark O |
Modularization method
module com.foo.bar{
require com.foo.bar
exports com.foo.bar
}
Modular Development
Modularization is possible in each layer |
---|
Modular Application |
Modular Link |
Modular JDK |
Accessibility | Java 9 Accessibility |
---|---|
public | public to everyone |
public but only ... | |
public only within a module | |
protected | protected |
private | private |
src/module-info.java
module hello.world{
exports com.example.hello; // Externally published packages requires java.base; }
hello.world |
---|
com.example.hello public |
(No concealed packages)hiding |
Migrating from the top down
Third-party library dependencies -> Extract dependencies with the jdeps command
Automatic Modules Auto-modular (when you want to use a third-party lib for modularization) JAR file name is module name Publish everything
module hello.world{
exports com.example.hello to myapp;
requires java.base; // added by default requires jackson-core; opens com.myapp.domain to jackson.databind // Behavior only when using reflection
uses javax.print.PrintServiceLookup
}
module printlib{
provides javax.print.PrintServiceLookup with groovy.backend.CodeEvaluatetionEngineFactory;
}
JDK layout assumptions Directory change, rt.jar
Class loader assumptions Class load order
System property changes
Reference material JEP 261
Avoiding module circular dependencies
httpClient.java (depends on logging.api) | > loging.apis interface LogSPI < | logging.impl (depends on logging.api) class HTTPLogger implements LogSPI
Java Future | The future of Java |
---|---|
uniform model | object, Array, value, types, methods |
post-threaded | Confined/immutable data |
Data Layout | Codes like a class, works like an int! |
Data Layout
class Point {
final int x;
final int y;
}
Point[] pts = |x|y|x|y|x|y|I want to make it an image of
now,|x|y| |x|y| |x|y|Image with a gap like Less efficient with GC
Java EE 8
Java EE 8 | |
---|---|
JAX-RX2.1 | |
Servlet 4.0 | HTTP/2 performance, server push |
JSON-B 1.0 | JSON <-> Java binding |
JSON-P 1.1 | |
CDI 2.0 | |
Bean Validation | |
JSF 2.3 | |
Security 1.0 |
Deep Learning
deepleaning4j
Recommended Posts