TBYs Coding Academy Logo

Home > Programs > Intermediate Java

Intermediate Java

Course Description

This Intermediate Java course enhances your programming skills with focused learning on handling input/output operations, mastering testing principles, utilizing Java collections effectively, implementing threading for concurrent programming, optimizing resource management, and employing JUnit for comprehensive application testing.

  • How to handle input and output in your Java programs.
  • Key principles for testing your code effectively.
  • How Java collections work and how to use them.
  • Using threading to build more advanced programs.
  • Efficient resource management and comprehensive testing with JUnit in Java.
  • This course is ideal for Java developers seeking to broaden their skills beyond the fundamentals and acquire a deeper understanding of advanced Java programming concepts. Whether you’re aiming to enhance your expertise for professional growth or personal projects, our Intermediate Java course will provide you with the knowledge and hands-on experience necessary to excel.

  • This course is designed for individuals who have completed an AP CSA course or possess knowledge in Java Fundamentals.

Course Module

Course Material

Course Details

Objective / Topics Covered
  • Reading and writing files using FileReader and FileWriter
  • Working with buffered streams for efficient I/O operations
  • Handling input from keyboard using Scanner class
  • Formatting output using PrintWriter and Formatter classes
Objective / Topics Covered
  • Understanding serialization and deserialization concepts
  • Implementing Serializable interface and externalizable interface
  • Customizing serialization using transient and static fields
  • Handling versioning and backward compatibility in serialization
Objective / Topics Covered
  • Introduction to generics: defining and using generic classes and methods
  • Exploring Java Collections Framework (JCF): ArrayList, LinkedList, HashMap, etc.
  • Using iterators and enhanced for loop for collection traversal
  • Sorting and searching collections using Comparable and Comparator interfaces
Objective / Topics Covered
  • Nested static classes: definition, benefits, and use cases
  • Non-static nested classes (inner classes): differences from static nested classes
  • Local classes: defining classes within methods for encapsulation
  • Anonymous classes: creating classes without a name for event handling and callbacks
Objective / Topics Covered
  • Basics of multithreading: creating and running threads
  • Synchronization: using synchronized keyword and locks to manage thread access
  • Thread safety issues: understanding race conditions and deadlock
  • Thread communication using wait, notify, and notifyAll methods
Objective / Topics Covered
  • Introduction to regular expressions (regex) and pattern matching
  • Using java.util.regex package for regex operations
  • Pattern and Matcher classes: compiling patterns and applying regex
  • Practical applications of regex in string manipulation and validation
Objective / Topics Covered
  • Introduction to JUnit framework: writing and executing unit tests
  • Assertions: validating expected outcomes using assert methods
  • Test fixtures: using @Before, @BeforeClass, @After, and @AfterClass annotations
  • Parameterized tests: testing methods with multiple inputs using @Parameters