SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
Oracle OpenWorld
JavaOne+Develop
          Report
   Java SE, JavaFX 編

     Java in the Box
     櫻庭 祐一
櫻庭 祐一
 Java in the Box
   http://www.javainthebox.[net, com]



’98 ’
    99 ’
       00 ’
          01 ’
             02 ’
’                03
04 ’
    05 ’
       06 ’
          07 ’
              08 ’
                  09
Mark Reinhold
Roberto    Greg
Chinnici   Bollella
18 ヶ月
2004.9    2006.12 2008.Q2?
J2SE5.0   JavaSE6 JavaSE7
18 ヶ月
2004.9    2006.12 2010.Q4?
J2SE5.0   JavaSE6 JavaSE7
18 ヶ月
2004.9    2006.12 2010.Q4?
J2SE5.0   JavaSE6 JavaSE7
7     Productivity
      Perfomance



 8
      Universality
      Modularity




  9
      Integration
      Serviceability
Project Coin
Project Coin


 <>               0b
                     String

        x...

               Joseph Dercy
Project Coin
List<String> list
    =new ArrayList<>();




                    Joseph Dercy
Project Coin

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



                             Joseph Dercy
Project Lambda
Executor
Java1.0
Thread
            J2SE5.0     Project Lambda
            JSR166

Project Lambda

                      extJSR166y
                      ParallelArray
                                      JSR166y
                                      Fork/Join



    Brian Goetz
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 の記法
                  メソッド参照
                  デフォルト実装




Alex Buckley
Language Futures
void foo(List<Integer> list) {
    if (list instanceof List<Integer>) {
        ....
    }
}
                             Reification

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




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




Language Futures
Project Jigsaw
-classpath

Mark
Reinhold
jar

                 module-info.java
                                    jmod
           mvn
                                    rpm

                                    deb


Mark
Reinhold
Mark
Reinhold
Mark
Reinhold
Project Jigsaw
              module の導入
              rt.jar のモジュール化




Mark
Reinhold
7        Project Coin
2012 Mid InvokeDynamic
         Fork/Join Framework
         Project Jigsaw
         Project Lambda
7
2011 Mid
                      Project Jigsaw
                      Project Lambda




                           8
Project Coin
InvokeDynamic
Fork/Join Framework

                          2012 Late
Java SE




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

Más contenido relacionado

La actualidad más candente

AST Transformations at JFokus
AST Transformations at JFokusAST Transformations at JFokus
AST Transformations at JFokus
HamletDRC
 
AST Transformations
AST TransformationsAST Transformations
AST Transformations
HamletDRC
 
Kotlin advanced - language reference for android developers
Kotlin advanced - language reference for android developersKotlin advanced - language reference for android developers
Kotlin advanced - language reference for android developers
Bartosz Kosarzycki
 

La actualidad más candente (20)

Performance in .net best practices
Performance in .net best practicesPerformance in .net best practices
Performance in .net best practices
 
Reactive programming with RxSwift
Reactive programming with RxSwiftReactive programming with RxSwift
Reactive programming with RxSwift
 
Reactive Programming with RxSwift
Reactive Programming with RxSwiftReactive Programming with RxSwift
Reactive Programming with RxSwift
 
NS2 Classifiers
NS2 ClassifiersNS2 Classifiers
NS2 Classifiers
 
V8 hidden class and inline cache
V8 hidden class and inline cacheV8 hidden class and inline cache
V8 hidden class and inline cache
 
Basic Packet Forwarding in NS2
Basic Packet Forwarding in NS2Basic Packet Forwarding in NS2
Basic Packet Forwarding in NS2
 
JavaScript Basics - GameCraft Training
JavaScript Basics - GameCraft TrainingJavaScript Basics - GameCraft Training
JavaScript Basics - GameCraft Training
 
Javascript Execution Context Flow
Javascript Execution Context FlowJavascript Execution Context Flow
Javascript Execution Context Flow
 
Building fast interpreters in Rust
Building fast interpreters in RustBuilding fast interpreters in Rust
Building fast interpreters in Rust
 
Ast transformations
Ast transformationsAst transformations
Ast transformations
 
packet destruction in NS2
packet destruction in NS2packet destruction in NS2
packet destruction in NS2
 
