Core Java Technologies Tech Tips

Tech Tips Archive

Core Java Technologies Tech Tips contain tips, techniques, and sample code on various topics of interest to developers using Java Platform, Standard Edition (Java SE). Core Java Technologies Tech Tips is now available only in the blog format, which you can read online or subscribe through RSS.


November 2007
SDN has moved to a blog/RSS model for developer communications. Find out why.

September 2007
Enhanced For-Loop and Preferences API

August 2007
Logging Localized Messages and Attach API

July 2007
Listeners vs Adapters and BigDecimal

June 2007
Cookie Handling and Drag and Drop

May 2007
Controlling the Creation of ZIP/JAR Entries and Using printf with Custom Classes

April 2007
Compiling with the Java Compiler API and Regular Expressions

February 2007
Text Normalization and Monitoring Image I/O Events


December 19, 2006
Using PropertyChangeListener and Using Action in Your UI

November 18, 2006
Java Web Start Persistence and JList Striping

September 23, 2006
2D Trickery: Soft Clipping and Light Shadowing

August 24, 2006
How long is your String object? and How should I compare String objects?

June 20, 2006
Introducing Annotations and Tech Tips Quiz

May 13, 2006
Programmatic Access to Network Parameters and Dialog Modality

April 15, 2006
Reporting Indexed Property Changes in Beans and Java 2D API Enhancements in J2SE 5.0

March 14, 2006
Working with Applet Context Streams and The Singleton Pattern Revisited

February 11, 2006
Using WeakHashMap for Listener Lists and Catching Uncaught Exceptions

January 13, 2006
The Singleton Pattern and The Observer Pattern


December 14, 2005
Filtering JList Models and Deques

November 15, 2005
Splash Screens and Java SE 6 and Sorting and Filtering Tables

October 18, 2005
Variable Arity Methods and Customizing Resource Bundle Loading with ResourceBundle.Control

September 13, 2005
Cookie Management with CookieHandler and Tech Tips Quiz

August 16, 2005
Using InetAddress for Host Name Lookup and Host Reachability and Locks

July 27, 2005
Swing "Urban Legends" and From Runtime.exec() to ProcessBuilder

June 17, 2005
Beyond J2SE 5.0 and Collaborating with Sun on Java SE 6

June 1, 2005
Introduction to Java Advanced Imaging and Calendar Utilities in JDesktop Network Components

May 18, 2005
Validating Text and Filtering Documents and Accessibility and the Java Access Bridge

May 5, 2005
Communicating With Native Applications Using JDIC and The Enhanced For Loop

April 19, 2005
Thread Handling in Swing and Atomic Variables

April 5, 2005
Introduction to Autoboxing and Introduction to Tables with JDesktop Network Components (JDNC)

March 15, 2005
Generics and JMX, JConsole, and You

March 8, 2005
Printing JTables and From StringTokenizer to Scanner

February 16, 2005
Getting to Know Synchronizers and HotSpot Garbage Collection Configuration Options

February 8, 2005
Introduction to JOGL and Changing Behavior Based on the Value of an Enumerated Type

January 18, 2005
Let There Be Z-Order and Customizing Window Adornments

January 4, 2005
Using the Varargs Language Feature and Covariant Parameter Types


December 14, 2004
Resource Bundle Loading and Hiding ListResourceBundles from javadoc

December 1, 2004
Scanning Text With java.util.Scanner and Covariant Return Types

November 16, 2004
Converting Images to BMP/WMBP and Pooling Threads to Execute Short Tasks

November 2, 2004
What's New in the Math Class and Changes in Working With ContentPane

October 19, 2004
Queues and Delayed Processing and Getting to Know Synth

October 5, 2004
Using Static Imports for Constants and Methods and Formatting Output With the New Formatter

September 14, 2004
Working with Selectors and SSL Servers

August 17, 2004
Secure Communications with JSSE and Customizing the JColorChooser Component

August 10, 2004
Sending and Receiving Multicast Messages and Extending a DefaultHandler to Parse XML files

July 27, 2004
Using GridBagLayout and Updating JAR Files

July 16, 2004
Using Collections to Sort and Shuffle a List and Lighting a 3D Scene

June 11, 2004
More Multithreading in Swing and Printing Components with PrinterJob

May 18, 2004
Understanding Rendering Hints and Creating Custom Security Permissions

May 4, 2004
Formatting Text Input With JFormattedTextField and When Are Two Strings Equal?

April 20, 2004
User Datagram Protocol Programming and Garbage Collection and You

April 7, 2004
Filtering and Transforming Digital Images and Static and Instance Initializer Blocks

March 16, 2004
Customizing JFileChooser and Best Practices in Exception Handling

