SlideShare a Scribd company logo
1 of 44
Download to read offline
The 7th Generation
JSR 336


Markus Eisele, http://blog.eisele.net   7/7/2011   1
http://blog.eisele.net
http://twitter.com/myfear
Agenda

•   Java – Introduction, History and Status
•   Dynamic Languages in the JVM
•   Small Language Enhancements
•   NIO 2
•   Other News
•   Java Virtual Maschine




Markus Eisele, http://blog.eisele.net         7/7/2011   3
Introduction, History
and Status
 •   History
 •   JSR 336
 •   OpenJDK
 •   Schedule

Markus Eisele, http://blog.eisele.net   7/7/2011   4
History
 JDK/Year                                     Comment

 JDK 1.1 (released on Feb 19,1997)            Major additions included an extensive retooling of the AWT
                                              event model, inner classes added to the language, JavaBeans
                                              and JDBC.

 J2SE 1.2 (Dec 8, 1998)                       Reflection, a Collections framework, Java IDL (an IDL
 Codename Playground.                         implementation for CORBA interoperability), Swing graphical
                                              API, a Java Plug-in, JIT compiler.

                                              Bundling of the HotSpot JVM (the HotSpot JVM was first
 J2SE 1.3 (May 8, 2000)
                                              released in April, 1999 for the J2SE 1.2 JVM), JavaSound,
 Codename Kestrel.
                                              JNDI and JPDA.

 J2SE 1.4 (Feb 6, 2002)                       Developed under the Java Community Process as JSR 59.
 Codename Merlin.                             Regular expressions modeled after Perl, exception chaining,
                                              an integrated XML parser and XSLT processor (JAXP), and
                                              Java Web Start.

 J2SE 5.0 or 1.5 (Sep 30, 2004)                Developed as JSR 176, New language features including the
 Codename Tiger.                              for-each loop, generics, autoboxing and var-args.

 Java SE 6 (Dec 11, 2006)                     Database manager, Use of scripting languages with the JVM,
 Codename Mustang                             Visual Basic language support. Support for pluggable
                                              annotations (JSR 269), GUI improvements, including native
                                              UI enhancements, improvements to the JPDA & JVM Tool
                                              Interface

 Java SE 7 — Codename Dolphin (Jul 28,2011)   The Dolphin Project started in August 2006



Markus Eisele, http://blog.eisele.net                                                 7/7/2011              5
Plan A or Plan B – The Sundown

―It‘s been clear for some time that
the most recent JDK 7 development
schedule is, to put it mildly,
unrealistic.‖
(Mark Reinhold, 2010/09/08)



Plan A:                  JDK 7 (as defined by Sun)    Mid 2012
                         JDK 7 (minus Lambda,
Plan B:                                               Mid 2011
                         Jigsaw, and part of Coin)
                         JDK 8 (Lambda, Jigsaw, the
                                                      Late 2012
                         rest of Coin, ++)




http://mreinhold.org/blog/rethinking-jdk7


Markus Eisele, http://blog.eisele.net                             7/7/2011   6
Plan B! – Moving Java Foreward
 Java SE 7 — Mid 2011                       Java SE 8 — Late 2012
 • JSR 292: Support for Dynamically-Typed   • JSR 294: Language and VM Support for
    Languages (―InvokeDynamic‖)
 • JSR 334: Small Language Enhancements        Modular Programming
    (Project Coin)                          • JSR TBD: Platform Modularization
 • Upgrade Class-Loader Architecture        • JSR TBD: Lambda Expressions, Default
 • Method to Close a URLClassLoader            Methods, & Bulk Data Operations
 • Concurrency and Collections Updates         (Project Lambda)
    (including the Fork/Join Framework)
 • Unicode 6.0                              • JSR 308: Annotations on Java Types
 • Locale Enhancements (IETF BCP 47 &       • JSR TBD: More Small Language
    UTR 35)                                    Enhancements (Project Coin part 2)
 • JSR 203: More New I/O APIs (―NIO.2‖)
 • TLS 1.2
 • Elliptic-Curve Cryptography (ECC)
 • JDBC 4.1
 • Translucent & Shaped Windows
 • Heavyweight/Lightweight Component
    Mixing
 • Swing: Nimbus Look-and-Feel
 • Swing: JLayer Component
 • Update the XML Stack
    (JAXP, JAXB, & JAX-WS)


http://mreinhold.org/blog/plan-b-details


Markus Eisele, http://blog.eisele.net                                 7/7/2011       7
JSR #336, 06.06.2011




  http://jcp.org/en/jsr/results?id=5207


Markus Eisele, http://blog.eisele.net     7/7/2011   8
What is the OpenJDK?

• JDK7 is the second JDK done via the OpenJDK
  effort
