Sun Microsystems Logo
Products and Services
 
Support and Training
 
 

Training
Web-based Courses
»   How To Enroll
»   Java Technology
»   Sun Java Studio, Solaris OS, and Perl Development
»   Sun Java Enterprise System
»   Sun Java Desktop System
»   Web Services, XML, and Web Publishing
»   Wireless and Telecommunications
»   StarOffice Software
»   Solaris Operating Environment
»   Network Management
»   N1 Grid
»   Security
»   Server and High Availability
»   Storage
»   Knowledge Management
»   Auto-ID
 
 

J2SE Internals and Troubleshooting

 Course Description
    Course Outline/Details

The J2SE Internals and Troubleshooting course provides technical information on the internal functioning and operation of Java 2 Platform, Standard Edition (J2SE platform). The course addresses debugging, gathering of crash-related data, the nature of the Just In Time compiler, Garbage Collection, JNI, Threads, and handling signals in native code.

ADDITIONAL SOFTWARE OR HARDWARE REQUIREMENTS: Solaris Operating System (Solaris OS) and Microsoft Windows systems for performing downloadable labs. J2SE SDK distribution, installed and running, at least version 1.4.1. Netscape 4.x or 6.x browser on the Solaris OS, and Internet Explorer 6 browser on Microsoft Windows. This course also requires the use of Flash and JavaScript.


Course ID:
WJO-3250-180
Subscription Duration:
180 days
Price:
$US  100.00
How to Enroll
   
 Languages Offered Back To Top

This course is currently available in English only.

 
 Who Can Benefit Back To Top

Software engineers and support personnel who wish to understand aspects of the internal workings of the Java 2 Platform Standard edition. Specifically, debugging, crash investigation, garbage collection, and similar issues.

 
 Prerequisites Back To Top

To succeed fully in this course, students should be able to:

  • Navigate UNIX and Microsoft Windows file systems, execute command line operations, and use editors on those platforms
  • Describe fundamentals of microprocessors and operating systems, (registers, stacks, subroutine calls, threads, processes, and inter-process communication techniques)
  • Read and write simple Java technology programs
  • Describe, in outline, the threading model of the Java programming language
  • Describe, in outline, the memory management principles of the Java programming language
  •  
     Skills Gained Back To Top

    Upon completion of this course, you should be able to:
  • Use the Java debugger (jdb) and other tools to gather debugging data from programs that fail in a variety of ways
  • Apply a basic procedure to analyzing problem situations
  • Determine an appropriate JIT compiler mode and garbage collection strategy
  • Identify and fix certain problems with native code, signals, and with the selection of an appropriate Solaris OS thread library
  •  
     Related Courses Back To Top

  • SL-275 Java Programming Language
  • WJ-2754: Handling and Optimizing the Java Technology Code
  •  
         Course Content Back To Top



    Module 1: The Java Debugger (jdb)

  • List basic capabilities of jdb
  • Set breakpoints in jdb
  • Trap exceptions in jdb
  • Examine source code in jdb
  • Examine variables in any context using jdb
  • Examine, suspend, and resume threads in jdb
  • Single step, and run to a breakpoint, a Java program under jdb
  • Use jdb to perform remote debugging


  • Module 2: Data Gathering
  • Narrow the scope of a problem search
  • State benefits of using debug JDK binaries to help identify problems
  • Obtain error information, including Java technology stack traces, native stack traces, and core files
  • Identify deadlocked Java technology threads
  • Explain the use of "explorer" to collect system configuration information for a system running the Solaris OS
  • Install and configure the Dr. Watson tool on a Microsoft Windows system
  • Use Dr. Watson to obtain a core file from a Windows process


  • Module 3: Basic Debug Principles
  • Apply a logical sequence of steps to analyzing a given problem
  • Recognize key indicators that lead to isolation of a given problem


  • Module 4: Just-In-Time (JIT) Compiler
  • Describe the purpose, basic behavior, benefits, and costs of a just-in-time (JIT) compiler
  • List differences between client and server versions of the Java HotSpot virtual machine (VM)
  • Interpret Java Hotspot VM compiler information output
  • Identify methods that cause compiler failure
  • Prevent compilation of specific methods


  • Module 5: Basic Memory and Garbage Collection
  • Name the three memory areas of a Java platform system and state the uses of each
  • Identify which memory caused an out of memory condition, and potential reasons
  • Outline the procedure for class unloading
  • Explain the limitations, costs, and configuration of garbage collection (GC)
  • Explain how copying and compacting garbage collectors operate, contrast the two types, and relate these approaches to the GC behavior in JDK 1.4 version
  • Determine the amount of memory used in each GC region as a program runs and interpret this information to tune the system for a given program


  • Module 6: Advanced Garbage Collection
  • Make choices on the likely suitability of alternate GC algorithms available in JDK 1.4.2 version in an application deployment, based on the relative benefits of these algorithms
  • Explain the problems caused by finalization and list an alternative technique using references


  • Module 7: Java Native Interface (JNI)
  • Compile native code using the correct model
  • Determine the correct file name for a library to be used with a debug JVM
  • Enable runtime checks on critical Java Native Interface (JNI) features


  • Module 8: Threads
  • Explain how threads allocate stack memory and how to control it
  • Explain how the threading model of GC might cause bottlenecks on multiple-CPU systems
  • Select and install an appropriate model in a JVM based on the Solaris OS threading model


  • Module 9: Signal Handling
  • Explain how the use of signals in native code presents a problem for a JVM
  • Implement one of two techniques, as appropriate, to work around the signal sharing problem
  •