NS2 Shadow Object Construction
NS2 Shadow Object ConstructionNS2 Shadow Object Construction
NS2 Shadow Object Construction
 
ConFess Vienna 2015 - Metaprogramming with Groovy
ConFess Vienna 2015 - Metaprogramming with GroovyConFess Vienna 2015 - Metaprogramming with Groovy
ConFess Vienna 2015 - Metaprogramming with Groovy
 
AST Transformations at JFokus
AST Transformations at JFokusAST Transformations at JFokus
AST Transformations at JFokus
 
Jason parsing
Jason parsingJason parsing
Jason parsing
 
AST Transformations
AST TransformationsAST Transformations
AST Transformations
 
Kotlin in action
Kotlin in actionKotlin in action
Kotlin in action
 
Building native Android applications with Mirah and Pindah
Building native Android applications with Mirah and PindahBuilding native Android applications with Mirah and Pindah
Building native Android applications with Mirah and Pindah
 
Kotlin advanced - language reference for android developers
Kotlin advanced - language reference for android developersKotlin advanced - language reference for android developers
Kotlin advanced - language reference for android developers
 
Kotlin Developer Starter in Android projects
Kotlin Developer Starter in Android projectsKotlin Developer Starter in Android projects
Kotlin Developer Starter in Android projects
 

Destacado (10)

もっと New I/O。
もっと New I/O。もっと New I/O。
もっと New I/O。
 
Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。Fork/Join Framework。そしてLambdaへ。
Fork/Join Framework。そしてLambdaへ。
 
What's New about Java SE 8
What's New about Java SE 8What's New about Java SE 8
What's New about Java SE 8
 
Lambdaへの道
Lambdaへの道Lambdaへの道
Lambdaへの道
 
Introducing JavaFX 2
Introducing JavaFX 2Introducing JavaFX 2
Introducing JavaFX 2
 
JavaOne Report - Java SE Update
JavaOne Report - Java SE UpdateJavaOne Report - Java SE Update
JavaOne Report - Java SE Update
 
JavaFX 8って何だ!! - JavaFX最新情報 -
JavaFX 8って何だ!! - JavaFX最新情報 -JavaFX 8って何だ!! - JavaFX最新情報 -
JavaFX 8って何だ!! - JavaFX最新情報 -
 
HTML 5 in JavaFX
HTML 5 in JavaFXHTML 5 in JavaFX
HTML 5 in JavaFX
 
New Wind of Java
New Wind of JavaNew Wind of Java
New Wind of Java
 
FXML for Structure, CSS for Styling and JavaFX as Standard GUI Library
FXML for Structure, CSS for Styling and JavaFX as Standard GUI LibraryFXML for Structure, CSS for Styling and JavaFX as Standard GUI Library
FXML for Structure, CSS for Styling and JavaFX as Standard GUI Library
 

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

JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter PilgrimJavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
JavaCro 2014 Scala and Java EE 7 Development Experiences
JavaCro 2014 Scala and Java EE 7 Development ExperiencesJavaCro 2014 Scala and Java EE 7 Development Experiences
JavaCro 2014 Scala and Java EE 7 Development Experiences
Peter Pilgrim
 
Real world scala
Real world scalaReal world scala
Real world scala
lunfu zhong
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
Dmitry Buzdin
 
Terence Barr - jdk7+8 - 24mai2011
Terence Barr - jdk7+8 - 24mai2011Terence Barr - jdk7+8 - 24mai2011
Terence Barr - jdk7+8 - 24mai2011
Agora Group
 
Scala4sling
Scala4slingScala4sling
Scala4sling
day
 

Similar a JavaOne報告会 Java SE/JavaFX 編 - JJUG CCC 2010 Fall (20)

Java SE 7、そしてJava SE 8
Java SE 7、そしてJava SE 8Java SE 7、そしてJava SE 8
Java SE 7、そしてJava SE 8
 
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter PilgrimJavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
JavaCro'14 - Scala and Java EE 7 Development Experiences – Peter Pilgrim
 
JavaCro 2014 Scala and Java EE 7 Development Experiences
JavaCro 2014 Scala and Java EE 7 Development ExperiencesJavaCro 2014 Scala and Java EE 7 Development Experiences
JavaCro 2014 Scala and Java EE 7 Development Experiences
 
