????Java 9 ???????????????????Java 9????μ?????????????п????????????μ?API????????
??????????????????????????е???????????

??????黯??–Jigsaw ???
??????黯???????????????????У???黯???????????д??????????????????????????????????????飬????????????????????????????
????Java 9???????仯???????????黯??????黯?????????JDK???????С???豸????á???????黯??????ó?????????Щ??ó?????????????JDK??飬??????????JDK????????黯???????????????????????????С????????????????е?????public?????????κε???????????????????????????????顣????Java 9??????仯??Java?????API??????com.sun.*????????????????????
???????????????е???齫???????ν??module-info.java????н?????????????????λ??Java???????????
????module me.aboullaite.java9.modules.car {
????requires me.aboullaite.java9.modules
????.engines;//?????????
????exports me.aboullaite.java9.modules.
????car.handling;//??????е?????
????}
????????????car???????????????+???engine?????棩?????????handling???????????
????????????????????????OpenJDK?????Jigsaw????黯???????????
????JShell–Java 9 REPL
????????????“REPL????”?REPL?????????????????????й????
??????Java?У????????????????????????????????????main???????????????????????е?Test?????????????Java???????????????????Щ????????????????н?????????????????????????????????
????JShell??????????????Java?????????????JShell????д???????????????????????????????????????JShell??????????м??????????????浽????С?????JShell???????tab???????????????????
???????????????
??????Java 9????Java????????Щ??÷????????磺Collections.unmodifiableCollection(Collection<? extends T> c)????????????????????????????磬?????????Java 8???????????????????????????Collection????????????????????????????????????????????????????
????Map<String?? String> immutableMap =
????Collections.unmodifiableMap(
????new HashMap<String?? String>() {{
????put("key1"?? "Value1");
????put("key2"?? "Value2");
????put("key3"?? "Value3");
????}});
?????????Java 9???????Щ????????????????????????????????????????Java 9?д???????????Map??????????????
????Map<String?? String> immutableMap =
????Map.of("key1"?? "Value1"?? "key2"?? "Value2"
??????"key3"?? "Value3");
????????????????????????
// empty immutable collections
????????????
List<String> emptyImmutableList = List.of();
Set<String> emptyImmutableSet = Set.of();
Map emptyImmutableMap = Map.of();
// immutable collections ???????????
List<String> immutableList = List.of("one"??
"two");
Set<String> immutableSet = Set.of("value1"??
"value2");
Map<String?? String> immutableMap = Map.of
("key1"?? "Value1"?? "key2"?? "Value2"?? "key3"?? "Value3");
????????е???з???
????Java 8?????????????????????????????Java 8??μ??????????з??????????Java 9??????????????????????????????е???з??????????????????????????????????????????з?????????????????????????????????????о??????з????????????е???????á?
interface InterfaceWithPrivateMethods {
private static String staticPrivate() {
return "static private";
}
private String instancePrivate() {
return "instance private";
}
default void check() {
String result = staticPrivate();
InterfaceWithPrivateMethods pvt = new
InterfaceWithPrivateMethods() {
// anonymous class ??????
};
result = pvt.instancePrivate();
}
}
??????????
????JDK9?е?Flow API??????????淶?????????淶?????????????JEP 266?????????С??????????????????????????????????????δ????????????????Щ??????????????????
????java.util.concurrent.Flow????????4??????
????1.Flow.Processor??????????
????2. Flow.Publisher?????????
????3.Flow.Subscriber?????????
????4. Flow.Subscription?????????????
??????Щ?????????????????-???????Java 9??????????SubmissionPublisher????????????????????????????Щ????????????????????????????????????????????????????????????????????????