Welcome!

The Source for All Things Java

Joe Winchester

Subscribe to Joe Winchester: eMailAlertsEmail Alerts
Get Joe Winchester via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Top Stories by Joe Winchester

Java serialization was initially used to support remote method invocation (RMI), allowing argument objects to be passed between two virtual machines. RMI works best when the two VMs contain compatible versions of the class being transmitted, and can reliably transmit a binary representation of the object based on its internal state. When an object is serialized, it must also serialize the objects to which its fields refer - resulting in what is commonly called an object graph of connected components. Although the transient keyword can be used to control the extent to which the serialization process penetrates the object graph, this level of control is seldom enough. Many have tried to use Java's serialization to achieve the so-called "long-term persistence" of data - where the serialized form of a Java data structure is written to a file for later use. One such area... (more)

SWT: A Native Widget Toolkit for Java - Part 2 of 2

The first part of this article (JDJ, Vol. 8, issue 4) introduced the Standard Widget Toolkit (SWT), and showed how graphical user interfaces can be created using some of the basic widgets found in SWT. In addition, layout classes were described that allow widgets to be arbitrarily positioned and sized within their parent. In Part 2, we continue where the previous article left off, describing some of the more advanced controls and concepts, including multithreading in the user interface. We conclude with a brief discussion of SWT graphics. Items Many of the advanced controls in SW... (more)

Java JVM Swapping - Safe Practice or Unsafe Risk?

One of the most fundamental design principles of Java is captured in its motto "Write Once, Run Anywhere." It describes how a .class file encodes its instructions at the bytecode level, allowing portability between different machines that, through a specific virtual machine implementation, resolve the bytecodes into executable instructions to give the program life. It's a goal that's almost enshrined in the Java fundamental commandments, as Sun took out a high-profile advertising campaign to back up the "100% Pure Java" slogan and engaged Microsoft in battle for their proprietary... (more)

Google Searching for Java Innovators

Imagine you are a contestant on a TV game show and your grinning quiz master pops the question: "Name the one thing you most associate with Google?" Think about your answer - write it on a card (don't show me yet). Turning your card over, it's likely to be one of the following: Great Internet search engine on google.com Wicked share price, wish I'd bought some a few years ago Powerhouse of innovation for Java The first two are fairly obvious. The last one might not have been your first choice, but looking more closely it possibly should be. Things probably started when some of Jav... (more)

The Pragmatics Of Java Debugging

Essential to the development of complex systems are tools that help the developer locate, analyze, and fix problems. Debuggers provide support for this by letting a developer inspect the internal state of a program at runtime, as well as suspend and resume execution statement by statement. The originators of the Java programming language defined a debugging architecture, but since its conception Java has advanced into new areas of deployment topologies and optimization technologies that present a further set of problems. This article covers some of the background behind these is... (more)