SlideShare a Scribd company logo
Java 7
came with
super power
agenda :
>   what is new in literals?
>   switch case with string
>   diamond operator in collections
>   improved exception handling
>   automatic resource management
>   new features in nio api
>   join&forks in threads
>   swing enhancements
>   dynamic-typed languages
>   proposal for etrali
>   queries ..?




      JAVA 7                     2
what is new in literals?

 numeric literals with underscore:

underscore is allowed only for the numeric.
underscore is used identifying the numeric value.

For example:
1000 will be declared as int amount = 1_000.
Then with 1million? How easy it will to understand?




   JAVA 7                       3
 binary literals for numeric:

in java6, numeric literal can declared as decimal & hexadecimal.
in java7, we can declare with binary value but it should start with “0b”
                                                                 New
for example:                                                     feature

> Int twelve = 12; // decimal
> int sixPlusSix = 0xC; //hexadecimal
> int fourTimesThree = 0b1100;.//Binary value




   JAVA 7                         4
switch case with string :

> if want the compare the string then we should use the if-else
> now in java7, we can use the switch to compare.

              JAVA6                                     JAVA7
Public void processTrade(Trade t) {       Public void processTrade(Trade t) {
String status = t.getStatus();            Switch (t.getStatus()) {
If (status.equals(“NEW”)                  Case NEW: newTrade(t);
    newTrade(t);                                      break;
Else if (status.equals(“EXECUTE”){        Case EXECUTE: executeTrader(t);
    executeTrade(t);                                 break;
Else                                      Default : pendingTrade(t);
    pendingTrade(t);                      }
}




   JAVA 7                             5
diamond operator in collections :

> java6, List<Trade> trader = new ArrayList<Trade>();
> Java7, List<Trade> trader = new ArrayList<>();

> How cool is that? You don't have to type the whole list of types for
  the instantiation. Instead you use the <> symbol, which is called
  diamond operator.

> Note that while not declaring the diamond operator is legal, as
  trades = new ArrayList(), it will make the compiler generate a
  couple of type-safety warnings.




   JAVA 7                        6
performance improved in collections :

> By using the Diamond operator it improve the performance
  increases compare to

> Performance between the JAVA5 to JAVA6 -- 15%

> Performance between the JAVA6 to JAVA7 -- 45% as be
                                             45%
  increased.

> this test percentage was given by ibm company.




   JAVA 7                      7
kicked
                                                   out
Improved exception handling :
> java 7 introduced multi-catch functionality to catch multiple
  exception types using a single catch block.
> the multiple exceptions are caught in one catch block by using a
  '|' operator.
> this way, you do not have to write dozens of exception catches.
> however, if you have bunch of exceptions that belong to different
  types, then you could use "multi -catch" blocks too.

 The following snippet illustrates this:
try {
              methodThatThrowsThreeExceptions();
     } catch (ExceptionOne e | ExceptionTwo | ExceptionThree e) {
          // log and deal with ExceptionTwo and ExceptionThree
}

   JAVA 7                       8
automatic resource management :
> resource such as the connection, files, input/output resource ect.,
  should be closed manually by developer.
> usually use try-finally block close the respective resource.
> in java7, the resource are closed automatically. By using the
  AutoCloseable interface .
> It will close resource the automatically when it come out of the try
  block need for the close resource by the developer.

try (FileOutputStream fos = new FileOutputStream("movies.txt");
         DataOutputStream dos = new DataOutputStream(fos)) {
         dos.writeUTF("Java 7 Block Buster");
  } catch (IOException e) {                                 no need to
            // log the exception                            close
                                                            resources
  }



  JAVA 7                        9
New input/output api [jsr-203] :

> the NIO 2.0 has come forward with many enhancements. It's also
  introduced new classes to ease the life of a developer when
  working with multiple file systems.

> a new java.nio.file package consists of classes and interfaces
  such as Path, Paths, FileSystem, FileSystems and others.

> File.delete(), files.deleteIfExists(path),file.move(..) & file.copy(..)
  to act on a file system efficiently.

> one of my favorite improvements in the JDK 7 release is the
  addition of File Change Notifications.


   JAVA 7                          10
> this has been a long-awaited feature that's finally carved into NIO
  2.0.
> the WatchService API lets you receive notification events upon
  changes to the subject (directory or file).

> the steps involved in implementing the API are:

1. create a WatchService. This service consists of a queue to hold
    WatchKeys
2. register the directory/file you wish to monitor with this
    WatchService
3. while registering, specify the types of events you wish to receive
    (create, modify or delete events)
4. you have to start an infinite loop to listen to events
5. when an event occurs, a WatchKey is placed into the queue
6. consume the WatchKey and invoke queries on it

   JAVA 7                        11
fork & join in thread [jsr-166] :

> What is concurrency?

> The fork-join framework allows you to distribute a certain task on
  several workers and when wait for the result.

> fork&join should extend the RecursiveAction. RecursiveAction is
  abstract class should implement the compute().

> forkJoinPool implements the core work-stealing algorithm and can
   execute forktasks.

> goal is to improve the performance of the application.


   JAVA 7                       12
dynamic-typed language[jsr-292] :

> supporting Dynamically Typed Languages on the Java
  Platform, which should ensure that dynamically typed languages
  run faster in the JVM than they did previously.

> languages like Ruby, or Groovy, will now execute on the JVM
  with performance at or close to that of native Java code

> what is static typed language?
> what is dynamic typed language?




   JAVA 7                     13
swing :

JLAYER:

> JLAYER class is a flexible & powerful decorator for swing
  components.

> It enables to draw on components & respond to component
  events without modifying the underlying component directly.




   JAVA 7                      14
java8

> Java8 [mid of 2013]
2. Language-level support for lambda expressions(->).
3. Closure [not yet confirmed]
4. Tight integration with JavaFX




                               15
Proposal for etrali on up gradation :

 what are the befits for Etrali ?
1. increasing the performance up to 20% to 50%
2. size of the code will be reduced
3. reduce heap space or memory leak exceptions
4. project life span will increase.

 what are the benefits for our organization ?
1. using the updated technologies
2. we will get some more working days on Etrali
3. profit on worked days




   JAVA 7                      16
sample code




         JDK7Samples.rar

               17
references :

> http://www.oracle.com/technetwork/articles/java/fork-
  join-422606.html
> http://docs.oracle.com/javase/tutorial/essential/concurrency/forkjo
  in.html
> http://docs.oracle.com/javase/7/docs
> http://geeknizer.com/java-7-whats-new-performance-
  benchmark-1-5-1-6-1-7/
> http://docs.oracle.com/javase/tutorial/uiswing/misc/jlayer.html
> http://rajakannappan.blogspot.in/2010/05/new-features-in-java-7-
  dolphin.html




   JAVA 7                       18
Queries




         ANY QUERIES ..?


JAVA 7            19
THANK YOU
         Thank you




Java 7
> Static typed programming languages are those in which variables
  need not be defined before they’re used. This implies that static
  typing has to do with the explicit declaration (or initialization) of
  variables before they’re employed. Java is an example of a static
  typed language; C and C++ are also static typed languages. Note
  that in C (and C++ also), variables can be cast into other types,
  but they don’t get converted; you just read them assuming they
  are another type.
> Static typing does not imply that you have to declare all the
  variables first, before you use them; variables maybe be
  initialized anywhere, but developers have to do so before they
  use those variables anywhere. Consider the following example:
> /* C code */
> static int num, sum; // explicit declaration
> num = 5; // now use the variables
   JAVA 7                          21
> sum = 10;
> http://www.sitepoint.com/typing-versus-dynamic-typing/
> Dynamic typed programming languages are those languages in
  which variables must necessarily be defined before they are
  used. This implies that dynamic typed languages do not require
  the explicit declaration of the variables before they’re used.
  Python is an example of a dynamic typed programming language,
  and so is PHP. Consider the following example:




   JAVA 7                     22

More Related Content

PDF
02 basic java programming and operators
PDF
Java Programming - 01 intro to java
ODP
From Java 6 to Java 7 reference
PPT
比XML更好用的Java Annotation
PPTX
Java 9 features
PPTX
Getting started with Java 9 modules
PDF
Complete Java Course
PPTX
Java 10, Java 11 and beyond
02 basic java programming and operators
Java Programming - 01 intro to java
From Java 6 to Java 7 reference
比XML更好用的Java Annotation
Java 9 features
Getting started with Java 9 modules
Complete Java Course
Java 10, Java 11 and beyond

What's hot (20)

PPT
PPTX
모던자바의 역습
PPTX
Java and OpenJDK: disecting the ecosystem
PPTX
Jdk 7 4-forkjoin
PDF
Bytecode manipulation with Javassist and ASM
PPT
Spring AOP
PPTX
The Java memory model made easy
PPTX
J2ee standards > CDI
PDF
Java EE 與 雲端運算的展望
PDF
Java11 New Features
PPTX
Java 7 & 8 New Features
PDF
Smart Migration to JDK 8
PPTX
Byte code field report
PPT
02 Hibernate Introduction
PPTX
Jersey framework
PPTX
The definitive guide to java agents
PPT
Java Tut1
PPT
Javatut1
DOCX
Advance Java Programs skeleton
모던자바의 역습
Java and OpenJDK: disecting the ecosystem
Jdk 7 4-forkjoin
Bytecode manipulation with Javassist and ASM
Spring AOP
The Java memory model made easy
J2ee standards > CDI
Java EE 與 雲端運算的展望
Java11 New Features
Java 7 & 8 New Features
Smart Migration to JDK 8
Byte code field report
02 Hibernate Introduction
Jersey framework
The definitive guide to java agents
Java Tut1
Javatut1
Advance Java Programs skeleton
Ad

Viewers also liked (8)

DOCX
Siquar báo giá 2014
PDF
DDL " disposizioni urgenti per ilrilancio dell'economia" un esempio di come n...
PPTX
Moleskine redditi 2010
PPTX
Green Booking Riviera Romagnola - Info Alberghi
DOCX
Siquar báo giá 2014.1
PPTX
Presentazione analisi "tempi" procedimenti amministrativi comune Fabriano
PDF
Sentenza Tar Marche per Nuova casa riposo da realizzare mediante P.F.
PPTX
Hotel Web Marketing
Siquar báo giá 2014
DDL " disposizioni urgenti per ilrilancio dell'economia" un esempio di come n...
Moleskine redditi 2010
Green Booking Riviera Romagnola - Info Alberghi
Siquar báo giá 2014.1
Presentazione analisi "tempi" procedimenti amministrativi comune Fabriano
Sentenza Tar Marche per Nuova casa riposo da realizzare mediante P.F.
Hotel Web Marketing
Ad

Similar to Java7 (20)

PPTX
Core Java introduction | Basics | free course
PPTX
Java 7 & 8
PPTX
Software Uni Conf October 2014
PDF
College Project - Java Disassembler - Description
PDF
Java 8 Overview
PPTX
Jsp and jstl
PPTX
brief introduction to core java programming.pptx
PDF
Java programming basics
PPTX
What is Java? Presentation On Introduction To Core Java By PSK Technologies
PDF
Swift 2.0: Apple’s Advanced Programming Platform for Developers
PDF
Comprehensive JavaScript Cheat Sheet for Quick Reference and Mastery
PDF
JavaScript Cheatsheets with easy way .pdf
PDF
Bt0074 oops with java2
PDF
Introduction to java
DOC
Java Servlets & JSP
PPTX
Java/Servlet/JSP/JDBC
PPT
Java tut1 Coderdojo Cahersiveen
PPT
Java tut1
PPT
Java tut1
PPT
Java_Tutorial_Introduction_to_Core_java.ppt
Core Java introduction | Basics | free course
Java 7 & 8
Software Uni Conf October 2014
College Project - Java Disassembler - Description
Java 8 Overview
Jsp and jstl
brief introduction to core java programming.pptx
Java programming basics
What is Java? Presentation On Introduction To Core Java By PSK Technologies
Swift 2.0: Apple’s Advanced Programming Platform for Developers
Comprehensive JavaScript Cheat Sheet for Quick Reference and Mastery
JavaScript Cheatsheets with easy way .pdf
Bt0074 oops with java2
Introduction to java
Java Servlets & JSP
Java/Servlet/JSP/JDBC
Java tut1 Coderdojo Cahersiveen
Java tut1
Java tut1
Java_Tutorial_Introduction_to_Core_java.ppt

Recently uploaded (20)

PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
History, Philosophy and sociology of education (1).pptx
PPTX
UNIT III MENTAL HEALTH NURSING ASSESSMENT
PDF
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PPTX
master seminar digital applications in india
PDF
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
PDF
Trump Administration's workforce development strategy
PDF
LDMMIA Reiki Yoga Finals Review Spring Summer
DOC
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
PPTX
Cell Types and Its function , kingdom of life
PDF
Computing-Curriculum for Schools in Ghana
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
Chinmaya Tiranga quiz Grand Finale.pdf
PDF
Paper A Mock Exam 9_ Attempt review.pdf.
PDF
Updated Idioms and Phrasal Verbs in English subject
PDF
A systematic review of self-coping strategies used by university students to ...
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
Microbial diseases, their pathogenesis and prophylaxis
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Final Presentation General Medicine 03-08-2024.pptx
History, Philosophy and sociology of education (1).pptx
UNIT III MENTAL HEALTH NURSING ASSESSMENT
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
master seminar digital applications in india
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
Trump Administration's workforce development strategy
LDMMIA Reiki Yoga Finals Review Spring Summer
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
Cell Types and Its function , kingdom of life
Computing-Curriculum for Schools in Ghana
STATICS OF THE RIGID BODIES Hibbelers.pdf
Chinmaya Tiranga quiz Grand Finale.pdf
Paper A Mock Exam 9_ Attempt review.pdf.
Updated Idioms and Phrasal Verbs in English subject
A systematic review of self-coping strategies used by university students to ...
2.FourierTransform-ShortQuestionswithAnswers.pdf

Java7

  • 2. agenda : > what is new in literals? > switch case with string > diamond operator in collections > improved exception handling > automatic resource management > new features in nio api > join&forks in threads > swing enhancements > dynamic-typed languages > proposal for etrali > queries ..? JAVA 7 2
  • 3. what is new in literals?  numeric literals with underscore: underscore is allowed only for the numeric. underscore is used identifying the numeric value. For example: 1000 will be declared as int amount = 1_000. Then with 1million? How easy it will to understand? JAVA 7 3
  • 4.  binary literals for numeric: in java6, numeric literal can declared as decimal & hexadecimal. in java7, we can declare with binary value but it should start with “0b” New for example: feature > Int twelve = 12; // decimal > int sixPlusSix = 0xC; //hexadecimal > int fourTimesThree = 0b1100;.//Binary value JAVA 7 4
  • 5. switch case with string : > if want the compare the string then we should use the if-else > now in java7, we can use the switch to compare. JAVA6 JAVA7 Public void processTrade(Trade t) { Public void processTrade(Trade t) { String status = t.getStatus(); Switch (t.getStatus()) { If (status.equals(“NEW”) Case NEW: newTrade(t); newTrade(t); break; Else if (status.equals(“EXECUTE”){ Case EXECUTE: executeTrader(t); executeTrade(t); break; Else Default : pendingTrade(t); pendingTrade(t); } } JAVA 7 5
  • 6. diamond operator in collections : > java6, List<Trade> trader = new ArrayList<Trade>(); > Java7, List<Trade> trader = new ArrayList<>(); > How cool is that? You don't have to type the whole list of types for the instantiation. Instead you use the <> symbol, which is called diamond operator. > Note that while not declaring the diamond operator is legal, as trades = new ArrayList(), it will make the compiler generate a couple of type-safety warnings. JAVA 7 6
  • 7. performance improved in collections : > By using the Diamond operator it improve the performance increases compare to > Performance between the JAVA5 to JAVA6 -- 15% > Performance between the JAVA6 to JAVA7 -- 45% as be 45% increased. > this test percentage was given by ibm company. JAVA 7 7
  • 8. kicked out Improved exception handling : > java 7 introduced multi-catch functionality to catch multiple exception types using a single catch block. > the multiple exceptions are caught in one catch block by using a '|' operator. > this way, you do not have to write dozens of exception catches. > however, if you have bunch of exceptions that belong to different types, then you could use "multi -catch" blocks too. The following snippet illustrates this: try { methodThatThrowsThreeExceptions(); } catch (ExceptionOne e | ExceptionTwo | ExceptionThree e) { // log and deal with ExceptionTwo and ExceptionThree } JAVA 7 8
  • 9. automatic resource management : > resource such as the connection, files, input/output resource ect., should be closed manually by developer. > usually use try-finally block close the respective resource. > in java7, the resource are closed automatically. By using the AutoCloseable interface . > It will close resource the automatically when it come out of the try block need for the close resource by the developer. try (FileOutputStream fos = new FileOutputStream("movies.txt"); DataOutputStream dos = new DataOutputStream(fos)) { dos.writeUTF("Java 7 Block Buster"); } catch (IOException e) { no need to // log the exception close resources } JAVA 7 9
  • 10. New input/output api [jsr-203] : > the NIO 2.0 has come forward with many enhancements. It's also introduced new classes to ease the life of a developer when working with multiple file systems. > a new java.nio.file package consists of classes and interfaces such as Path, Paths, FileSystem, FileSystems and others. > File.delete(), files.deleteIfExists(path),file.move(..) & file.copy(..) to act on a file system efficiently. > one of my favorite improvements in the JDK 7 release is the addition of File Change Notifications. JAVA 7 10
  • 11. > this has been a long-awaited feature that's finally carved into NIO 2.0. > the WatchService API lets you receive notification events upon changes to the subject (directory or file). > the steps involved in implementing the API are: 1. create a WatchService. This service consists of a queue to hold WatchKeys 2. register the directory/file you wish to monitor with this WatchService 3. while registering, specify the types of events you wish to receive (create, modify or delete events) 4. you have to start an infinite loop to listen to events 5. when an event occurs, a WatchKey is placed into the queue 6. consume the WatchKey and invoke queries on it JAVA 7 11
  • 12. fork & join in thread [jsr-166] : > What is concurrency? > The fork-join framework allows you to distribute a certain task on several workers and when wait for the result. > fork&join should extend the RecursiveAction. RecursiveAction is abstract class should implement the compute(). > forkJoinPool implements the core work-stealing algorithm and can execute forktasks. > goal is to improve the performance of the application. JAVA 7 12
  • 13. dynamic-typed language[jsr-292] : > supporting Dynamically Typed Languages on the Java Platform, which should ensure that dynamically typed languages run faster in the JVM than they did previously. > languages like Ruby, or Groovy, will now execute on the JVM with performance at or close to that of native Java code > what is static typed language? > what is dynamic typed language? JAVA 7 13
  • 14. swing : JLAYER: > JLAYER class is a flexible & powerful decorator for swing components. > It enables to draw on components & respond to component events without modifying the underlying component directly. JAVA 7 14
  • 15. java8 > Java8 [mid of 2013] 2. Language-level support for lambda expressions(->). 3. Closure [not yet confirmed] 4. Tight integration with JavaFX 15
  • 16. Proposal for etrali on up gradation :  what are the befits for Etrali ? 1. increasing the performance up to 20% to 50% 2. size of the code will be reduced 3. reduce heap space or memory leak exceptions 4. project life span will increase.  what are the benefits for our organization ? 1. using the updated technologies 2. we will get some more working days on Etrali 3. profit on worked days JAVA 7 16
  • 17. sample code JDK7Samples.rar 17
  • 18. references : > http://www.oracle.com/technetwork/articles/java/fork- join-422606.html > http://docs.oracle.com/javase/tutorial/essential/concurrency/forkjo in.html > http://docs.oracle.com/javase/7/docs > http://geeknizer.com/java-7-whats-new-performance- benchmark-1-5-1-6-1-7/ > http://docs.oracle.com/javase/tutorial/uiswing/misc/jlayer.html > http://rajakannappan.blogspot.in/2010/05/new-features-in-java-7- dolphin.html JAVA 7 18
  • 19. Queries ANY QUERIES ..? JAVA 7 19
  • 20. THANK YOU Thank you Java 7
  • 21. > Static typed programming languages are those in which variables need not be defined before they’re used. This implies that static typing has to do with the explicit declaration (or initialization) of variables before they’re employed. Java is an example of a static typed language; C and C++ are also static typed languages. Note that in C (and C++ also), variables can be cast into other types, but they don’t get converted; you just read them assuming they are another type. > Static typing does not imply that you have to declare all the variables first, before you use them; variables maybe be initialized anywhere, but developers have to do so before they use those variables anywhere. Consider the following example: > /* C code */ > static int num, sum; // explicit declaration > num = 5; // now use the variables JAVA 7 21 > sum = 10;
  • 22. > http://www.sitepoint.com/typing-versus-dynamic-typing/ > Dynamic typed programming languages are those languages in which variables must necessarily be defined before they are used. This implies that dynamic typed languages do not require the explicit declaration of the variables before they’re used. Python is an example of a dynamic typed programming language, and so is PHP. Consider the following example: JAVA 7 22

Editor's Notes