March 9, 2004
Working with Swing Look and Feel and Using Soundbanks

February 17, 2004
Loading and Saving Images with the Image I/O Library and Reflecting JavaBeans Components

February 10, 2004
Styling Digital Images with ConvolveOp and Using HttpURLConnection to Access Web Pages

January 22, 2004
Beyond the Basics of JOptionPane and Monitoring Class Loading and Garbage Collection

January 16, 2004
Asymmetric Encryption Keys With the KeyPairGenerator and Encryption and Decryption Using Symmetric Keys


December 23, 2003
Programmer Challenge

December 10, 2003
More About Handling Exceptions and Using HTML in Swing Components

December 8, 2003
Multithreading in Swing and ThreadLocal Variables for Storing Thread-Specific State Information

November 4, 2003
Handling Exceptions and Using the TimeZone Class

October 21, 2003
Converting Between Old and New Collections and Choosers Outside Dialogs

October 14, 2003
Introduction to the Java3D API and Using the TransferHandler

September 26, 2003
Using ChoiceFormat for Handling Plural Messages and Component Orientation in Swing User Interfaces

September 9, 2003
Working with SocketChannels and Understanding AffineTransform

August 19, 2003
Formatting Messages With Variable Content and Unloading and Reloading Classes

August 5, 2003
Producing MIDI Sound and Saving and Reconstituting Swing Components

July 22, 2003
Generating Custom Taglets and Compiling Source Directly From a Program

July 15, 2003
Using the Preferences API and Interfaces and Constants

June 24, 2003
Generating Diagnostics by Monitoring the System Event Queue and Internationalizing Dates, Times, Months, and Days of the Week

May 20, 2003
Drawing Dashed Lines with Stroke and Generating Custom Doclets

May 06, 2003
Using the native2ascii Tool and Local Classes

April 22, 2003
Validating URL Links and Reusing Exceptions

April 8, 2003
Destroying Objects and Preprocessing and the Java Language

March 18, 2003
Dragging Text and Images with Swing and Discovering the Calling Method Name

March 4, 2003
Using Runtime.exec to Invoke Child Processes and Programming With File Attributes

February 20, 2003
Choosing A Collections Framework Implementation, Providing a Scalable Image Icon, and An Addition to Last Month's Tip on Reading Files From JARs

February 4, 2003
Using Variable Argument Lists and Some Things You Should Know About Floating-Point Arithmetic

January 22, 2003
Reading files from Java Archives (JARs) and Getting Started with the Java Management Extensions (JMX)

January 10, 2003
Using Charsets and Encodings and Using Reflection To Create Class Instances


December 17, 2002
Programmer Challenge

December 3, 2002
Using the BitSet Class and Using JSpinner to Choose From an Ordered List

November 19, 2002
Displaying Multi-column Lists and Dealing with Timeouts on Socket Connections

November 5, 2002
Using HashSet, LinkedHashSet, and TreeSet and Understanding Expression Evaluation Order

October 22, 2002
Filtering Logged Messages and Controlling Focus Traversal Sequencing

October 8, 2002
Using Regular Expression Groups and Anonymous Classes

September 24, 2002
Locking Files For Shared Access and Changing User Interface Attributes

September 10, 2002
Using ArrayList and LinkedList, and Using Zero-Length Arrays

August 21, 2002
Maintaining a Priority Queue, and Displaying Text in Multiple Styles

August 6, 2002
Generating Prime Numbers, and When Not to Overload Methods

July 23, 2002
Converting Numeric Entries, and Displaying Multiline Text

July 9, 2002
Using the LinkedHashMap Class, and The RandomAccess Interface

June 18, 2002
Reading from Output Streams, and Blending Images

June 4, 2002
Using the CharSequence Interface, and Programming With Buffers

May 21, 2002
Using Swing Timers, and Adding help to Your Applications With JavaHelp Software

May 07, 2002
File Channels, and Stack Trace Elements

April 23, 2002
Pattern Matching, and Creating a HelpSet with JavaHelp software

April 9, 2002
Using Assertions, and Representing Currencies

March 19, 2002
Capturing Audio with the Java Sound API, and Validating Deserialized Objects

March 5, 2002
String Concatenation and Performance, and Improving Java I/O Performance

February 19, 2002
Playing Audio and Video With the Java Media Framework, and Using the JSObject Class in Applets

February 5, 2002
Writing toString Methods, and Using readResolve

January 22, 2002
Retrieving Mail with the JavaMail API and Working with the Java Communications API

January 10, 2002
Using Exceptions and Sizing Text With FontMetrics


December 20, 2001
Creating Modal Internal Frames -- Approach 1, and Creating Modal Internal Frames -- Approach 2

December 4, 2001
Accessing the Environment from Java Applications, and Working With Number Bases

