Java 7 New Features
Diamond Operator




Map<String, List<Offer>> offers = new HashMap<>();
Strings in switch statements
String status = offer.getStatus();
switch(status) {
case NEW:
   newOffer(offer);             Case Label
  break;
case PENDING:               toString()
   pendingOffer(offer);
  break;
default:
  break;
}
Automatic Resource
                Management

 Automatic close                             Multiple Resources
try(FileOutputStream fos = new FileOutputStream(“movies.txt”);
DataOutputStream dos = new DataOutputStream(fos)) {
   dos.writeUTF(“Java 7 New Features”)
} catch (IOException e) {
   ...
}
              Implements java.lang.AutoCloseable


      try-with-resources statement
Numeric literals with
   underscore



     int thousand = 1_000;
    int million = 1_000_000;
Binary literals




      int two = 0b10;
 int forty = 0b101_000;
Improved exception handling



try {
   methodThatThrowsThreeExceptions();
} catch (ExceptionOne | ExceptionTwo | ExceptionThree e) {
   ...
}



                     Multi-catch block
NIO 2.0
●   Working with Path: Path, Paths,
    FileSystem, FileSystems, ...
●   File change notifications: WatchService,
    WatchKey
Fork and Join Framework
●   ForkJoinPool        int numberOfProcessors =
                        Runtime.getRunTime().availableProcessors();
●    RecursiveAction    ForkJoinPool pool = new
    (void compute())    ForkJoinPool(numberOfProcessors)

                        …
●    RecursiveTask<V>
                        public class BigProblemTask extends
    (V compute())       RecursiveAction {

                            @Override

                            protected void compute() {

                            // your problem invocation goes here

                            }

                        }

                        …

                        pool.invoke(task);

Java 7 new features

  • 1.
    Java 7 NewFeatures
  • 2.
  • 3.
    Strings in switchstatements String status = offer.getStatus(); switch(status) { case NEW: newOffer(offer); Case Label break; case PENDING: toString() pendingOffer(offer); break; default: break; }
  • 4.
    Automatic Resource Management Automatic close Multiple Resources try(FileOutputStream fos = new FileOutputStream(“movies.txt”); DataOutputStream dos = new DataOutputStream(fos)) { dos.writeUTF(“Java 7 New Features”) } catch (IOException e) { ... } Implements java.lang.AutoCloseable try-with-resources statement
  • 5.
    Numeric literals with underscore int thousand = 1_000; int million = 1_000_000;
  • 6.
    Binary literals int two = 0b10; int forty = 0b101_000;
  • 7.
    Improved exception handling try{ methodThatThrowsThreeExceptions(); } catch (ExceptionOne | ExceptionTwo | ExceptionThree e) { ... } Multi-catch block
  • 8.
    NIO 2.0 ● Working with Path: Path, Paths, FileSystem, FileSystems, ... ● File change notifications: WatchService, WatchKey
  • 9.
    Fork and JoinFramework ● ForkJoinPool int numberOfProcessors = Runtime.getRunTime().availableProcessors(); ● RecursiveAction ForkJoinPool pool = new (void compute()) ForkJoinPool(numberOfProcessors) … ● RecursiveTask<V> public class BigProblemTask extends (V compute()) RecursiveAction { @Override protected void compute() { // your problem invocation goes here } } … pool.invoke(task);