明日から使える java se 7
DESCRIPTION
TRANSCRIPT
![Page 1: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/1.jpg)
明日から使える
Java in the Box
櫻庭 祐一
Java 7SE
![Page 2: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/2.jpg)
祝7/28JavaSE7リリース
![Page 3: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/3.jpg)
リリース
ほんとは
2008 年
予定だったけど
![Page 4: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/4.jpg)
なぜ遅れた
機能 Project LambdaProject Jigsaw
買収
移行 JDK OpenJDK
JavaFX?
![Page 5: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/5.jpg)
Java SE 7 Themes
Compatibility
Productivity
Performance
Universality
Integration
Project Coin
G1GC JSR166y
InvokeDynamic
NIO2
![Page 6: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/6.jpg)
+1Try-with-resources
Multi Catch/Precise Rethrow
NIO2
Upgrade ClassLoader
![Page 7: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/7.jpg)
+1try (InputStream in = new FileInputStream(src); OutputStream out = new FileOutputStream(dest)) {
byte[] buf = new byte[1024]; int n; while((n = in.read(buf)) >= 0) { out.write(buf, 0, n); }} catch (IOException ex) { // 例外処理}
try-with-resources
![Page 8: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/8.jpg)
+1try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(stream);
// パース } catch (final IOException | IllegalArgumentException | ParserConfigurationException | SAXException ex) { log(ex); throw ex;}
Multi Catch/Precise Rethrow
![Page 9: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/9.jpg)
+1Path start = ...;
String regex = ...;
Files.walkFileTree(start, new SimpleFileVisitor<Path>() {
public FileVisitResult visitFile(Path path,
BasicFileAttributes attrs) throws IOException {
if (Pattern.matches(regex,
path.getFileName().toString()) {
System.out.println("File: " + path);
}
return FileVisitResult.CONTINUE;
}});
NIO2 FileVisitor を使ったファイルの検索
![Page 10: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/10.jpg)
+0.5Diamond Operator
数値リテラル
<>
![Page 11: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/11.jpg)
+0.5javafx.scene.control.Button button = new Button("OK");
EventHandler<ActionEvent> handler = new EventHandler<>() { public void handle(ActionEvent t) { // イベント処理 }};button.setOnAction(handler);
button.setOnAction(new EventHandler<>() { public void handle(ActionEvent t) { // イベント処理 }});
![Page 12: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/12.jpg)
道半ばJSR166y Fork/Join FrameworkJSR292 InvokeDynamic
JSR335 Project Lambda
実戦投入一歩手前Garbage First Garbage Collection (G1GC)
![Page 13: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/13.jpg)
微妙 ...String Switch
JDBC 4.1MXBean 拡張
Nimbus L&F
プラットフォーム依存SCTP/SDP
Unicode 6.0
![Page 14: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/14.jpg)
なぜなくなった !!
XML リテラルJSR255 JMX 2.0
JSR296 Beans Binding
JSR303 Bean Validation
JSR274 BeanShell Script Language
JSR260 Javadoc
![Page 15: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/15.jpg)
なぜなくなった !!
XML リテラルJSR255 JMX 2.0
JSR296 Beans Binding
JSR303 Bean Validation
JSR274 BeanShell Script Language
JSR260 Javadocコードネームもなくなった
![Page 16: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/16.jpg)
Conclusion全体的に小粒のアップデート
Java SE 8 につながる技術に注目
ファイルを扱うなら NIO2!!
いきなり Java SE 8 はつらいよ
参考ITpro Java SE 7 徹底理解
![Page 17: 明日から使える Java SE 7](https://reader034.vdocuments.site/reader034/viewer/2022050919/5482795db47959140d8b47c8/html5/thumbnails/17.jpg)
明日から使える
Java in the Box櫻庭 祐一
Java 7SE