Topics in Java Programming

PT15417
Training Summary
This course teaches programming in the Java language -- i.e. the Java Standard Edition platform. It is intended for students with previous Java experience or training, who already know the fundamentals of the Java architecture and basic procedural programming. This course provides in-depth coverage of object-oriented concepts and how to apply them to Java software design and development. We then move from these basic skills into key parts of the Java SE Core API, including collections, logging, streams, and object serialization. A final chapter introduces automated unit-testing practices using JUnit. This revision of the course targets the Java language and Core API. See our course catalog for training explicitly geared to earlier versions of Java, going back as far as J2SE 1.4.2. Students come to Java from a wide range of backgrounds, and this course is designed to be as flexible as possible over the upper end of that range. Specifically:
  • Experienced C and C++ programmers will find this course a very good fit and if anything will find that they complete it in a little less than the full five-day timeline.
  • Those with experience in languages less like Java, such as Visual Basic, ASP and other Web-scripting languages, and other pseudo-object-oriented languages may need more time in the early going, and this course covers its introductory topics in good depth and offers many optional and "challenge" labs to support this.
  • Less experienced programmers or those coming from non-structured languages -- such as COBOL, PL/1, or 4GL tools -- will probably not cover the whole course in a week, and may want to pursue an abbreviated version at a slower pace. This too is quite feasible, but this audience may also want to consider our "Introduction to Java Programming," for a more relaxed pace through the early material.
This course seeks to develop, for the experienced Java programmer, a strong, shared vocabulary of design patterns and best practices. The course begins with a discussion of how to recognize and apply design patterns - that is, how to incorporate pattern awareness into one's own analysis, design, and implementation practices. The main body of the course focuses on the Gang of Four design patterns, with a chapter each on creational, behavioral, and structural patterns. Classroom time is about evenly split between discussion, group design exercises, and coding labs to reinforce finer points of important patterns. This is not a patterns catalog: it is as much a study of how to "think in patterns" as it is an introduction to several of the most important patterns. Students will be challenged to bring their own previous development experience to the discussion, to see the patterns in everyday design and coding solutions. The course puts more emphasis on some patterns than others. We believe that students will be better served by going into several patterns in depth -- and with lively discussions of several others -- than by through every GoF pattern in rote form. The course also includes an optional "Chapter Zero" on some more basic practices in object-oriented concepts and OO factoring and re-factoring. Though not appropriate for all students, it may be helpful for some audiences with less real-world Java experience.
Prerequisites
Before taking this course, students must be able to write, compile, test, and debug simple Java programs, using structured programming techniques, strong data types, and flow-control constructs such as conditionals and loops. “Introduction to Java Programming” is ideal preparation for this course. Solid Java programming experience is essential - especially object-oriented use of the language. Language features and techniques that are integral to some lab exercises include interfaces and abstract classes, threading, generics and collections, and recursive methods. Previous experience with UML (Unified Modeling Language) will be helpful, but is not critical. The course uses UML class diagrams extensively but keeps notation fairly simple, and also includes a quick-reference appendix.
Duration
4 Days/Lecture & Lab
Audience
This course is designed for students with previous Java experience or training, who already know the fundamentals of the Java architecture and basic procedural programming.
Course Topics
Review of Java Fundamentals
  • Object-Oriented Software
  • Classes and Objects
  • Inheritance and Polymorphism in Java
  • Using Classes Effectively
  • Interfaces and Abstract Classes
  • Collections
  • Exception Handling
  • Inner Classes
  • The Java Streams Model
  • Working with Files
  • Advanced Stream Techniques
  • Java Serialization
  • Automated Unit Testing with JUnit
  • Recognizing and Applying Patterns
  • Creational Patterns
  • Behavioral Patterns
  • Structural Patterns
  • J2EE Patterns

Related Scheduled Courses