November 20, 2001
Validating Numerical Input in a JTextField, and Working with Fonts

November 6, 2001
Using Method Pointers, and Abstract Classes vs. Interfaces

October 23, 2001
Sorting Lists, and Sending Mail With the JavaMail API

October 9, 2001
How Arguments are Passed to Java Methods, and Converting C Programs to the Java Programming Language

September 25, 2001
Generating Integer Random Numbers, and Displaying Element-Level Tool Tips for Swing Components

September 4, 2001
Making Defensive Copies of Objects, and Using Iterators

August 21, 2001
Supporting an Unlimited Number of Applet Parameters, and Delivering Dynamic Images from JavaServer Pages (JSP) Technology

August 7, 2001
Performing Exact Calculations With Floating-Point Numbers, and Using Enumerations in Java Programming

July 27, 2001
Introduction to JAAS, and Using JAAS

July 12, 2001
JTabbedPane, and Using Reflection to Test Methods and Classes

June 26, 2001
Improving Code Reuse With Servlet Filters, and Using Filters to Modify the Server's Response

June 12, 2001
Abstract Classes, and Using Peer Classes With the Java Native Interface

May 30, 2001
The Java Network Launching Protocol (JNLP) and Java Web Start

May 18, 2001
Using the PushbackReader Class, Optimizing StringBuffer Usage  and Handling Keyboard Focus

April 24, 2001
Using XPath Expressions in a Simple Transform,  and Using Rule-Based XSLT

April 10, 2001
Making Deep Copies of Objects, Using strictfp  and Optimizing String Performance

March 27, 2001
Deserializing Marshalled Objects  and JNDI Lookup in Distributed Systems

March 6, 2001
Cloning Objects and Using the Serializable Fields API

February 27, 2001
The Lifecycle of an RMI Server and Dynamic Class Loading in RMI

February 8, 2001
Piped Streams and Using Sets

January 30, 2001
Controlling Package Access With Security Permissions and Controlling Package Access With Sealed JAR Files

January 9, 2001
Using the Java.Lang.Character Class and Handling Uncaught Exceptions


December 22, 2000
A Memory Testbed Application and Controlling Your Memory Manager

December 5, 2000
Returning Multiple Values From a Method and Constructor and Initialization Ordering

November 28, 2000
Using Privileged Scopes and Debugging Class Loading

November 7, 2000
Using Random Numbers for Testing and Simulation and Collection Utilities

October 31, 2000
Class loaders as a namespace mechanism , Relating class loaders to the class path , and
Using class loaders for hot deployment

October 10, 2000
Customizing JToolTips and Shadowing

September 26, 2000
Using SecurityManager and Policies and the Policy File

September 12, 2000
Using Class Methods and Variables and Using Progress Bars and Monitors in Java GUI Applications

August 29, 2000
Getting Started With javap, How Bytecode Protects You From Memory Bugs, and Analyzing Bytecode to Improve Your Code

August 15, 2000
Manipulating Java arrays, and Java I/O redirection


August 01, 2000
Caching objects in JNI, and Accessing arrays in JNI

July 11, 2000
Using Shutdown Hooks, and Automating GUI Programs with java.awt.Robot

June 27, 2000
XML Introduction, Using the SAX API, and Using the DOM API

June 13, 2000
Using BreakIterator to Parse Text and Goto Statements and Java Programming

May 30, 2000
Using Dynamic Proxies to Layer New Functionality Over Existing Code and Using Timers to Run Recurring or Future Tasks on a Background Thread

May 09, 2000
Random Access for Files and Using Adapters

April 25, 2000
Improving Serialization Performance with Externalizable, and Handling Those Pesky InterruptedExceptions

April 11, 2000
Formatting Decimal Numbers, and Using Checksums

March 28, 2000
Why Use Threads?, Protecting Shared Resources with Synchronized Blocks, and Minimizing the Overhead of Synchronized Blocks

March 14, 2000
Using java.lang.Class and Overload Resolution

February 29, 2000
Serialization in the Real World , Serialization and Class Versioning , Serialization and Secure Data, and Serialization and the Complete Class Rewrite

February 14, 2000
Manipulating Hierarchical Data with JTree and Invoking Programs from Java Applications

January 24, 2000
Using Finally Versus Finalize to Guarantee Quick Resource Cleanup and Using HPROF to Tune Performance

January 10, 2000
Narrowing and Widening Conversions and Using Import Declarations


Read Core Java Technologies Tech Tips from the complete listing of previous issues below, or download recent tips as text files, either individually or in one .zip file.

Subscribe to the RSS feed now

Left Curve
Java SDKs and Tools
Right Curve
Left Curve
Java Resources
Right Curve