Role in IT decision-making process:Align Business & IT GoalsCreate IT StrategyDetermine IT NeedsManage Vendor RelationshipsEvaluate/Specify Brands or VendorsOther RoleAuthorize PurchasesNot Involved

Work Phone:

Company:

Company Size:

Industry:

Street Address

City:

Zip/postal code

State/Province:

Country:

Occasionally, we send subscribers special offers from select partners. Would you like to receive these special partner offers via e-mail?YesNo

Your registration with Eweek will include the following free email newsletter(s):News & Views

By submitting your wireless number, you agree that eWEEK, its related properties, and vendor partners providing content you view may contact you using contact center technology. Your consent is not required to view content or use site features.

By clicking on the "Register" button below, I agree that I have carefully read the Terms of Service and the Privacy Policy and I agree to be legally bound by all such terms.

Project Coin: Try-With-Resources

According to Arul Dhesiaseelan, Try-with-resources (originally known as Automatic Resource Management) is a Project Coin proposal that made its way into recent JDK 7 builds. Traditionally, developers had to manually terminate any resources (files, database connections, etc.) they use in applications. It could be difficult keeping track, and not doing so could lead to problems such as resource leaks that could lead to application failures that are hard to debug and triage. Java 7 will now natively support managing resources.

3 of 10

Project Coin: Strings in Switch

In the JDK 7 release, developers can use a String object in the expression of a switch statement. The switch statement compares the String object in its expression with the expressions associated with each case label as if it were using the String.equals method. Because of this, the comparison of String objects in switch statements is case-sensitive. The Java compiler generates more efficient byte code from switch statements that use String objects than from chained if-then-else statements.

4 of 10

InvokeDynamic

Also known as JSR 292: Support for dynamically typed languages, InvokeDynamic adds extensions to the JVM (Java Virtual Machine), Java language and Java SE (Java Standard Edition) API to support the implementation of dynamically typed languages at performance levels near to that of the Java language itself. This effort is related to the Da Vinci Machine Project, which attempts to create a multi-language renaissance for the Java Virtual Machine architecture.

5 of 10

Fork/Join Framework

Also known as JSR-166y Concurrency and Collections updates, this is a lightweight fork/join framework with flexible and reusable synchronization barriers, transfer queues, concurrent linked double-ended queues, and thread-local pseudo-random-number generators. Fork/Join is a Java framework for supporting a style of parallel programming in which problems are solved by splitting them into subtasks that are solved in parallel, waiting for them to complete, and then composing the results. Fork/Join parallelism is among the simplest and most effective design techniques for obtaining good parallel performance. Fork/join algorithms are parallel versions of familiar divide−and−conquer algorithms.

6 of 10

NIO.2 Filesystem API

Also known as More New I/O APIs for the Java Platform, this project's mission is to implement the (New) New I/O APIs being defined by JSR 203 as well as related work in the JDK. The Java I/O File API initially was not written to be extended. Many of the methods were created without exceptions, so they failed to throw I/O exceptions, frustrating developers. Applications often failed during file deletion, with developers asking why no useful error message had been generated. The rename method was inconsistent across volumes and file systems, methods for gaining simultaneous metadata about files were inefficient, and developers wanted greater access to metadata such as file permissions, as well as more efficient file copy support and file change notification. Developers wanted the ability to develop their own file system implementations. The Java NIO.2 packages address these and other needs.

7 of 10

XRender Pipeline for Java 2D

The XRender pipeline for Java 2D is a new Java2D graphics pipeline based upon the X11 XRender extension, which provides access to much of the functionality of modern GPUs. The project goal is to create a new Java2D graphics pipeline based on the X11 XRender extension.

8 of 10

Gervill Sound Synthesizer

Gervill is a software sound synthesizer that was created for the open-source JDK Audio Synthesis Engine Project. The goal of the JDK is to create a new open-source JDK software midi synthesizer implementation.

9 of 10

Upgraded Class-Loader Architecture

The upgraded class-loader architecture features modifications to the ClassLoader API and implementation to avoid deadlocks in non-hierarchical class-loader topologies.

10 of 10

SDP (Sockets Direct Protocol)

This feature provides implementation-specific support for reliable, high-performance network streams over Infiniband connections on Solaris and Linux.

Advertiser Disclosure:
Some of the products that appear on this site are from companies from which QuinStreet receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. QuinStreet does not include all companies or all types of products available in the marketplace.