• OpenJDK is free, open-source and GPL licensed (+
  CP-Exception)
  (http://openjdk.java.net/legal/gplv2+ce.html)
• A lot of the improvements of JDK7 are separate
  projects on OpenJDK
  (http://openjdk.java.net/projects/)
• Some say that projects go under the cap of
  OpenJDK to avoid the cumbersome and slow JCP
  process


Markus Eisele, http://blog.eisele.net      7/7/2011   9
OpenJDK Schedule
Milestone    Date                            # of Builds   Comment

M1          2009/01/02 – 2009/02/19 (b48)    7 builds

M2          2009/02/20 – 2009/04/02 (b53)    5 builds

M3          2009/04/03 – 2009/05/14 (b59)    6 builds      JavaOne Preview

M4          2009/06/05 – 2009/07/23 (b66)    7 builds

M5          2009/07/24 – 2009/11/12 (b76)    10 builds

M6          2009/11/27 – 2010/02/18 (b84)    8 builds

M7          2010/02/26 – 2010/04/15 (b89)    5 builds

M8          2010/04/16 – 2010/06/03 (b96)    7 builds

M9          2010/06/04 – 2010/07/29 (b103)   7 builds

M10         2010/07/30 – 2010/09/09 (b109)   6 builds

M11         2010/09/10 – 2010/12/23 (b123)   14 builds     Feature Complete

M12         2010/12/31 – 2011/02/17 (b130)   7 builds      Developer Preview

            2011/04/12                                     Rampdown start: P1-P3 bugs only

            2011/04/28                                     API/interface changes: Showstoppers only

            2011/05/11                                     All targeted bugs addressed

            2011/05/18                                     Bug fixes: Showstoppers only

M13         2011/02/18 – 2011/06/02 (b145)   15 builds     Last scheduled build - Final test cycle starts

GA          2011/07/28                                     General Availability


Markus Eisele, http://blog.eisele.net                                               7/7/2011                10
Dynamic Languages in the JVM
 • The Da Vinci Maschine Project
 • JSR 292: Supporting Dynamically Typed
   Languages on the Java Plattform


Markus Eisele, http://blog.eisele.net      7/7/2011   11
The Da Vinci Maschine Project
a multi-language renaissance
for the Java™ Virtual Machine
architecture
 •   Da Vinci Machine sub-projects include:
 •   Dynamic invocation
 •   Continuations
 •   Tail-calls
 •   And interface injection

 •   JVM has 4 bytecodes for method
        invokevirtual - Invokes a method on a class. This is the typical
         type of method invocation.
        invokeinterface - Invokes a method on an interface.
        invokestatic - Invokes a static method on a class. This is the only
         kind of invocation that lacks a receiver argument.
        invokespecial - Invokes a method without reference to the type of
         the receiver. Methods called this way can be constructors,
         superclass methods, or private methods.
 •   + one more since 1.7:
        invokedynamic

Invokedynamic is the first new java bytecode since Java 1.0.
Markus Eisele, http://blog.eisele.net                                          7/7/2011   12
JSR 292: InvokeDynamic
 •   The standard behind Da Vinci Machine
 •   Natural continuation of JSR 223: Scripting for the Java
     Platform implemented in JDK
 •   New JVM instruction invokedynamic
         Allows extremely fast dynamic method invocation through
          method handles
         Will enable JRuby, Jython, Groovy and other dynamic and
          scripting languages to call dynamic methods natively at bytecode
          level
 •   Method handles
         Lightweight references to a method – java.dyn.MethodHandle
         Anonymous classes in the JVM
 •   Autonomous methods
         Methods that can be dynamically attached to an existing class at
          runtime
 •   Interface injection
         Acquiring base interfaces and method implementations at runtime
 •   Continuations and stack introspection
         Suspend / resume thread's execution stack
 •   Tail calls and tail recursion
 http://jcp.org/en/jsr/detail?id=292
 http://blogs.oracle.com/gbracha/resource/JAOO2005.pdf
 http://java.sun.com/developer/technicalArticles/DynTypeLang/index.html


Markus Eisele, http://blog.eisele.net                                        7/7/2011   13
Small Enhancements to
the Java Programming
Language
 • Strings in switch
 • Binary integral literals and underscore literals
 • Multi-Catch and more precise rethrow
 • Improved type interence for Gerneric instance creation
   (diamond)
 • Try-with-resources statement
 • Simplified varargs method invocation

Markus Eisele, http://blog.eisele.net                       7/7/2011   14
Strings in Switch

String s = "";
switch (s) {
     case “doag":
            out.println("1");
            break;
     case “ukoug":
            out.println("2");
            break;
     default:
            out.println("Unknown UG.");
            break;
}




Markus Eisele, http://blog.eisele.net     7/7/2011   15
Underscores in Numbers


public static void main(String... args) {

    // THE OLD WAY
    int oldBillion = 1000000000;

    // THE NEW WAY
    int newBillion = 1_000_000_000;

}




Markus Eisele, http://blog.eisele.net       7/7/2011   16
Binary Literals


public static void main(String... args) {
  // THE OLD WAY
  int oldBinary1 = 153;
  int oldBinary2 = 128 ^ 0 ^ 0 ^ 16 ^ 8 ^ 0 ^ 0 ^ 1;

    // THE NEW WAY
    int newBinary = 0b1001_1001;
    out.println(oldBinary1);
    out.println(oldBinary2);
    out.println(format("[0b1001_1001] is {0}", newBinary));
}




    Markus Eisele, http://blog.eisele.net      7/7/2011   17
Multi-Catch and more precise rethrow


try {
         throwAorB();
       } catch (ExceptionA | ExceptionB ex) {
               throw ex;
}


try {
         throwAorB();
       } catch (final Throwable t) {
               throw t; // ExceptionA or ExceptionB
}



Markus Eisele, http://blog.eisele.net           7/7/2011   18
Improved Type Inference for Generic Instance Creation

• This:

     Map<String, List<String>> anagrams =
         new HashMap<String, List<String>>();

• ….becomes:

     Map<String, List<String>> anagrams = new
     HashMap<>();


• <> is called the „Diamond― Operator



Markus Eisele, http://blog.eisele.net              7/7/2011   19
Try with resources

private static void close(Closeable closable) {
       if (closable != null) {
           try {
               closable.close();
           } catch (IOException e) { //optional
               System.err.println(e);
           }
       }
   }

 try (InputStream fis = new FileInputStream(source);
                OutputStream fos = new
FileOutputStream(target)) {
            // do stuff
        } // closed here

Markus Eisele, http://blog.eisele.net       7/7/2011   20
More New I/O APIs for
the Java Platform
 •   java.io.File
 •   java.nio.file.Path
 •   java.nio.file.FileSystem
 •   Other Usefull Methods

Markus Eisele, http://blog.eisele.net   7/7/2011   21
File


File file = new java.io.File(“mypath/subPath");
Path path = file.toPath();

System.out.println("Created path (%s) of type
%s%n”, path, path.getClass().getName());




       Created path (myPathsubPath) of type sun.nio.fs.WindowsPath



http://download.oracle.com/javase/tutorial/essential/io/fileio.html


Markus Eisele, http://blog.eisele.net                                 7/7/2011   22
Path


 Path path = java.nio.file.Paths.get("myPath",
 "subPath");

 System.out.println("Created path (%s) of type
 %s%n", path, path.getClass().getName());




     Created path (myPathsubPath) of type sun.nio.fs.WindowsPath




Markus Eisele, http://blog.eisele.net                           7/7/2011   23
Filesystem


Path path =
FileSystems.getDefault().getPath("mypath",
"subPath");


System.out.println("Created path (%s) of type
%s%n", path, path.getClass().getName());




     Created path (myPathsubPath) of type sun.nio.fs.WindowsPath




Markus Eisele, http://blog.eisele.net                           7/7/2011   24
Determining MIME Types


Path path =
FileSystems.getDefault().getPath("java7.docx");

try {
    String type = Files.probeContentType(path);
    System.out.format("'%s' has the filetype
'%s'.%n", path, type);
    } catch (IOException x) {
      System.err.println(x);
    }


      'java7.docx' has the filetype 'application/vnd.openxmlformats-
              officedocument.wordprocessingml.document'.


Markus Eisele, http://blog.eisele.net                              7/7/2011   25
Other news
 •   Concurrency and collections updates (jsr166y)
 •   Security
 •   Internationalization
 •   SCTP SDP TLS
          ,   ,
 •   JDBC 4.1 + RowSet 1.1
 •   Other other other

Markus Eisele, http://blog.eisele.net                7/7/2011   26
Concurrency and Collections Updates - JSR 166y
•         Java threads on diet
•         Thread class in Java is quite limited and doesn‘t support multi-cored hardware well
          enough. The fork/join framework is the answer.
           • introduces a layer of indirection between threads and tasks.
           • create a pool of threads the size of which corresponds to the number of
              processors/cores you have
           • and then start assigning tasks to the pool

          if (my portion of the work is small enough)
            do the work directly
          else
            split my work into two pieces
            invoke the two pieces and wait for the results

      •      Wrap this code as a ForkJoinTask subclass, typically as one of its more
             specialized types RecursiveTask (which can return a result) or RecursiveAction.
      •      After your ForkJoinTask is ready, create one that represents all the work to be
             done and pass it to the invoke() method of a ForkJoinPool instance.

    http://download.oracle.com/javase/tutorial/essential/concurrency/forkjoin.html


Markus Eisele, http://blog.eisele.net                                                7/7/2011   27
Concurrency and Collections Updates - JSR 166y




run:
Array size is 59764
Threshold is 10000
8 processors are available
Image blur took 26 milliseconds.
http://download.oracle.com/javase/tutorial/essential/concurrency/examples/ForkBlur.java


Markus Eisele, http://blog.eisele.net                                                     7/7/2011   28
Security

• Native ECC (Elliptic Curve Cryptography)
• TLS (Transport Layer Security)1.2
• Stronger pseudorandom functions, additional
  (stronger) hash/signature algorithms, enhanced
  key exchange
• ASLR (Address space layout randomization)
• DEP (Data Execution Prevention) – Windows Only




Markus Eisele, http://blog.eisele.net     7/7/2011   29
Internationalization

• Unicode 6.0
• IETF BCP47 and UTR35
    • One language many character codes (Kanji, Hiragana,
      Katakana, Romaji)
    • Three-letter base language codes; three-digit region
      codes
• Separate user locale and user interface locale
• Currency data enhancements




Markus Eisele, http://blog.eisele.net           7/7/2011   30
More Network Stuff

• SCTP (Stream Control Transmission Protocol)
    • used in Solaris

• SDP (Sockets Direct Protocol)
    • Infiniband protocol

• Redirection for Subprocess
    • You will be able to use Redirection for sub process,
      redirecting stdout and stderr for that sub process only.

• Vista IPv6 stack



Markus Eisele, http://blog.eisele.net                  7/7/2011   31
JDBC 4.1

• Using try-with-resources Statements to
  Automatically Close JDBC Resources

 public static void getCoffees(Connection con) throws SQLException {
         String query = "select COF_NAME, PRICE from COFFEES";
         try (Statement stmt = con.createStatement()) {

                  ResultSet rs = stmt.executeQuery(query);

                  while (rs.next()) {
                      String coffeeName = rs.getString("COF_NAME");
                      float price = rs.getFloat("PRICE");
                      System.out.println(coffeeName + ", " + price);
                  }
            }
       }




Markus Eisele, http://blog.eisele.net                             7/7/2011   32
RowSet 1.1 - RowSetFactory
•    You can use an instance of RowSetFactory to create a RowSet object.

    public void testJdbcRowSet(String username, String password) throws SQLException {

          RowSetFactory myRowSetFactory = null;
          JdbcRowSet jdbcRs = null;
          ResultSet rs = null;
          Statement stmt = null;

          try {

               myRowSetFactory = RowSetProvider.newFactory();
               jdbcRs = myRowSetFactory.createJdbcRowSet();

               jdbcRs.setUrl("jdbc:myDriver:myAttribute");
               jdbcRs.setUsername(username);
               jdbcRs.setPassword(password);

               jdbcRs.setCommand("select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES");
               jdbcRs.execute();

               // ...

          } catch (Exception e) {
              // handle
          }
      }

http://download.oracle.com/javase/tutorial/jdbc/basics/jdbcrowset.html


Markus Eisele, http://blog.eisele.net                                            7/7/2011        33
RowSet 1.1 – FilteredRowSet

• A FilteredRowSet object lets you cut down the
  number of rows that are visible in a RowSet object
  so that you can work with only the data that is
  relevant to what you are doing.

 FilteredRowSet fRs =
 myRowSetFactory.createFilteredRowSet();
 Range name = new Range(1, 10, "id");
 fRs.setFilter(name);
 fRs.next(); // only ids from 1 to 10 will be returned




http://download.oracle.com/javase/tutorial/jdbc/basics/filteredrowset.html


Markus Eisele, http://blog.eisele.net                                        7/7/2011   34
RowSet 1.1 – CachedRowSet

• A CachedRowSet object is special in that it can
  operate without being connected to its data
  source, that is, it is a disconnected RowSet object.

CachedRowSet cRs =
myRowSetFactory.createCachedRowSet();
cRs.setCommand("select * from COFFEES");
cRs.execute(); // RowSet gets populated




http://download.oracle.com/javase/tutorial/jdbc/basics/cachedrowset.html


Markus Eisele, http://blog.eisele.net                                      7/7/2011   35
Other other other


 • Added Nimbus L&F to the standard
      Much better –modern- look than what
       was previously available
 • Platform APIs for Java 6u10 Graphics
   Features
      Shaped and translucent windows
 • JXLayer core included in the standard
      Formerly SwingLabs component
 • Allows easier layering inside of a
   component
 • Optimized Java2D Rendering Pipeline
   for X-Windows
      Allows hardware accelerated remote X

Markus Eisele, http://blog.eisele.net         7/7/2011   36
Other other other
• Better font configuration on Unix
    • Now uses standard Unix mechanism to find fonts.
• JAXP 1.4.4, JAXWS 2.2 and JAXB 2.2
• Upgrade class-loader architecture
    • Modifications to the ClassLoader API and
      implementation to avoid deadlocks in non-
      hierarchical class-loader topologies
• Close URLClassloaders
    • Allows applications to proactively clean up
      classloaders, freeing up native resources and
      unlocking JAR files
• Javadoc support for stylesheets


Markus Eisele, http://blog.eisele.net             7/7/2011   37
What‗s up JavaDoc?




http://download.java.net/jdk7/docs/api/

Markus Eisele, http://blog.eisele.net     7/7/2011   38
Java Virtual Maschine
 • Garbage-First (GC1)
 • HotRockit



Markus Eisele, http://blog.eisele.net   7/7/2011   39
Garbage First (G1)


 •   "server-style" GC
 •   More predictable GC pauses
 •   Better GC ergonomics
 •   Low pauses without fragmentation
 •   Parallelism and concurrency in collections
 •   Better heap utilization
                                                                         G1




 • -XX:+UseG1GC
 • -XX:MaxGCPauseMillis=50
 • -XX:GCPauseIntervalMillis=200

 • G1 is planned to replace CMS in the Hotspot
   JVM

http://labs.oracle.com/jtech/pubs/04-g1-paper-ismm.pdf


Markus Eisele, http://blog.eisele.net                    7/7/2011   40
JVM Convergence – Project HotRockit
•   2 teams enter, one team leave ….
•   Hotspot
    • Market share
    • Client and Server version
    • Quality
•   JRockit
    • Value adds
    • JRockit Mission Control
    • JRockit Flight Recorder
    • JRockit Virtual Edition
    • Optimized for the Oracle stack
•   1+1 = 1.15
    • Lot of common features in both the JVMs
    • converging them will add roughly 15% new features
•   First JRockit code check in to OpenJDK
    • Wed Feb 02 13:23:17 2011 +0100
    • Changing 1652 files
    • Done by Stefan Karlsson



Markus Eisele, http://blog.eisele.net                     7/7/2011   41
JVM Convergence – Project HotRockit
Hopefully, the convergence will be completed by JDK 8 GA, but no promises as of today!


 JDK 7 GA                       JDK 7 Update X      JDK 7 Update Y            JDK 8 GA

 • Java SE 7 Support            • Performance       • More performance        • Java SE 8 Support
 • Rebranding                   • Initial JRockit   • Improved command        • All performance
                                  Flight Recorder     line servicability        features from
 • No PermGen
                                  Support             (jrcmd)                   JRockit ported
   (stretch goal)
                                                    • G1 complete as             • I/O Performance
 • Improved JMX
                                                      CMS replacement            • JIT
   Agent
                                                    • Non-contiguous               Optimizations
 • Command line
                                                      heaps                   • All servicability
   servicability tool
   (jrcmd)                                          • Complete JRockit          features from
                                                      Flight Recorder           JRockit ported
 • JRockit Mission
                                                      Support                    • Compiler
   Control Console
   support                                          • JRockit Virtual              controls
                                                      Edition Support            • Verbose logging
                                                    • Soft Real Time GC
                                                                              • JRockit Mission
                                                                                Control Memleak
                                                                                Tool Support



                                                                              = Commercial Add-On


    Markus Eisele, http://blog.eisele.net                                  7/7/2011       42
Hate Java? You‗re fighting the wrong battle.
 • Java has been widely                                       • Tell me, what do the
   successful for a number of                                   following have in
   reasons:                                                     common?
 • It‘s widely accepted in the
   established companies.                                     • Paying with a credit card.
 • It‘s one of the fastest                                    • Going to the emergency
   languages.                                                   room.
 • It‘s one of the most secure                                • Adjusting your 401k.
   languages.
 • Synchronization primitives are                             • Using your insurance card
   built into the language.                                     at the dentist.
 • It‘s platform independent.                                 • Shopping around for the
 • Hotspot is open source.                                      best car insurance.
 • Thousands of vendors exist for                             • A BNSF train pulling a
   a multitude of Java products.                                Union Pacific coal car.
 • Thousands of open source                                   • Transferring money
   libraries exist for Java.
 • Community governance via
                                                                between banks.
   that JCP (pre-Oracle).                                     • Filling a prescription.

http://www.javacodegeeks.com/2011/06/hate-java-fight-wrong-battle.html


Markus Eisele, http://blog.eisele.net                                           7/7/2011     43
Thank your for your attention!


          Oracle and Java are registered trademarks of Oracle
          and/or its affiliates. Other names appearing on the
          slides may be trademarks of their respective owners.

          The development, release, and timing of any features
          or functionality described for Oracle‘s products
          remains at the sole discretion of Oracle.




Markus Eisele, http://blog.eisele.net                            7/7/2011   44

More Related Content

What's hot

Introduction to java
Introduction to javaIntroduction to java
Introduction to javajayc8586
 
Java Programming for Designers
Java Programming for DesignersJava Programming for Designers
Java Programming for DesignersR. Sosa
 
1 java programming- introduction
1  java programming- introduction1  java programming- introduction
1 java programming- introductionjyoti_lakhani
 
Learn Java with Dr. Rifat Shahriyar
Learn Java with Dr. Rifat ShahriyarLearn Java with Dr. Rifat Shahriyar
Learn Java with Dr. Rifat ShahriyarAbir Mohammad
 
Introduction to Java Programming
Introduction to Java Programming Introduction to Java Programming
Introduction to Java Programming Saravanakumar R
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to javaSaba Ameer
 
Basics of java programming language
Basics of java programming languageBasics of java programming language
Basics of java programming languagemasud33bd
 
Learn java in hindi
Learn java in hindiLearn java in hindi
Learn java in hindiVipin sharma
 
java tutorial for beginner - Free Download
java tutorial for beginner - Free Downloadjava tutorial for beginner - Free Download
java tutorial for beginner - Free DownloadTIB Academy
 
Basics of JAVA programming
Basics of JAVA programmingBasics of JAVA programming
Basics of JAVA programmingElizabeth Thomas
 
Fundamentals of JAVA
Fundamentals of JAVAFundamentals of JAVA
Fundamentals of JAVAKUNAL GADHIA
 
Java introduction
Java introductionJava introduction
Java introductionSagar Verma
 
Java for Recruiters
Java for RecruitersJava for Recruiters
Java for Recruitersph7 -
 
Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...Mr. Akaash
 
Introduction to Basic Java Versions and their features
Introduction to Basic Java Versions and their featuresIntroduction to Basic Java Versions and their features
Introduction to Basic Java Versions and their featuresAkash Badone
 

What's hot (20)

Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Java Programming
Java ProgrammingJava Programming
Java Programming
 
Introduction to JAVA
Introduction to JAVAIntroduction to JAVA
Introduction to JAVA
 
Java Programming for Designers
Java Programming for DesignersJava Programming for Designers
Java Programming for Designers
 
1 java programming- introduction
1  java programming- introduction1  java programming- introduction
1 java programming- introduction
 
Learn Java with Dr. Rifat Shahriyar
Learn Java with Dr. Rifat ShahriyarLearn Java with Dr. Rifat Shahriyar
Learn Java with Dr. Rifat Shahriyar
 
Introduction to Java Programming
Introduction to Java Programming Introduction to Java Programming
Introduction to Java Programming
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Basics of java programming language
Basics of java programming languageBasics of java programming language
Basics of java programming language
 
Learn java in hindi
Learn java in hindiLearn java in hindi
Learn java in hindi
 
java tutorial for beginner - Free Download
java tutorial for beginner - Free Downloadjava tutorial for beginner - Free Download
java tutorial for beginner - Free Download
 
Basics of JAVA programming
Basics of JAVA programmingBasics of JAVA programming
Basics of JAVA programming
 
Bn1005 demo ppt core java
Bn1005 demo ppt core javaBn1005 demo ppt core java
Bn1005 demo ppt core java
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Fundamentals of JAVA
Fundamentals of JAVAFundamentals of JAVA
Fundamentals of JAVA
 
Java Introduction
Java IntroductionJava Introduction
Java Introduction
 
Java introduction
Java introductionJava introduction
Java introduction
 
Java for Recruiters
Java for RecruitersJava for Recruiters
Java for Recruiters
 
Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...
 
Introduction to Basic Java Versions and their features
Introduction to Basic Java Versions and their featuresIntroduction to Basic Java Versions and their features
Introduction to Basic Java Versions and their features
 

Viewers also liked

Java7 New Features and Code Examples
Java7 New Features and Code ExamplesJava7 New Features and Code Examples
Java7 New Features and Code ExamplesNaresh Chintalcheru
 
Java Web Application Security - Utah JUG 2011
Java Web Application Security - Utah JUG 2011Java Web Application Security - Utah JUG 2011
Java Web Application Security - Utah JUG 2011Matt Raible
 
Java performance tuning
Java performance tuningJava performance tuning
Java performance tuningJerry Kurian
 
Java Performance Monitoring & Tuning
Java Performance Monitoring & TuningJava Performance Monitoring & Tuning
Java Performance Monitoring & TuningMuhammed Shakir
 
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging ServicePeter R. Egli
 
Introduction to Performance testing
Introduction to Performance testingIntroduction to Performance testing
Introduction to Performance testingsilviasiqueirahp
 
Performance testing using hp load runner
Performance testing using hp load runnerPerformance testing using hp load runner
Performance testing using hp load runnerReturn on Intelligence
 
Jmeter Performance Testing
Jmeter Performance TestingJmeter Performance Testing
Jmeter Performance TestingAtul Pant
 
Network programming in java - PPT
Network programming in java - PPTNetwork programming in java - PPT
Network programming in java - PPTkamal kotecha
 
An Introduction to Performance Testing
An Introduction to Performance TestingAn Introduction to Performance Testing
An Introduction to Performance TestingSWAAM Tech
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeterBhojan Rajan
 
Internet cafe business plan 1
Internet cafe business plan 1Internet cafe business plan 1
Internet cafe business plan 1Rajesh Patel
 

Viewers also liked (15)

Java7 New Features and Code Examples
Java7 New Features and Code ExamplesJava7 New Features and Code Examples
Java7 New Features and Code Examples
 
Java Web Application Security - Utah JUG 2011
Java Web Application Security - Utah JUG 2011Java Web Application Security - Utah JUG 2011
Java Web Application Security - Utah JUG 2011
 
Java performance tuning
Java performance tuningJava performance tuning
Java performance tuning
 
Java Performance Monitoring & Tuning
Java Performance Monitoring & TuningJava Performance Monitoring & Tuning
Java Performance Monitoring & Tuning
 
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging Service
 
Load Runner
Load RunnerLoad Runner
Load Runner
 
Introduction to Performance testing
Introduction to Performance testingIntroduction to Performance testing
Introduction to Performance testing
 
Performance testing using hp load runner
Performance testing using hp load runnerPerformance testing using hp load runner
Performance testing using hp load runner
 
Jmeter Performance Testing
Jmeter Performance TestingJmeter Performance Testing
Jmeter Performance Testing
 
Network programming in java - PPT
Network programming in java - PPTNetwork programming in java - PPT
Network programming in java - PPT
 
An Introduction to Performance Testing
An Introduction to Performance TestingAn Introduction to Performance Testing
An Introduction to Performance Testing
 
Performance testing jmeter
Performance testing jmeterPerformance testing jmeter
Performance testing jmeter
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
Internet cafe business plan 1
Internet cafe business plan 1Internet cafe business plan 1
Internet cafe business plan 1
 
Types of performance testing
Types of performance testingTypes of performance testing
Types of performance testing
 

Similar to Introducing Java 7

All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1Markus Eisele
 
Java 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaJava 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaManjula Kollipara
 
Explore the history, versions and features of Java- a report by Pranav Mishra
Explore the history, versions and features of Java- a report by Pranav MishraExplore the history, versions and features of Java- a report by Pranav Mishra
Explore the history, versions and features of Java- a report by Pranav MishraSopra Steria India
 
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"GlobalLogic Ukraine
 
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Arun Gupta
 
Jozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 UnconferenceJozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 UnconferenceHeather VanCura
 
Java and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystemJava and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystemRafael Winterhalter
 
Java: Rumours of my demise are greatly exaggerated
Java: Rumours of my demise are greatly exaggeratedJava: Rumours of my demise are greatly exaggerated
Java: Rumours of my demise are greatly exaggeratedSteve Dalton
 
Open Source가 바꾼 자바
Open Source가 바꾼 자바Open Source가 바꾼 자바
Open Source가 바꾼 자바Sungchul Park
 
J2EE Struts with Hibernate Framework
J2EE Struts with Hibernate FrameworkJ2EE Struts with Hibernate Framework
J2EE Struts with Hibernate Frameworkmparth
 
Classes and Objects
Classes and ObjectsClasses and Objects
Classes and ObjectsPrabu U
 
JAVA_Day1_BasicIntroduction.pptx
JAVA_Day1_BasicIntroduction.pptxJAVA_Day1_BasicIntroduction.pptx
JAVA_Day1_BasicIntroduction.pptxMurugesh33
 
JAVAPart1_BasicIntroduction.pptx
JAVAPart1_BasicIntroduction.pptxJAVAPart1_BasicIntroduction.pptx
JAVAPart1_BasicIntroduction.pptxMurugesh33
 

Similar to Introducing Java 7 (20)

All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1
 
Java 7 workshop
Java 7 workshopJava 7 workshop
Java 7 workshop
 
Evolution of java
Evolution of javaEvolution of java
Evolution of java
 
Java 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaJava 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kollipara
 
Presentation on Java Basic
Presentation on Java BasicPresentation on Java Basic
Presentation on Java Basic
 
Explore the history, versions and features of Java- a report by Pranav Mishra
Explore the history, versions and features of Java- a report by Pranav MishraExplore the history, versions and features of Java- a report by Pranav Mishra
Explore the history, versions and features of Java- a report by Pranav Mishra
 
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
Java Webinar #12: "Java Versions and Features: Since JDK 8 to 16"
 
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010
 
Jozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 UnconferenceJozi-JUG JDK 9 Unconference
Jozi-JUG JDK 9 Unconference
 
Java and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystemJava and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystem
 
Introduction of java
Introduction  of javaIntroduction  of java
Introduction of java
 
Evolution Of Java
Evolution Of JavaEvolution Of Java
Evolution Of Java
 
Java: Rumours of my demise are greatly exaggerated
Java: Rumours of my demise are greatly exaggeratedJava: Rumours of my demise are greatly exaggerated
Java: Rumours of my demise are greatly exaggerated
 
Open Source가 바꾼 자바
Open Source가 바꾼 자바Open Source가 바꾼 자바
Open Source가 바꾼 자바
 
J2EE Struts with Hibernate Framework
J2EE Struts with Hibernate FrameworkJ2EE Struts with Hibernate Framework
J2EE Struts with Hibernate Framework
 
Retour JavaOne 2009
Retour JavaOne 2009Retour JavaOne 2009
Retour JavaOne 2009
 
Classes and Objects
Classes and ObjectsClasses and Objects
Classes and Objects
 
JAVA_Day1_BasicIntroduction.pptx
JAVA_Day1_BasicIntroduction.pptxJAVA_Day1_BasicIntroduction.pptx
JAVA_Day1_BasicIntroduction.pptx
 
JAVAPart1_BasicIntroduction.pptx
JAVAPart1_BasicIntroduction.pptxJAVAPart1_BasicIntroduction.pptx
JAVAPart1_BasicIntroduction.pptx
 
Java Programming - 01 intro to java
Java Programming - 01 intro to javaJava Programming - 01 intro to java
Java Programming - 01 intro to java
 

More from Markus Eisele

Sustainable Software Architecture - Open Tour DACH '22
Sustainable Software Architecture - Open Tour DACH '22Sustainable Software Architecture - Open Tour DACH '22
Sustainable Software Architecture - Open Tour DACH '22Markus Eisele
 
Going from java message service (jms) to eda
Going from java message service (jms) to eda Going from java message service (jms) to eda
Going from java message service (jms) to eda Markus Eisele
 
Let's be real. Quarkus in the wild.
Let's be real. Quarkus in the wild.Let's be real. Quarkus in the wild.
Let's be real. Quarkus in the wild.Markus Eisele
 
What happens when unicorns drink coffee
What happens when unicorns drink coffeeWhat happens when unicorns drink coffee
What happens when unicorns drink coffeeMarkus Eisele
 
Stateful on Stateless - The Future of Applications in the Cloud
Stateful on Stateless - The Future of Applications in the CloudStateful on Stateless - The Future of Applications in the Cloud
Stateful on Stateless - The Future of Applications in the CloudMarkus Eisele
 
Java in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/MJava in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/MMarkus Eisele
 
Java in the Age of Containers and Serverless
Java in the Age of Containers and ServerlessJava in the Age of Containers and Serverless
Java in the Age of Containers and ServerlessMarkus Eisele
 
Migrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMigrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMarkus Eisele
 
Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19Markus Eisele
 
Cloud wars - A LavaOne discussion in seven slides
Cloud wars - A LavaOne discussion in seven slidesCloud wars - A LavaOne discussion in seven slides
Cloud wars - A LavaOne discussion in seven slidesMarkus Eisele
 
Streaming to a new Jakarta EE
Streaming to a new Jakarta EEStreaming to a new Jakarta EE
Streaming to a new Jakarta EEMarkus Eisele
 
Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained  Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained Markus Eisele
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolithMarkus Eisele
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolithMarkus Eisele
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithMarkus Eisele
 
Architecting for failure - Why are distributed systems hard?
Architecting for failure - Why are distributed systems hard?Architecting for failure - Why are distributed systems hard?
Architecting for failure - Why are distributed systems hard?Markus Eisele
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Markus Eisele
 
Nine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take youNine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take youMarkus Eisele
 
How lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsHow lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsMarkus Eisele
 
CQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersCQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersMarkus Eisele
 

More from Markus Eisele (20)

Sustainable Software Architecture - Open Tour DACH '22
Sustainable Software Architecture - Open Tour DACH '22Sustainable Software Architecture - Open Tour DACH '22
Sustainable Software Architecture - Open Tour DACH '22
 
Going from java message service (jms) to eda
Going from java message service (jms) to eda Going from java message service (jms) to eda
Going from java message service (jms) to eda
 
Let's be real. Quarkus in the wild.
Let's be real. Quarkus in the wild.Let's be real. Quarkus in the wild.
Let's be real. Quarkus in the wild.
 
What happens when unicorns drink coffee
What happens when unicorns drink coffeeWhat happens when unicorns drink coffee
What happens when unicorns drink coffee
 
Stateful on Stateless - The Future of Applications in the Cloud
Stateful on Stateless - The Future of Applications in the CloudStateful on Stateless - The Future of Applications in the Cloud
Stateful on Stateless - The Future of Applications in the Cloud
 
Java in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/MJava in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/M
 
Java in the Age of Containers and Serverless
Java in the Age of Containers and ServerlessJava in the Age of Containers and Serverless
Java in the Age of Containers and Serverless
 
Migrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMigrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systems
 
Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19
 
Cloud wars - A LavaOne discussion in seven slides
Cloud wars - A LavaOne discussion in seven slidesCloud wars - A LavaOne discussion in seven slides
Cloud wars - A LavaOne discussion in seven slides
 
Streaming to a new Jakarta EE
Streaming to a new Jakarta EEStreaming to a new Jakarta EE
Streaming to a new Jakarta EE
 
Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained  Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolith
 
Architecting for failure - Why are distributed systems hard?
Architecting for failure - Why are distributed systems hard?Architecting for failure - Why are distributed systems hard?
Architecting for failure - Why are distributed systems hard?
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Stay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Nine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take youNine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take you
 
How lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsHow lagom helps to build real world microservice systems
How lagom helps to build real world microservice systems
 
CQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersCQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java Developers
 

Recently uploaded

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

Introducing Java 7

  • 1. The 7th Generation JSR 336 Markus Eisele, http://blog.eisele.net 7/7/2011 1
  • 3. Agenda • Java – Introduction, History and Status • Dynamic Languages in the JVM • Small Language Enhancements • NIO 2 • Other News • Java Virtual Maschine Markus Eisele, http://blog.eisele.net 7/7/2011 3
  • 4. Introduction, History and Status • History • JSR 336 • OpenJDK • Schedule Markus Eisele, http://blog.eisele.net 7/7/2011 4
  • 5. History JDK/Year Comment JDK 1.1 (released on Feb 19,1997) Major additions included an extensive retooling of the AWT event model, inner classes added to the language, JavaBeans and JDBC. J2SE 1.2 (Dec 8, 1998) Reflection, a Collections framework, Java IDL (an IDL Codename Playground. implementation for CORBA interoperability), Swing graphical API, a Java Plug-in, JIT compiler. Bundling of the HotSpot JVM (the HotSpot JVM was first J2SE 1.3 (May 8, 2000) released in April, 1999 for the J2SE 1.2 JVM), JavaSound, Codename Kestrel. JNDI and JPDA. J2SE 1.4 (Feb 6, 2002) Developed under the Java Community Process as JSR 59. Codename Merlin. Regular expressions modeled after Perl, exception chaining, an integrated XML parser and XSLT processor (JAXP), and Java Web Start. J2SE 5.0 or 1.5 (Sep 30, 2004) Developed as JSR 176, New language features including the Codename Tiger. for-each loop, generics, autoboxing and var-args. Java SE 6 (Dec 11, 2006) Database manager, Use of scripting languages with the JVM, Codename Mustang Visual Basic language support. Support for pluggable annotations (JSR 269), GUI improvements, including native UI enhancements, improvements to the JPDA & JVM Tool Interface Java SE 7 — Codename Dolphin (Jul 28,2011) The Dolphin Project started in August 2006 Markus Eisele, http://blog.eisele.net 7/7/2011 5
  • 6. Plan A or Plan B – The Sundown ―It‘s been clear for some time that the most recent JDK 7 development schedule is, to put it mildly, unrealistic.‖ (Mark Reinhold, 2010/09/08) Plan A: JDK 7 (as defined by Sun) Mid 2012 JDK 7 (minus Lambda, Plan B: Mid 2011 Jigsaw, and part of Coin) JDK 8 (Lambda, Jigsaw, the Late 2012 rest of Coin, ++) http://mreinhold.org/blog/rethinking-jdk7 Markus Eisele, http://blog.eisele.net 7/7/2011 6
  • 7. Plan B! – Moving Java Foreward Java SE 7 — Mid 2011 Java SE 8 — Late 2012 • JSR 292: Support for Dynamically-Typed • JSR 294: Language and VM Support for Languages (―InvokeDynamic‖) • JSR 334: Small Language Enhancements Modular Programming (Project Coin) • JSR TBD: Platform Modularization • Upgrade Class-Loader Architecture • JSR TBD: Lambda Expressions, Default • Method to Close a URLClassLoader Methods, & Bulk Data Operations • Concurrency and Collections Updates (Project Lambda) (including the Fork/Join Framework) • Unicode 6.0 • JSR 308: Annotations on Java Types • Locale Enhancements (IETF BCP 47 & • JSR TBD: More Small Language UTR 35) Enhancements (Project Coin part 2) • JSR 203: More New I/O APIs (―NIO.2‖) • TLS 1.2 • Elliptic-Curve Cryptography (ECC) • JDBC 4.1 • Translucent & Shaped Windows • Heavyweight/Lightweight Component Mixing • Swing: Nimbus Look-and-Feel • Swing: JLayer Component • Update the XML Stack (JAXP, JAXB, & JAX-WS) http://mreinhold.org/blog/plan-b-details Markus Eisele, http://blog.eisele.net 7/7/2011 7
  • 8. JSR #336, 06.06.2011 http://jcp.org/en/jsr/results?id=5207 Markus Eisele, http://blog.eisele.net 7/7/2011 8
  • 9. What is the OpenJDK? • JDK7 is the second JDK done via the OpenJDK effort • OpenJDK is free, open-source and GPL licensed (+ CP-Exception) (http://openjdk.java.net/legal/gplv2+ce.html) • A lot of the improvements of JDK7 are separate projects on OpenJDK (http://openjdk.java.net/projects/) • Some say that projects go under the cap of OpenJDK to avoid the cumbersome and slow JCP process Markus Eisele, http://blog.eisele.net 7/7/2011 9
  • 10. OpenJDK Schedule Milestone Date # of Builds Comment M1 2009/01/02 – 2009/02/19 (b48) 7 builds M2 2009/02/20 – 2009/04/02 (b53) 5 builds M3 2009/04/03 – 2009/05/14 (b59) 6 builds JavaOne Preview M4 2009/06/05 – 2009/07/23 (b66) 7 builds M5 2009/07/24 – 2009/11/12 (b76) 10 builds M6 2009/11/27 – 2010/02/18 (b84) 8 builds M7 2010/02/26 – 2010/04/15 (b89) 5 builds M8 2010/04/16 – 2010/06/03 (b96) 7 builds M9 2010/06/04 – 2010/07/29 (b103) 7 builds M10 2010/07/30 – 2010/09/09 (b109) 6 builds M11 2010/09/10 – 2010/12/23 (b123) 14 builds Feature Complete M12 2010/12/31 – 2011/02/17 (b130) 7 builds Developer Preview 2011/04/12 Rampdown start: P1-P3 bugs only 2011/04/28 API/interface changes: Showstoppers only 2011/05/11 All targeted bugs addressed 2011/05/18 Bug fixes: Showstoppers only M13 2011/02/18 – 2011/06/02 (b145) 15 builds Last scheduled build - Final test cycle starts GA 2011/07/28 General Availability Markus Eisele, http://blog.eisele.net 7/7/2011 10
  • 11. Dynamic Languages in the JVM • The Da Vinci Maschine Project • JSR 292: Supporting Dynamically Typed Languages on the Java Plattform Markus Eisele, http://blog.eisele.net 7/7/2011 11
  • 12. The Da Vinci Maschine Project a multi-language renaissance for the Java™ Virtual Machine architecture • Da Vinci Machine sub-projects include: • Dynamic invocation • Continuations • Tail-calls • And interface injection • JVM has 4 bytecodes for method  invokevirtual - Invokes a method on a class. This is the typical type of method invocation.  invokeinterface - Invokes a method on an interface.  invokestatic - Invokes a static method on a class. This is the only kind of invocation that lacks a receiver argument.  invokespecial - Invokes a method without reference to the type of the receiver. Methods called this way can be constructors, superclass methods, or private methods. • + one more since 1.7:  invokedynamic Invokedynamic is the first new java bytecode since Java 1.0. Markus Eisele, http://blog.eisele.net 7/7/2011 12
  • 13. JSR 292: InvokeDynamic • The standard behind Da Vinci Machine • Natural continuation of JSR 223: Scripting for the Java Platform implemented in JDK • New JVM instruction invokedynamic  Allows extremely fast dynamic method invocation through method handles  Will enable JRuby, Jython, Groovy and other dynamic and scripting languages to call dynamic methods natively at bytecode level • Method handles  Lightweight references to a method – java.dyn.MethodHandle  Anonymous classes in the JVM • Autonomous methods  Methods that can be dynamically attached to an existing class at runtime • Interface injection  Acquiring base interfaces and method implementations at runtime • Continuations and stack introspection  Suspend / resume thread's execution stack • Tail calls and tail recursion http://jcp.org/en/jsr/detail?id=292 http://blogs.oracle.com/gbracha/resource/JAOO2005.pdf http://java.sun.com/developer/technicalArticles/DynTypeLang/index.html Markus Eisele, http://blog.eisele.net 7/7/2011 13
  • 14. Small Enhancements to the Java Programming Language • Strings in switch • Binary integral literals and underscore literals • Multi-Catch and more precise rethrow • Improved type interence for Gerneric instance creation (diamond) • Try-with-resources statement • Simplified varargs method invocation Markus Eisele, http://blog.eisele.net 7/7/2011 14
  • 15. Strings in Switch String s = ""; switch (s) { case “doag": out.println("1"); break; case “ukoug": out.println("2"); break; default: out.println("Unknown UG."); break; } Markus Eisele, http://blog.eisele.net 7/7/2011 15
  • 16. Underscores in Numbers public static void main(String... args) { // THE OLD WAY int oldBillion = 1000000000; // THE NEW WAY int newBillion = 1_000_000_000; } Markus Eisele, http://blog.eisele.net 7/7/2011 16
  • 17. Binary Literals public static void main(String... args) { // THE OLD WAY int oldBinary1 = 153; int oldBinary2 = 128 ^ 0 ^ 0 ^ 16 ^ 8 ^ 0 ^ 0 ^ 1; // THE NEW WAY int newBinary = 0b1001_1001; out.println(oldBinary1); out.println(oldBinary2); out.println(format("[0b1001_1001] is {0}", newBinary)); } Markus Eisele, http://blog.eisele.net 7/7/2011 17
  • 18. Multi-Catch and more precise rethrow try { throwAorB(); } catch (ExceptionA | ExceptionB ex) { throw ex; } try { throwAorB(); } catch (final Throwable t) { throw t; // ExceptionA or ExceptionB } Markus Eisele, http://blog.eisele.net 7/7/2011 18
  • 19. Improved Type Inference for Generic Instance Creation • This: Map<String, List<String>> anagrams = new HashMap<String, List<String>>(); • ….becomes: Map<String, List<String>> anagrams = new HashMap<>(); • <> is called the „Diamond― Operator Markus Eisele, http://blog.eisele.net 7/7/2011 19
  • 20. Try with resources private static void close(Closeable closable) { if (closable != null) { try { closable.close(); } catch (IOException e) { //optional System.err.println(e); } } } try (InputStream fis = new FileInputStream(source); OutputStream fos = new FileOutputStream(target)) { // do stuff } // closed here Markus Eisele, http://blog.eisele.net 7/7/2011 20
  • 21. More New I/O APIs for the Java Platform • java.io.File • java.nio.file.Path • java.nio.file.FileSystem • Other Usefull Methods Markus Eisele, http://blog.eisele.net 7/7/2011 21
  • 22. File File file = new java.io.File(“mypath/subPath"); Path path = file.toPath(); System.out.println("Created path (%s) of type %s%n”, path, path.getClass().getName()); Created path (myPathsubPath) of type sun.nio.fs.WindowsPath http://download.oracle.com/javase/tutorial/essential/io/fileio.html Markus Eisele, http://blog.eisele.net 7/7/2011 22
  • 23. Path Path path = java.nio.file.Paths.get("myPath", "subPath"); System.out.println("Created path (%s) of type %s%n", path, path.getClass().getName()); Created path (myPathsubPath) of type sun.nio.fs.WindowsPath Markus Eisele, http://blog.eisele.net 7/7/2011 23
  • 24. Filesystem Path path = FileSystems.getDefault().getPath("mypath", "subPath"); System.out.println("Created path (%s) of type %s%n", path, path.getClass().getName()); Created path (myPathsubPath) of type sun.nio.fs.WindowsPath Markus Eisele, http://blog.eisele.net 7/7/2011 24
  • 25. Determining MIME Types Path path = FileSystems.getDefault().getPath("java7.docx"); try { String type = Files.probeContentType(path); System.out.format("'%s' has the filetype '%s'.%n", path, type); } catch (IOException x) { System.err.println(x); } 'java7.docx' has the filetype 'application/vnd.openxmlformats- officedocument.wordprocessingml.document'. Markus Eisele, http://blog.eisele.net 7/7/2011 25
  • 26. Other news • Concurrency and collections updates (jsr166y) • Security • Internationalization • SCTP SDP TLS , , • JDBC 4.1 + RowSet 1.1 • Other other other Markus Eisele, http://blog.eisele.net 7/7/2011 26
  • 27. Concurrency and Collections Updates - JSR 166y • Java threads on diet • Thread class in Java is quite limited and doesn‘t support multi-cored hardware well enough. The fork/join framework is the answer. • introduces a layer of indirection between threads and tasks. • create a pool of threads the size of which corresponds to the number of processors/cores you have • and then start assigning tasks to the pool if (my portion of the work is small enough) do the work directly else split my work into two pieces invoke the two pieces and wait for the results • Wrap this code as a ForkJoinTask subclass, typically as one of its more specialized types RecursiveTask (which can return a result) or RecursiveAction. • After your ForkJoinTask is ready, create one that represents all the work to be done and pass it to the invoke() method of a ForkJoinPool instance. http://download.oracle.com/javase/tutorial/essential/concurrency/forkjoin.html Markus Eisele, http://blog.eisele.net 7/7/2011 27
  • 28. Concurrency and Collections Updates - JSR 166y run: Array size is 59764 Threshold is 10000 8 processors are available Image blur took 26 milliseconds. http://download.oracle.com/javase/tutorial/essential/concurrency/examples/ForkBlur.java Markus Eisele, http://blog.eisele.net 7/7/2011 28
  • 29. Security • Native ECC (Elliptic Curve Cryptography) • TLS (Transport Layer Security)1.2 • Stronger pseudorandom functions, additional (stronger) hash/signature algorithms, enhanced key exchange • ASLR (Address space layout randomization) • DEP (Data Execution Prevention) – Windows Only Markus Eisele, http://blog.eisele.net 7/7/2011 29
  • 30. Internationalization • Unicode 6.0 • IETF BCP47 and UTR35 • One language many character codes (Kanji, Hiragana, Katakana, Romaji) • Three-letter base language codes; three-digit region codes • Separate user locale and user interface locale • Currency data enhancements Markus Eisele, http://blog.eisele.net 7/7/2011 30
  • 31. More Network Stuff • SCTP (Stream Control Transmission Protocol) • used in Solaris • SDP (Sockets Direct Protocol) • Infiniband protocol • Redirection for Subprocess • You will be able to use Redirection for sub process, redirecting stdout and stderr for that sub process only. • Vista IPv6 stack Markus Eisele, http://blog.eisele.net 7/7/2011 31
  • 32. JDBC 4.1 • Using try-with-resources Statements to Automatically Close JDBC Resources public static void getCoffees(Connection con) throws SQLException { String query = "select COF_NAME, PRICE from COFFEES"; try (Statement stmt = con.createStatement()) { ResultSet rs = stmt.executeQuery(query); while (rs.next()) { String coffeeName = rs.getString("COF_NAME"); float price = rs.getFloat("PRICE"); System.out.println(coffeeName + ", " + price); } } } Markus Eisele, http://blog.eisele.net 7/7/2011 32
  • 33. RowSet 1.1 - RowSetFactory • You can use an instance of RowSetFactory to create a RowSet object. public void testJdbcRowSet(String username, String password) throws SQLException { RowSetFactory myRowSetFactory = null; JdbcRowSet jdbcRs = null; ResultSet rs = null; Statement stmt = null; try { myRowSetFactory = RowSetProvider.newFactory(); jdbcRs = myRowSetFactory.createJdbcRowSet(); jdbcRs.setUrl("jdbc:myDriver:myAttribute"); jdbcRs.setUsername(username); jdbcRs.setPassword(password); jdbcRs.setCommand("select COF_NAME, SUP_ID, PRICE, SALES, TOTAL from COFFEES"); jdbcRs.execute(); // ... } catch (Exception e) { // handle } } http://download.oracle.com/javase/tutorial/jdbc/basics/jdbcrowset.html Markus Eisele, http://blog.eisele.net 7/7/2011 33
  • 34. RowSet 1.1 – FilteredRowSet • A FilteredRowSet object lets you cut down the number of rows that are visible in a RowSet object so that you can work with only the data that is relevant to what you are doing. FilteredRowSet fRs = myRowSetFactory.createFilteredRowSet(); Range name = new Range(1, 10, "id"); fRs.setFilter(name); fRs.next(); // only ids from 1 to 10 will be returned http://download.oracle.com/javase/tutorial/jdbc/basics/filteredrowset.html Markus Eisele, http://blog.eisele.net 7/7/2011 34
  • 35. RowSet 1.1 – CachedRowSet • A CachedRowSet object is special in that it can operate without being connected to its data source, that is, it is a disconnected RowSet object. CachedRowSet cRs = myRowSetFactory.createCachedRowSet(); cRs.setCommand("select * from COFFEES"); cRs.execute(); // RowSet gets populated http://download.oracle.com/javase/tutorial/jdbc/basics/cachedrowset.html Markus Eisele, http://blog.eisele.net 7/7/2011 35
  • 36. Other other other • Added Nimbus L&F to the standard  Much better –modern- look than what was previously available • Platform APIs for Java 6u10 Graphics Features  Shaped and translucent windows • JXLayer core included in the standard  Formerly SwingLabs component • Allows easier layering inside of a component • Optimized Java2D Rendering Pipeline for X-Windows  Allows hardware accelerated remote X Markus Eisele, http://blog.eisele.net 7/7/2011 36
  • 37. Other other other • Better font configuration on Unix • Now uses standard Unix mechanism to find fonts. • JAXP 1.4.4, JAXWS 2.2 and JAXB 2.2 • Upgrade class-loader architecture • Modifications to the ClassLoader API and implementation to avoid deadlocks in non- hierarchical class-loader topologies • Close URLClassloaders • Allows applications to proactively clean up classloaders, freeing up native resources and unlocking JAR files • Javadoc support for stylesheets Markus Eisele, http://blog.eisele.net 7/7/2011 37
  • 38. What‗s up JavaDoc? http://download.java.net/jdk7/docs/api/ Markus Eisele, http://blog.eisele.net 7/7/2011 38
  • 39. Java Virtual Maschine • Garbage-First (GC1) • HotRockit Markus Eisele, http://blog.eisele.net 7/7/2011 39
  • 40. Garbage First (G1) • "server-style" GC • More predictable GC pauses • Better GC ergonomics • Low pauses without fragmentation • Parallelism and concurrency in collections • Better heap utilization G1 • -XX:+UseG1GC • -XX:MaxGCPauseMillis=50 • -XX:GCPauseIntervalMillis=200 • G1 is planned to replace CMS in the Hotspot JVM http://labs.oracle.com/jtech/pubs/04-g1-paper-ismm.pdf Markus Eisele, http://blog.eisele.net 7/7/2011 40
  • 41. JVM Convergence – Project HotRockit • 2 teams enter, one team leave …. • Hotspot • Market share • Client and Server version • Quality • JRockit • Value adds • JRockit Mission Control • JRockit Flight Recorder • JRockit Virtual Edition • Optimized for the Oracle stack • 1+1 = 1.15 • Lot of common features in both the JVMs • converging them will add roughly 15% new features • First JRockit code check in to OpenJDK • Wed Feb 02 13:23:17 2011 +0100 • Changing 1652 files • Done by Stefan Karlsson Markus Eisele, http://blog.eisele.net 7/7/2011 41
  • 42. JVM Convergence – Project HotRockit Hopefully, the convergence will be completed by JDK 8 GA, but no promises as of today! JDK 7 GA JDK 7 Update X JDK 7 Update Y JDK 8 GA • Java SE 7 Support • Performance • More performance • Java SE 8 Support • Rebranding • Initial JRockit • Improved command • All performance Flight Recorder line servicability features from • No PermGen Support (jrcmd) JRockit ported (stretch goal) • G1 complete as • I/O Performance • Improved JMX CMS replacement • JIT Agent • Non-contiguous Optimizations • Command line heaps • All servicability servicability tool (jrcmd) • Complete JRockit features from Flight Recorder JRockit ported • JRockit Mission Support • Compiler Control Console support • JRockit Virtual controls Edition Support • Verbose logging • Soft Real Time GC • JRockit Mission Control Memleak Tool Support = Commercial Add-On Markus Eisele, http://blog.eisele.net 7/7/2011 42
  • 43. Hate Java? You‗re fighting the wrong battle. • Java has been widely • Tell me, what do the successful for a number of following have in reasons: common? • It‘s widely accepted in the established companies. • Paying with a credit card. • It‘s one of the fastest • Going to the emergency languages. room. • It‘s one of the most secure • Adjusting your 401k. languages. • Synchronization primitives are • Using your insurance card built into the language. at the dentist. • It‘s platform independent. • Shopping around for the • Hotspot is open source. best car insurance. • Thousands of vendors exist for • A BNSF train pulling a a multitude of Java products. Union Pacific coal car. • Thousands of open source • Transferring money libraries exist for Java. • Community governance via between banks. that JCP (pre-Oracle). • Filling a prescription. http://www.javacodegeeks.com/2011/06/hate-java-fight-wrong-battle.html Markus Eisele, http://blog.eisele.net 7/7/2011 43
  • 44. Thank your for your attention! Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names appearing on the slides may be trademarks of their respective owners. The development, release, and timing of any features or functionality described for Oracle‘s products remains at the sole discretion of Oracle. Markus Eisele, http://blog.eisele.net 7/7/2011 44