Wednesday Jul 31, 2013

JDK 8 Early Access Developer Documentation Updated

Documentation changes to the Java Developer Guides and The Java Tutorials that reflect new features in the upcoming release of the Java SE Development Kit 8 (JDK 8) are highlighted by the documentation team regularly. Some early access material in The Java Tutorials was already covered earlier this year.

We are enhancing and updating the developer guides with new content as well. You can find all the updated documentation on the JDK 8 Early Access Documentation web site. Some of the changes so far are listed below with links to relevant documents and lessons.

Security Enhancements

The following enhancements affect the security features in Java SE:

Server Name Indication Extension for Server Applications

The Server Name Indication (SNI) extension is a feature that extends the SSL/TLS protocols to indicate what server name the client is attempting to connect to during handshaking. In the Java Secure Socket Extension (JSSE) API for JDK 7, the SunJSSE provider has enabled SNI extension for client applications. JDK 8 supports the SNI extension for server applications as well. Servers can use the SNI to decide if specific SSLSocket or SSLEngine instances should accept a connection.

For information and examples, see the Server Name Indication (SNI) Extension section in the JSSE Reference Guide.

New PKIXRevocationChecker Class

The PKIXRevocationChecker class checks the revocation status of certificates with the X.509-based public-key infrastructure (PKIX) algorithm. It supports best-effort checking, single-certificate checking, and mechanism-specific options and parameters.

For more information, see the Java PKI API Programmer’s Guide.

SHA-224 Message Digests

The cryptographic algorithms in JDK 8 have been enhanced with the SHA-224 variant of the SHA-2 family of message-digest implementations. For more information, see the following updated documentation:

Stronger Algorithms for Password-Based Encryption

Several AES password-based encryption (PBE) algorithms, such as PBEWithSHA256AndAES_128 and PBEWithSHA512AndAES_256, have been added to the SunJCE provider. For more information, see the Oracle Providers Documentation.

Enhanced Support for NSA Suite B Cryptography

This enhancement includes the addition of SHA-224, SHA-256, SHA-384, and SHA-512 message digests, as well as SHA224withDSA and SHA256withDSA signatures. Also, the keysize limit for the Diffie-Hellman algorithm has been increased from 1024 to 2048.

For more information, see the Oracle Providers Documentation and the Standard Algorithm Name Documentation.

Internationalization Enhancements

The following enhancements affect the internationalization features in Java SE:

Installation of Custom Resources as Extensions

The java.util.spi.ResourceBundleControlProvider interface enables you to change how the ResourceBundle.getBundle() method loads resource bundles. ResourceBundleControlProvider is a service provider interface (SPI). SPIs enable you to create extensible applications, which are those that you can extend easily without modifying their original code base.

For more information, see the Installing a Custom Resource Bundle as an Extension lesson in The Java Tutorials.

New Calendar and Locale APIs

New and updated Locale and Calendar APIs in JDK 8 support enhancements in the Unicode Common Locale Data Repository (CLDR) project. For a list of the APIs, see the Internationalization Enhancements page.

Tools Enhancements

The following enhancements affect the tools and utilities supplied with the JDK:

Removal of the Old Java Plug-In

The old Java Plug-in (the version available prior to Java SE 6 Update 10) has been removed. The Java Rich Internet Applications Guide has been rewritten to reflect this.

Pack200 Engine Updates

In Java SE 8, the Java class file format has been updated to reflect changes introduced by JSR 292: Supporting Dynamically Typed Languages on the Java Platform. Consequently, the Pack200 engine has been updated accordingly to ensure that class files are compressed effectively. In particular, the Pack200 engine now recognizes constant pool entries and new bytecodes introduced by JSR 292. As a result, compressed files created with this version of the pack200 tool will not be compatible with older versions of the unpack200 tool.

For more information, see the Compression Formats for Network Deployment section of the Java Rich Internet Applications Guide.

Language Enhancements

The following enhancements affect the Java language.

Lambda Expressions

Lambda expressions enable you to treat functionality as a method argument, or code as data. They also let you express instances of single-method classes more compactly.

For more information, see the Lambda Expressions lesson in The Java Tutorials.

Parallel Array Sorting

JDK 7 introduced the Fork/Join framework for lightweight data parallelism, but users have to implement their own algorithms for simple/common tasks. In JDK 8, the Fork/Join framework is used to provide a standard implementation of parallel sorting for arrays.

For more information, see the Fork/Join and Arrays lessons in The Java Tutorials.

Annotations API Updates

Java SE 8 includes significant updates to the Annotations API:

  • It is now possible to apply the same annotation type more than once to the same declaration or type use. This feature is called repeating annotations.
  • It is now possible to apply an annotation anywhere a type is used, not just on a declaration. Used in conjunction with a pluggable type system, this feature allows for improved type checking of your code.

For more information, see the Annotations lesson in The Java Tutorials.

Thursday Jul 18, 2013

Learn Java Over The Summer

Hello Students! Hope you are enjoying your summer vacation! Summer trips are done, and I bet you've asked your parents the question they dread most - "I am bored. What do I do now?" :-)

If you are looking for ways to get the brain's juices flowing or just getting a head start on a high school AP computer science course, Java Tutorials are a great resource!

The following learning paths are perfect for students in middle school or high school.

Get set, go!

See the trails mentioned next for information about installing an IDE, learning the basics, and writing code with the help of code examples.

  • Getting Started – An introduction to Java technology and lessons on installing Java development software and using it to create a simple program.
  • Learning the Java Language – Lessons describing essential concepts such as classes, objects, inheritance, datatypes, conditions, loops, control flow, and more. You can skip over the generics lesson at the beginning and come back to it later after you feel comfortable with the language.
  • Essential Java Classes – Lessons on exceptions, basic input/output, concurrency, regular expressions, and the platform environment.

I am a visual person!

Check out JavaFX and SceneBuilder documentation to learn about developing animations and cool new apps!

I love it! What's next?

See the Java Tutorials Learning Paths page to learn more!

Good luck!

- Sowmya

Blog about Java technology documentation and news about Java releases.


« July 2013 »