38
Java in the Box 櫻庭 祐一 Oracle OpenWorld JavaOne+Develop Report Java SE, JavaFX 編

JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Embed Size (px)

DESCRIPTION

Japan Java User Group Cross Community Conference 2010 Fall BOF A-1 JavaOne報告会 Java SE/JavaFX編

Citation preview

Page 1: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Java in the Box櫻庭 祐一

Oracle OpenWorldJavaOne+Develop Report

Java SE, JavaFX 編

Page 2: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

櫻庭 祐一Java in the Box

http://www.javainthebox.[net, com]

98’99’

00’01’

02’03’

04’05’

06’07’

08’09’

Page 3: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall
Page 4: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Mark Reinhold

Page 5: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

RobertoChinnici

GregBollella

Page 6: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

18ヶ月2004.9J2SE5.0

2006.12JavaSE6

2008.Q2?JavaSE7

Page 7: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

18ヶ月2004.9J2SE5.0

2006.12JavaSE6

2010.Q4?JavaSE7

Page 8: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

18ヶ月2004.9J2SE5.0

2006.12JavaSE6

2010.Q4?JavaSE7

Page 9: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

789

Productivity

Perfomance

Universality

Modularity

Integration

Serviceability

Productivity

Perfomance

Universality

Modularity

Integration

Serviceability

Page 10: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Project Coin

Page 11: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Project Coin

Joseph Dercy

0b<>String

x...

Page 12: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Project Coin

Joseph Dercy

List<String> list

=new ArrayList<>();

Page 13: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Project Coin

Joseph Dercy

try(InputStream in = new FileInputStream(src);

OutputStream out = new FileOutputStream(dst)) {

byte[] buf = new byte[8192];

int n = 0;

while((n = in.read(buf)) >= 0)

out.write(buf, 0, n);

}

Page 14: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Project Lambda

Page 15: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Project Lambda

Brian GoetzBrian Goetz

Java1.0Thread J2SE5.0

JSR166

Executor

JSR166yFork/Join

extJSR166yParallelArray

Project Lambda

Page 16: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Alex Buckley

Collection<Student> students = ...

double max =

students.filter(new Predicate<Student>() {

public boolean op(Student s) {

return s.gradYear == 2010;

}

}).map(new Extractor<Student, Double>() {

public Double extract(Student s) {

return s.score;

}

}).max();

Page 17: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Alex Buckley

Collection<Student> students = ...

double max =

students.filter(#{ s -> s.gradYear == 2010 })

.map( #{ s -> s.score })

.max();

Page 18: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Alex Buckley

Collection<Student> students = ...

double max =

students.filter(#{ s -> s.gradYear == 2010 })

.map( #{ s -> s.score })

.max();

interface Collection<T> {

Collection<T> filter(Predicate<T> p)

default Collections.<T>filter;

...

}

Page 19: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Alex Buckley

Project Lambda

SAMの記法

メソッド参照

デフォルト実装

Page 20: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Language Futures

Page 21: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Language Futures

void foo(List<Integer> list) {

if (list instanceof List<Integer>) {

....

}

}

List<int> list = new ArrayList<>();

Reification

Page 22: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Language Futures

class Node {

private Node parent;

public getNode() { return parent; }

private Node leftChild;

public getLeftChild() { return leftChild; }

private Node rightChild;

public getRightChild() { return rightChild; }

}

Page 23: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Language Futures

value class Node {

private Node parent;

public getNode() { return parent; }

private Node leftChild;

public getLeftChild() { return leftChild; }

private Node rightChild;

public getRightChild() { return rightChild; }

}

Page 24: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Language Futures

value class Node {

Node property parent;

Node property leftChild;

Node property rightChild;

}

Page 25: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Project JigsawProject Jigsaw

Page 26: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

MarkReinhold

-classpath

Page 27: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

MarkReinhold

module-info.java

jar

jmod

rpm

deb

mvn

Page 28: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

MarkReinhold

Page 29: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

MarkReinhold

Page 30: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

MarkReinhold

module の導入

Project Jigsaw

rt.jar のモジュール化

Page 31: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

7 Project CoinInvokeDynamicFork/Join FrameworkProject JigsawProject Lambda

2012 Mid

Page 32: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

7Project CoinInvokeDynamicFork/Join Framework

Project JigsawProject Lambda

82011 Mid

2012 Late

Page 33: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall
Page 34: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall
Page 35: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall
Page 36: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall
Page 37: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall

Java SE

JavaFX

Page 38: JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall