J2SE Internals and Troubleshooting
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 |
|
|
Languages Offered |
 |
This course is currently available in English only.
|
Who Can Benefit |
 |
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 |
 |
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 programsDescribe, in outline, the threading model of the Java programming languageDescribe, in outline, the memory management principles of the Java programming language
|
Skills Gained |
 |
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 |
 |
SL-275 Java Programming LanguageWJ-2754: Handling and Optimizing the Java Technology Code
|
Course Content |
 |
Module 1: The Java Debugger (jdb)
|
List basic capabilities of jdbSet breakpoints in jdbTrap exceptions in jdbExamine source code in jdbExamine variables in any context using jdbExamine, suspend, and resume threads in jdbSingle step, and run to a breakpoint, a Java program under jdbUse jdb to perform remote debugging
Narrow the scope of a problem searchState benefits of using debug JDK binaries to help identify problemsObtain error information, including Java technology stack traces, native stack traces, and core filesIdentify deadlocked Java technology threadsExplain the use of "explorer" to collect system configuration information for a system running the Solaris OSInstall and configure the Dr. Watson tool on a Microsoft Windows systemUse 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 problemRecognize 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) compilerList differences between client and server versions of the Java HotSpot virtual machine (VM)Interpret Java Hotspot VM compiler information outputIdentify methods that cause compiler failurePrevent 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 eachIdentify which memory caused an out of memory condition, and potential reasonsOutline the procedure for class unloadingExplain 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 versionDetermine 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 algorithmsExplain the problems caused by finalization and list an alternative technique using references
Module 7: Java Native Interface (JNI)
|
Compile native code using the correct modelDetermine the correct file name for a library to be used with a debug JVMEnable runtime checks on critical Java Native Interface (JNI) features
Explain how threads allocate stack memory and how to control itExplain how the threading model of GC might cause bottlenecks on multiple-CPU systemsSelect 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 JVMImplement one of two techniques, as appropriate, to work around the signal sharing problem |