Java Core | Concurrency in the Java Language and Platform | Fredrik Ohrstrom
Java Core | Concurrency in the Java Language and Platform | Fredrik OhrstromJava Core | Concurrency in the Java Language and Platform | Fredrik Ohrstrom
Java Core | Concurrency in the Java Language and Platform | Fredrik Ohrstrom
 
OSDC.fr 2012 :: Cascalog : progammation logique pour Hadoop
OSDC.fr 2012 :: Cascalog : progammation logique pour HadoopOSDC.fr 2012 :: Cascalog : progammation logique pour Hadoop
OSDC.fr 2012 :: Cascalog : progammation logique pour Hadoop
 
What's new and noteworthy in Java EE 8?
What's new and noteworthy in Java EE 8?What's new and noteworthy in Java EE 8?
What's new and noteworthy in Java EE 8?
 
Scala uma poderosa linguagem para a jvm
Scala   uma poderosa linguagem para a jvmScala   uma poderosa linguagem para a jvm
Scala uma poderosa linguagem para a jvm
 
Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Gradle build tool that rocks with DSL JavaOne India 4th May 2012Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Gradle build tool that rocks with DSL JavaOne India 4th May 2012
 
Json generation
Json generationJson generation
Json generation
 
Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016
Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016
Kotlin Developer Starter in Android - STX Next Lightning Talks - Feb 12, 2016
 
NoSQL and JavaScript: a Love Story
NoSQL and JavaScript: a Love StoryNoSQL and JavaScript: a Love Story
NoSQL and JavaScript: a Love Story
 
Real world scala
Real world scalaReal world scala
Real world scala
 
Mongoskin - Guilin
Mongoskin - GuilinMongoskin - Guilin
Mongoskin - Guilin
 
Kotlin: forse è la volta buona (Trento)
Kotlin: forse è la volta buona (Trento)Kotlin: forse è la volta buona (Trento)
Kotlin: forse è la volta buona (Trento)
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
 
Terence Barr - jdk7+8 - 24mai2011
Terence Barr - jdk7+8 - 24mai2011Terence Barr - jdk7+8 - 24mai2011
Terence Barr - jdk7+8 - 24mai2011
 
Latinoware
LatinowareLatinoware
Latinoware
 
Scala4sling
Scala4slingScala4sling
Scala4sling
 
BOF2644 Developing Java EE 7 Scala apps
BOF2644 Developing Java EE 7 Scala appsBOF2644 Developing Java EE 7 Scala apps
BOF2644 Developing Java EE 7 Scala apps
 
Jug trojmiasto 2014.04.24 tricky stuff in java grammar and javac
Jug trojmiasto 2014.04.24  tricky stuff in java grammar and javacJug trojmiasto 2014.04.24  tricky stuff in java grammar and javac
Jug trojmiasto 2014.04.24 tricky stuff in java grammar and javac
 

Más de Yuichi Sakuraba

Más de Yuichi Sakuraba (20)

Vector API - Javaによるベクターコンピューティング
Vector API - JavaによるベクターコンピューティングVector API - Javaによるベクターコンピューティング
Vector API - Javaによるベクターコンピューティング
 
Oracle Code One - Java KeynoteとJava SE
Oracle Code One - Java KeynoteとJava SEOracle Code One - Java KeynoteとJava SE
Oracle Code One - Java KeynoteとJava SE
 
Project Loom + Project Panama
Project Loom + Project PanamaProject Loom + Project Panama
Project Loom + Project Panama
 
Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド - Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
 
Oracle Code One 報告会 Java SE Update
Oracle Code One 報告会 Java SE UpdateOracle Code One 報告会 Java SE Update
Oracle Code One 報告会 Java SE Update
 
今こそStream API入門
今こそStream API入門今こそStream API入門
今こそStream API入門
 
Oracle Code One 報告会 Java SE Update
Oracle Code One 報告会 Java SE UpdateOracle Code One 報告会 Java SE Update
Oracle Code One 報告会 Java SE Update
 
Learn Language 2018 Java Language Update
Learn Language 2018 Java Language Update Learn Language 2018 Java Language Update
Learn Language 2018 Java Language Update
 
Dockerに向けて、Javaもダイエット
Dockerに向けて、JavaもダイエットDockerに向けて、Javaもダイエット
Dockerに向けて、Javaもダイエット
 
