 |
Brian Goetz
Advanced Java
|
| Audience |
This seminar is for programmers who know the
basics of the Java language, but want to learn the idioms, best practices,
and advanced platform features in greater depth. |
| Duration |
4-5 days |
| Structure |
Lecture, demonstrations, and hands-on labs |
| Students
will |
- Learn common idioms, patterns, and best practices in Java
development
- Learn techniques for improving the maintainability of Java classes
- Explore the principles of good API design in Java
- Gain experience with advanced language features such as reflection,
serialization, and concurrency
|
| Overview |
Students will learn commonly used patterns in
Java class design and implementation, and gain an introduction to how
current development tools can accelerate the development cycle. |
|
|
| COURSE
OUTLINE |
- Objects in Java
- The root Object class
- Semantics and correct implementation of equals(), hashCode(),
clone(), toString(), etc
- Dynamic class loading
- Object lifecycle
- Construction
patterns – constructors, factories, singletons
- Garbage
collection
- Initialization
and final variables
- Destruction
vs finalization
- Naming and coding standards
- Classes and interfaces
- Extension
and composition
- Interfaces
- Abstract
classes
- Inner
classes
- Anonymous
classes
- Mutability
and immutability
- Class design and implementation
- Variable
scoping
- Naming
conventions
- Exceptions
- Defensive
coding techniques
- Documentation
- Multithreading
- Threads
and thread-safety
- Race
conditions
- Synchronization
- Deadlock
- Serialization
- Reflection
- Dynamic class loading
- RMI
- Tools
- JDK
tools
- JavaDoc
- IDEs
- ANT
- JUnit
- New features in JDK 5.0
- Generics
- Enumerations
- Autoboxing
- Variable-length
argument lists
- Concurrency
improvements
- Metadata
|
|
|
|
|