Java 101: The next generation: The essential Java language features tour, Part 1

From assertions in JDK 1.4 to the forthcoming lambdas in Java 8, the Java language has evolved considerably since its inception. The next several articles in Java 101: The next generation present a toolbox of essential Java language features, starting this week with assertions and generics.
Jeff Friesen, September 2013

Java 101: The next generation: Java concurrency without the pain, Part 2
Learn how the Java Concurrency Utilities handle locking, atomic variables, and fork/join operations. Then prepare for the future with an overview of anticipated changes to the Java Concurrency Utilities coming in Java 8.
Jeff Friesen, August 2013

Java: Out of the spotlight, but still spry
Speaking at JAXConf in Santa Clara, Calif., Red Monk analyst Stephen O'Grady noted that Java faces competition in the enterprise, but will remain vital as long as it is being leveraged in new ways.
Paul Krill, June 2013

Java tip: Orthogonality by example
Orthogonality is a concept often used to describe modular and maintainable software, but it's also a design principle found (and broken) in some of our most popular Java utilities. With this short article you'll wrap your head around orthogonality once and for all -- by seeing how it is implemented, and violated, in Log4j. Workarounds are also discussed.
Jens Dietrich, May 2013

Java 101: The next generation: It's time for a change
Find out how the Java Date and Time API addresses the need for a more robust date and time infrastructure in Java SE, then familiarize yourself with the java.time classes you're most likely to use, in this inaugural installment of "Java 101: The next generation."
Jeff Friesen, April 2013

Java Tip 144: When to use ForkJoinPool vs ExecutorService
This Java Tip demonstrates the performance impact of replacing the Java 6 <code>ExecutorService</code> class with Java 7's <code>ForkJoinPool</code>.
Madalin Ilie, October 2011

Harness Offsprings to divide, parallelize and conquer
Reinventing the wheel over and over again can be fun, but you are probably going to end up with squeaky ones that fall off the axle. When developers address the scalability and performance of their applications, they often reinvent a solution where each request is split into batches which are processed concurrently and merged for delivery to the client.
Edward Salatovka, Neal Lester, August 2009

Nortel wants to unload application-delivery unit to Radware
Nortel wants to sell off its application-delivery gear to Radware, but to keep on selling it under an OEM agreement.
, February 2009

Sizeof for Java
December 26, 2003
Vladimir Roubtsov, December 2003

Does an object exist if you can't test its identity?
December 12, 2003
Vladimir Roubtsov, December 2003

Java Tip 143: Utilize the Database Schema Browser
The Database Schema Browser utility eases the task of database lookup by providing users with a consolidated list of tables and their definitions with one simple hit to the servlet. What's more, you can use the browser's print options to print out a handy database reference. This tip highlights how you can use Java Database Connectivity (JDBC) APIs to create a simple database utility. It's a first step towards building more complex utilities like code generators and SQL browsers.
Saurabh Singh, October 2003

Adopt Adapter
Software usually consists of a mixture of in-house and purchased software that must work together to produce a seamless user interface. But disparate software packages are not aware of each other's object models, so they can't work together—without adapters. Adapters let objects from unrelated software packages collaborate by adapting one interface to another. Learn how the Adapter design pattern can save you a lot of time and effort by combining disparate software systems.
David Geary, September 2003

Java Tip 142: Pushing JButtonGroup
Swing's ButtonGroup class allows radio button grouping to ensure single selection; however, the implementation raises many question marks. You cannot retrieve a reference to the currently selected button in the group, and the class lets you select or deselect any button accessible through a reference, not just those belonging to the group. This tip describes how JButtonGroup subclasses ButtonGroup to offer a more solid implementation, while providing convenience methods that make JButtonGroup much simpler to use.
Daniel Tofan, September 2003

Follow the Chain of Responsibility
The Chain of Responsibility (CoR) pattern decouples the sender and receiver of a request by interposing a chain of objects between them. In this installment of Java Design Patterns, David Geary discusses the CoR pattern and two implementations of that pattern in the Java APIs—one from client-side Java and the other from server-side Java.
David Geary, August 2003

URLs: Smart resource identifiers
What convenient pluggability patterns exist for loading resources via custom URLs?
Vladimir Roubtsov, August 2003

Find more >

Newsletter sign-up
View all newsletters

Enterprise Java Newsletter
Stay up to date on the latest tutorials and Java community news posted on JavaWorld