OO Design and Implementation
Java and Java Analysis Studio

Overview

Lecture 1 – Part 1
Introduction to Java

Introduction to Java

Java Today

Major Features of Java

Java libraries

Java versus C++

Java vs. C++ - Specifics

Java vs.  C++

A Sample Program

Lecture 1 - Part 2
OO Techniques in Java

OO Techniques in Java

Java Interfaces

Simple Interface Example

More Interface Examples

Adaptors

Adapter Example

Adapters vs. Converters

Inner Classes

Inner Class Example

Anonymous Inner Class

Dynamic Code Loading

Reflection

Threads

Java Support for Threads

Thread Example

Lecture 1 - Part 3
Java Performance and Performance Tips

Java Performance

Static Optimization

Dynamic Optimization

Dynamic Optimization

Memory Allocation

Performance Tips

HEP Performance Tips

Simple Track Factory

Smarter Track Factory

Smartest Track Factory

Test Program

Test Program

Test Program Results

Performance Caveats

“Real Life” Performance

“Real Life” Performance

Conclusion

References

OO Design and Implementation
Java and Java Analysis Studio

Overview

Lecture 2 – Part 1
Introduction to JAS

JAS Overview

JAS GUI

Histogram Viewer

Editor/Compiler

User Extensible

Data Format Independent

Data Types

Analysis Modules

Example Analysis

Lecture 2 – Part 2
JAS Implementation

Implementation

JAS Modules

Use Standard Libraries

FreeHEP Library

FreeHEP library

Java Language Features

EventSource Interface

Lecture 2 – Part 3
Advanced Features

Remote Data Access

Distributed Computing

XML Support

HTML Support

HTML Support

Java 3D

Java 3D

JAS Plugins

BeanShell Scripting

Lecture 2 – Part 4
Using the JAS Plot Widget

JAS Plot Component

Adapter Example

Plot Component Features

JASHist Example

JASHist Example

Servlet Support

Lecture 2 – Part 5
Using JAS Histograms from C++

AIDA

C++ ŕ Java with AIDA

Prototype Implementation

JAS at the CSC

JAS Tutorials at the CSC

Where to get more info.

Conclusion