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

Preview:

DESCRIPTION

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

Citation preview

Java in the Box櫻庭 祐一

Oracle OpenWorldJavaOne+Develop Report

Java SE, JavaFX 編

櫻庭 祐一Java in the Box

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

98’99’

00’01’

02’03’

04’05’

06’07’

08’09’

Mark Reinhold

RobertoChinnici

GregBollella

18ヶ月2004.9J2SE5.0

2006.12JavaSE6

2008.Q2?JavaSE7

18ヶ月2004.9J2SE5.0

2006.12JavaSE6

2010.Q4?JavaSE7

18ヶ月2004.9J2SE5.0

2006.12JavaSE6

2010.Q4?JavaSE7

789

Productivity

Perfomance

Universality

Modularity

Integration

Serviceability

Productivity

Perfomance

Universality

Modularity

Integration

Serviceability

Project Coin

Project Coin

Joseph Dercy

0b<>String

x...

Project Coin

Joseph Dercy

List<String> list

=new ArrayList<>();

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);

}

Project Lambda

Project Lambda

Brian GoetzBrian Goetz

Java1.0Thread J2SE5.0

JSR166

Executor

JSR166yFork/Join

extJSR166yParallelArray

Project Lambda

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();

Alex Buckley

Collection<Student> students = ...

double max =

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

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

.max();

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;

...

}

Alex Buckley

Project Lambda

SAMの記法

メソッド参照

デフォルト実装

Language Futures

Language Futures

void foo(List<Integer> list) {

if (list instanceof List<Integer>) {

....

}

}

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

Reification

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; }

}

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; }

}

Language Futures

value class Node {

Node property parent;

Node property leftChild;

Node property rightChild;

}

Project JigsawProject Jigsaw

MarkReinhold

-classpath

MarkReinhold

module-info.java

jar

jmod

rpm

deb

mvn

MarkReinhold

MarkReinhold

MarkReinhold

module の導入

Project Jigsaw

rt.jar のモジュール化

7 Project CoinInvokeDynamicFork/Join FrameworkProject JigsawProject Lambda

2012 Mid

7Project CoinInvokeDynamicFork/Join Framework

Project JigsawProject Lambda

82011 Mid

2012 Late

Java SE

JavaFX

Recommended