What's New in Java
What's New in JavaWhat's New in Java
What's New in Java
 
Migration Guide to Java SE 10, and also Java SE 11
Migration Guide to Java SE 10, and also Java SE 11Migration Guide to Java SE 10, and also Java SE 11
Migration Guide to Java SE 10, and also Java SE 11
 
琥珀色のJava - Project Amber -
琥珀色のJava - Project Amber -琥珀色のJava - Project Amber -
琥珀色のJava - Project Amber -
 
Moving to Module: Issues & Solutions
Moving to Module: Issues & SolutionsMoving to Module: Issues & Solutions
Moving to Module: Issues & Solutions
 
モジュール移行の課題と対策
モジュール移行の課題と対策モジュール移行の課題と対策
モジュール移行の課題と対策
 
Project Jigsawと、ちょっとだけVector API
Project Jigsawと、ちょっとだけVector APIProject Jigsawと、ちょっとだけVector API
Project Jigsawと、ちょっとだけVector API
 
Java SE 9の全貌
Java SE 9の全貌Java SE 9の全貌
Java SE 9の全貌
 
Java SEの現在、過去 そして未来
Java SEの現在、過去 そして未来Java SEの現在、過去 そして未来
Java SEの現在、過去 そして未来
 
Java SE 9 のススメ
Java SE 9 のススメJava SE 9 のススメ
Java SE 9 のススメ
 
Introduction of Project Jigsaw
Introduction of Project JigsawIntroduction of Project Jigsaw
Introduction of Project Jigsaw
 
Encouragement of Java SE 9
Encouragement of Java SE 9Encouragement of Java SE 9
Encouragement of Java SE 9
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 

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

  • 1. Oracle OpenWorld JavaOne+Develop Report Java SE, JavaFX 編 Java in the Box 櫻庭 祐一
  • 2. 櫻庭 祐一 Java in the Box http://www.javainthebox.[net, com] ’98 ’ 99 ’ 00 ’ 01 ’ 02 ’ ’ 03 04 ’ 05 ’ 06 ’ 07 ’ 08 ’ 09
  • 3.
  • 5. Roberto Greg Chinnici Bollella
  • 6. 18 ヶ月 2004.9 2006.12 2008.Q2? J2SE5.0 JavaSE6 JavaSE7
  • 7. 18 ヶ月 2004.9 2006.12 2010.Q4? J2SE5.0 JavaSE6 JavaSE7
  • 8. 18 ヶ月 2004.9 2006.12 2010.Q4? J2SE5.0 JavaSE6 JavaSE7
  • 9. 7 Productivity Perfomance 8 Universality Modularity 9 Integration Serviceability
  • 11. Project Coin <> 0b String x... Joseph Dercy
  • 12. Project Coin List<String> list =new ArrayList<>(); Joseph Dercy
  • 13. Project Coin 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); } Joseph Dercy
  • 15. Executor Java1.0 Thread J2SE5.0 Project Lambda JSR166 Project Lambda extJSR166y ParallelArray JSR166y Fork/Join Brian Goetz
  • 16. 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
  • 17. Collection<Student> students = ... double max = students.filter(#{ s -> s.gradYear == 2010 }) .map( #{ s -> s.score }) .max(); Alex Buckley
  • 18. 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
  • 19. Project Lambda SAM の記法 メソッド参照 デフォルト実装 Alex Buckley
  • 21. void foo(List<Integer> list) { if (list instanceof List<Integer>) { .... } } Reification List<int> list = new ArrayList<>(); Language Futures
  • 22. 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
  • 23. 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
  • 24. value class Node { Node property parent; Node property leftChild; Node property rightChild; } Language Futures
  • 27. jar module-info.java jmod mvn rpm deb Mark Reinhold
  • 30. Project Jigsaw module の導入 rt.jar のモジュール化 Mark Reinhold
  • 31. 7 Project Coin 2012 Mid InvokeDynamic Fork/Join Framework Project Jigsaw Project Lambda
  • 32. 7 2011 Mid Project Jigsaw Project Lambda 8 Project Coin InvokeDynamic Fork/Join Framework 2012 Late
  • 33.
  • 34.
  • 35.
  • 36.