| Similar Articles |
 |
JavaWorld November 2001 Jeff Friesen |
Class and object initialization An exploration of class and object initialization, which introduces the strange concepts of the <clinit> and <init> methods...  |
JavaWorld November 2001 Wm. Paul Rogers |
J2SE 1.4 premieres Java's assertion capabilities, Part 1 J2SE (Java 2 Platform, Standard Edition) 1.4 adds a simple assertion facility to Java. This article, the first in a two-part series, covers the mechanics of using the new assertion facility...  |
JavaWorld November 2001 Brian Goetz |
Can ThreadLocal solve the double-checked locking problem? ThreadLocal is indeed an underappreciated tool in the Java Class Library and does solve the thread-safety problems of DCL, but unfortunately it does not meet the performance objectives of DCL -- yet....  |
JavaWorld October 2001 |
Java 101 study hall Brush up on Java terms, learn tips and cautions, and enter the first Java 101 reader challenge  |
JavaWorld February 2002 Anders Eliasson |
Implement Design by Contract for Java using dynamic proxies The Design by Contract (DBC) theory can dramatically raise software quality and reusability levels by forcing you to think in terms of contracts. Contracts formally specify the responsibility relationship between a client (class user) and a supplier (class). Additionally, DBC clearly separates specification (what) from implementation (how). This article explains DBC's importance in object-oriented development and describes a DBCProxy framework that achieves DBC transparently in Java using dynamic proxy classes.  |
JavaWorld October 2000 Robert Nielsen |
Understanding constructors To learn Java, you must understand constructors. Because constructors share some characteristics with methods, it is easy for the Java beginner to confuse them. However, constructors and methods have important differences...  |
JavaWorld May 2001 Brian Goetz |
Can double-checked locking be fixed? This article looks at some of the commonly proposed fixes and shows how each of them fails to render the DCL idiom thread-safe under the Java Memory Model  |
JavaWorld February 2001 Brian Goetz |
Double-checked locking: Clever, but broken Many Java programmers are familiar with the double-checked locking idiom, which allows you to perform lazy initialization with reduced synchronization overhead. Though many Java books and articles recommend double-checked locking, unfortunately, it is not guaranteed to work...  |
JavaWorld October 2001 Jeff Friesen |
Object-oriented language basics, Part 7 This final installment of Java 101's object-oriented programming series explores Java's support for polymorphism and investigates how abstract classes accommodate generalities in class hierarchies.  |
JavaWorld September 2001 Jeff Friesen |
Object-oriented language basics, Part 6 Learn why Java's standard class library contains empty interfaces (such as Cloneable and Serializable). Also, examine the power of interfaces and learn why they provide more than a workaround for Java's lack of multiple implementation inheritance support...  |
JavaWorld August 2002 Jeff Friesen |
Achieve strong performance with threads, Part 4 The author completes his exploration of threads by focusing on thread groups, volatility, thread-local variables, timers, and the ThreadDeath class.  |
JavaWorld February 2002 Jeff Friesen |
Classes within classes As with fields and methods, Java allows classes to be members of other classes. This article explores Java's support for class nesting...  |
JavaWorld January 2001 Wm. Paul Rogers |
Thanks type and gentle class Confusing the concepts of object and class deserves an askance look. Failing to distinguish between type and class, however, typically goes unnoticed. Yet the battle to separate implementation and interface concerns requires type-oriented thinking...  |
JavaWorld December 2001 |
Letters to the Editor In this month's letters, David Geary expounds further on the Decorator pattern, Humphrey Sheil defends EJB performance, and Jeff Friesen talks more trash...  |
JavaWorld June 2002 Jeff Friesen |
Achieve strong performance with threads, Part 2 Developers sometimes create multithreaded programs that produce erroneous values or exhibit other strange behaviors. Odd behavior typically arises when a multithreaded program does not use synchronization to serialize thread access to critical code sections. What does it mean to serialize thread access to critical code sections? This article explains Java's synchronization mechanism, and two problems that arise when developers fail to use that mechanism correctly.  |
JavaWorld August 2001 Jeff Friesen |
Object-oriented language basics, Part 5 Every Java class has a superclass. In the absence of an extends keyword, Object is that superclass. Object takes center stage as this article presents its 11 methods...  |
JavaWorld December 2001 Wm. Paul Rogers |
J2SE 1.4 premieres Java's assertion capabilities, Part 2 This installment discusses the methodology behind using assertions. Assertions are a valuable tool in assuring program correctness and should not be confused with the program robustness facilitated by Java's exception-handling process...  |
JavaWorld May 2001 Jeff Friesen |
Object-oriented language basics, Part 2 In this article, you'll gain an understanding about fields, parameters, and local variables and learn to declare and access fields and methods...  |
JavaWorld June 2002 |
Letters to the Editor Shouldn't Microsoft get credit where credit is due? How do you program a Java class file into an iPAQ? JavaWorld authors answers those questions and more.  |
JavaWorld February 2001 Oliver Enseling |
iContract: Design by Contract in Java The Design by Contract technique stresses the importance of explicitly specifying the constraints that hold before and after a software component executes. The iContract Java language extension implements Design by Contract for Java.  |
JavaWorld July 18, 2003 James Carman |
Get down to business In this article, you will learn how to structure your applications such that modifications to the business object implementation do not require changes to the user interface using a simple framework for accessing your business objects.  |
JavaWorld March 2003 |
Letters to the Editor How do you handle failover in a Java Message Service (JMS) system? When is it safe not to declare a static field volatile in a threaded application? Is there synchronization hidden inside Struts? JavaWorld authors answer these questions and more in this month's Letters.  |
JavaWorld December 2001 Bill Pierce |
Diagnose common runtime problems with hprof Ever been a few days from releasing an application when testing reveals a memory leak or something causing the CPU to spin out of control? Few people realize that the Java 2 JDK provides a useful profiling tool called hprof, which you can use to diagnose these behaviors with minimal fuss...  |
JavaWorld June 2001 Jeff Friesen |
Object-oriented language basics, Part 3 The author explores composition and demonstrates its value in object-oriented programming. Composition and inheritance are design consepts related in a manner similar to both sides of the same coin...  |
JavaWorld November 2000 Geoff Friesen |
Applications, applets, and hybrids This article establishes our bearings and sets sail to the land of applications, applets, and hybrids (an unusual category of Java programs)...  |
JavaWorld March 2002 |
Letters to the Editor JavaWorld readers warn about synchronization; present a Servlet 2.2-compliant solution for mixing protocols in Web apps; suggest using the Data Object Access design pattern with the Value Object design pattern... etc.  |
JavaWorld March 2002 James Carman |
Write once, persist anywhere Most J2EE applications strive to abstract the database tier by employing the Data Access Object design pattern. This article shows you a DAO pattern framework that you can reuse on all your projects, regardless of object type...  |
JavaWorld December 2001 Jeff Friesen |
Trash talk, Part 1 One feature that distinguishes Java from other computer languages is its garbage collection abilities. In this article, This article introduces garbage collection and shows how Java's optional support for it affects your programs...  |
JavaWorld October 2002 Jeff Friesen |
Java's character and assorted string classes support text-processing Text-processing is one of the more frequent activities in which computer programs engage. Java supports that activity via the Character, String, StringBuffer, and StringTokenizer classes. This article explores each class and introduces you to an assortment of those classes' methods.  |
JavaWorld June 13, 2003 Camerlengo & Johnson |
Make the Java-Oracle9i connection This article provides Java programmers with techniques for utilizing Oracle9i's new object-oriented features such as inheritance, custom constructors, dynamic dispatch, array descriptors, and mapping strategies from a Java class hierarchy to an Oracle type hierarchy without using traditional object-relational (O/R) mapping strategies.  |
JavaWorld September 2000 Frank Sommers |
Activatable Jini services, Part 1: Implement RMI activation Jini services must be long-lived and resilient, and must efficiently manage their computational resources with little user intervention. This article shows how to use RMI activation to manage computational resources and increase the availability of Jini services...  |
JavaWorld April 2001 Piet Jonas |
Secure type-safe collections A framework that overcomes the standard Java Collections Framework's main problem: its containers lack the ability to restrict themselves to storing objects of a specific type. The solution uses reflection, wrapper classes, and a collection of static factory methods...  |
JavaWorld October 2000 Frank Sommers |
Activatable Jini services, Part 2: Patterns of use This article concentrates on the consequences of activation in the Jini context. Sommers exponds on the issue of deactivating objects, then considers the implications of deactivation for well-designed Jini services and how the Jini helper services introduced in the 1.1 beta version of the JSK can contribute...  |
JavaWorld April 2001 Geoff Friesen |
Object-oriented language basics, Part 1 An introduction to object-oriented programming and how to declare classes and create objects from those classes...  |
JavaWorld July 2002 Jeff Friesen |
Achieve strong performance with threads, Part 3 How priority relates to thread scheduling, how to use the wait/notify mechanism to coordinate the activities of multiple threads, and how to use Java's thread interruption capability to terminate a running thread.  |
JavaWorld July 2000 Jacob Weintraub |
Learn how to store data in objects In this second installment of Java 101, Jacob Weintraub delves into storing data in Java and the various ways you can use that data. Specifically, he examines how objects store data and how you can pass data to objects in method calls...  |
JavaWorld September 2000 Bruce Eckel |
Everything is an object, Part 1 This two-part article, excerpted from Chapter 2 in Thinking in Java 2nd. ed., moves you to the point where you can write your first Java program. Bruce Eckel gives an overview of the essentials...  |
JavaWorld February 2002 Dirk Reinshagen |
Connect the enterprise with the JCA, Part 2 This article demonstrates a simple JCA (J2EE Connector Architecture) adapter implementation. After you read this article, you'll possess a good understanding of how to build your own JCA adapter...  |
JavaWorld February 2001 Geoff Friesen |
Non-object-oriented language basics, Part 3 This exploration of Java's non-object-oriented language entities wraps up with a tour of statements. It provides an in-depth discussion on those source code constructs and demonstrates their proper use through a large example program...  |
JavaWorld October 2001 Brian Goetz |
Avoid synchronization deadlocks If you understand how your programs use synchronization, and apply consistent rules for acquiring multiple locks simultaneously, you can reduce the likelihood of synchronization deadlock in Java programs...  |
JavaWorld December 2000 Michael C. Daconta |
When Runtime.exec() won't This installment of Java Traps discusses one new pitfall and revisits another from the previous column. Originating in the java.lang package, the pitfall specifically involves problems with the Runtime.exec() method.  |
JavaWorld February 2001 Robert Nielsen |
Learn Java from Ben Franklin While Benjamin Franklin never wrote a line of Java code, his techniques for better writing can be applied to writing Java. Anyone with at least a basic grasp of Java can use Franklin's learning methods...  |
JavaWorld July 2000 Todd M. Greanier |
Flatten your objects The Java Serialization API is used by many other Java APIs (like RMI and JavaBeans) to persist objects beyond the duration of a running virtual machine. This article tries to demystify the secrets of the Java Serialization API.  |
JavaWorld September 26, 2003 Sam Mefford |
Overcome Java 1.3-1.4 incompatibilities API version incompatibilities that force you to maintain separate codebases for newer versions can exponentially increase your frustration level. This article demonstrates techniques for overcoming interface version incompatibilities, charting a course for a single codebase.  |
JavaWorld July 2001 Jeff Friesen |
Object-oriented language basics, Part 4 The author shows how to use inheritance to create layered objects, and compares and contrasts inheritance with composition...  |
JavaWorld February 2003 Laurence Vanhelsuwe |
Unwrap the package statement's potential The package statement is a very powerful Java language feature. Yet most Java programmers, even experienced ones, fail to correctly exploit this power. Intrigued? Read on and see how a simple language feature can have massive repercussions downstream.  |
JavaWorld October 2001 Tony Loton |
JavaMail quick start This article shows the first steps on the road to building Java-based email applications. If you fancy building your own email client to replace Microsoft Outlook, or a Web-based email system to rival Hotmail, this is the place to start...  |
JavaWorld March 2001 Jeffrey Peden |
Browse user interfaces for Jini services The ServiceUI specification developed by the Jini.org community defines a suggested procedure for attaching user interfaces to Jini services...  |
JavaWorld May 2002 Ryan Daigle |
Eliminate JDBC overhead Most J2EE and other types of Java applications interact in some way with information persisted in a database. Interfacing with that database involves several iterations of SQL statements, connection management, transaction lifecycles, result processing, and exception handling. The many parts of this ritualistic dance are common in all contexts; however, this replication doesn't have to exist. This article outlines a flexible framework that remedies the repetition of interacting with a JDBC-compliant database.  |
JavaWorld June 2002 Jason Byassee |
Unleash mobile agents using Jini Mobile agents are powerful, versatile, and -- possibly most important -- fun to work with. Java's Jini framework facilitates mobile agent application development, providing key features for distributed network programming.  |