| Similar Articles |
 |
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 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 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 May 2002 Jeff Friesen |
Achieve strong performance with threads, Part 1 Users expect programs to exhibit strong performance. To satisfy those expectations, your programs often use threads. This article begins a four-part series that examines threads. You receive an introduction to threads, explore the Thread class, and learn about runnables...  |
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 August 2002 Greg Holling |
Put Java in the fast lane This article presents some techniques for locating performance bottlenecks in Java applications and offers suggestions for improving Java performance. Along the way, you'll look at some of the classes in the new java.nio package.  |
JavaWorld July 2002 |
Study guide: Achieve strong performance with threads, Part 3 Glossary of terms... Tips and cautions... Homework... Answers to last month's homework...  |
JavaWorld June 2002 |
Study guide: Achieve strong performance with threads, Part 2 Glossary of terms... Tips and cautions... Homework... Answers to last month's homework...  |
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 April 2002 Ramnivas Laddad |
I want my AOP!, Part 3 How to use AOP and AspectJ to solve real-world problems by modularizing crosscutting concerns...  |
JavaWorld August 22, 2003 Laurence Vanhelsuwe |
Profiling the profilers Who doesn't have some performance problems in their Java applications? Code profilers are the only custom tools designed to tackle this universal problem. In this article, the author reviews three commercial Java profilers: Optimizeit Suite, JProbe Suite, and JProfiler.  |
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 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 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 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 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 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 December 2000 Todd Sundsted |
Secure thread collaboration across protection domains When threads collaborate across protection domains, they introduce interesting wrinkles into the science of building secure applications. This month, we present these scenarios and shows how to use the AccessControlContext and GuardedObject classes to build solid solutions...  |
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 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 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 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 March 2002 Jeff Friesen |
Exceptions to the programming rules, Part 1 Learn about exceptions and how to handle them in C, C++, and Java. Learning how to handle exceptions in various languages gives you an appreciation for why exception handling works the way it does in Java...  |
JavaWorld October 3, 2003 Dawid Weiss |
Discover new dimensions of scripted Java This article presents an extension to BeanShell that turns scripts into real Java classes that support inheritance, Java reflection, method overriding, and so on. The extension is designed to be fully transparent to the Java application using it.  |
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 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 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 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...  |
Linux Journal June 1, 2007 Dave Berton |
Asynchronous Database Access with Qt 4.x How to code around the default synchronous database access in Qt 4.  |
JavaWorld June 2001 Todd Sundsted |
Secure your Java apps from end to end, Part 1 The foundation of Java security: virtual machine and byte code security...  |
JavaWorld November 2001 |
Letters to the Editor Should you enable assertions in a production system? What's the difference between Jxta and Jini? Do access modifiers prevent inheritance? Is MVC a design pattern?  |
JavaWorld September 2001 Michael T. Nygard |
Master Merlin's new I/O classes The JDK 1.4 beta -- the Merlin release -- unleashes hundreds of new classes. This article walks you through some of the platform's new I/O (input/output) capabilities: nonblocking I/O, character conversion, memory-mapped files, and buffer management...  |
JavaWorld September 2001 Ashok Mathew & Mark Roulo |
Accelerate your RMI programming Beginning with JDK 1.1, serialization and Remote Method Invocation (RMI) were added to the Java platform. RMI usually runs slower than equivalent CORBA or remote procedure call (RPC) solutions. Fortunately, RMI was designed so that you could apply hand optimizations...  |
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 December 2000 John Zukowski |
Java threads: A comparative book review Java programs are multithreaded, whether you like it or not. This comparative review of six Java thread programming books will help you decide which books are the best read for learning the Java threading library and creating better technical solutions...  |
JavaWorld June 2000 Bill Venners |
An interview with James Gosling A conversation with James Gosling, the inventor of Java and a vice president and fellow at Sun Microsystems...  |
JavaWorld March 2003 Greg Holling |
J2SE 1.4.1 boosts garbage collection Java 2 Platform, Standard Edition 1.4.1 introduces three new garbage collection algorithms, effectively doubling the number that existed in J2SE 1.4.0. The new techniques target applications needing high throughput or minimal pause time during execution.  |
JavaWorld November 2000 Brian Goetz |
Tweak your IO performance for faster runtime Although poor performance claims have plagued Java for some time, Java programs can run just as quickly as programs written in C and C++ if developers pay attention to performance issues throughout the development cycle, especially in IO...  |
JavaWorld July 25, 2003 David Geary |
Make your apps fly Allocating numerous objects can degrade your application's performance. This article shows how to implement the Flyweight design pattern to greatly reduce the number of objects your application creates, which decreases your app's memory footprint and increases performance.  |
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 April 25, 2003 |
Letters to the Editor Authors discuss static versus lazy resolution; HTML/JavaServer Pages (JSP)/servlets versus Swing; thread safety with singletons; and more.  |
JavaWorld February 2002 David Geary |
Take control with the Proxy design pattern The Proxy design pattern in Java lets you substitute a proxy for an object. In that capacity, proxies prove useful in many situations, ranging from Web services to Swing icons...  |
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 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 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...  |
Unix Insider September 2000 Jim Mauro |
Scheduling in the user threads library User level threads in Solaris implement a priority scheme and queue-management system distinct from the kernel thread priorities and per-processor dispatch queues that exist in the kernel. This month, Jim Mauro lays the groundwork for discussion on the internals of the threads library, relative to scheduling and thread priorities.  |
JavaWorld November 2001 Michael C. Daconta |
Practice makes perfect One pitfall stumbled on while porting an Extensible User Interface Language (XUL) game to Java and two pitfalls sent in by readers...  |
JavaWorld May 2001 Thierry Manfe |
Embed Java code into your native apps Embedding Java code into a Unix application developed in C or C++ can create problems related to GUIs or threads synchronization. Here's a solution that relies on a good understanding of the Unix APIs and robust software architecture...  |
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 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...  |