Java Programming


J2 - Version:2
Description
This course introduces the participant to the fascinating and dynamic world of Java Object Oriented programming. The first part of the course focuses on object-based concepts. We begin by exploring the history and origins of the Java programming language. From there, we go on to understanding the structure of the Java platform by focusing on its ability to write and compile only once, and still run on various machines using different Java Virtual Machines (JVM). The Object Oriented part of the course goes through inheritance concepts and implementations, the collections framework, handling exceptions and running multiple threads applications. We conclude the course by delving into the IO capabilities of Java as well as their usage in networking.
Intended audience
This course is intended for: Skilled Programmers. Team leaders. For non object oriented developers there is an extra day
Expand All
  • Introduction to Object Oriented In Java - extra day
    • Introduction to Object Oriented Programming
    • The Object-Based model:
      • Method Overloading
      • Implementation Hiding
      • Basic Terms – Object, Class, Method, Message
      • Class Invariant and Constructors
      • Access Control
      • Class Methods and Class Members
    • The Object Oriented Paradigm
      • Inheritance
      • Polymorphism and Method Overriding
      • Up Casting and Down Casting
      • Forcing and Blocking Inheritance/Overriding
  • Introduction to Java
    • History
    • Key Features
    • Java platform independence
    • Byte Code
    • JVM
    • Java API
    • Java memory model
    • Garbage collector
  • Java basics
    • Classes
    • Compiling and running
    • Data types
    • Strings and StringBuffers
    • Arrays
    • Operators
    • Conditional Statements
    • loops
    • packaging and compiling
  • Eclipse workshop - Appendix
  • Object Oriented programming in Java
    • Referencing and Instantiation
    • Object members and methods
    • Constructors
    • Class members and methods
    • The Final keyword
    • Access control
    • Inner Classes
    • The java.lang.Object class
    • Polymorphism – Overloading and Overriding.
    • Casting and safe casting
    • Final classes and methods
    • Abstract classes and methods
    • Interfaces
  • Collections
    • The collection framework classes
    • Iterator
    • List and implementations
    • Set and implementations
    • Sorting issues (Comparator and Comparable).
    • Map and implementations
    • Read-only and synchronized collections
    • Historical implementations
    • Generics
    • Additional issues - appendix
      • For each loop
      • Autoboxing
      • EnumSet & EnumMap
  • Exceptions
    • Exceptions vs. traditional error handling.
    • Exceptions terminology
    • Errors and exceptions
    • Available methods
    • Nesting blocks
    • The finally block
    • Creating user-defined exceptions
  • Multithreaded programming in Java
    • Threads overview
    • Creating threads in Java
    • The thread life cycle
    • Naming threads
    • The Timer and TimerTask classes
    • Synchronization overview
    • Synchronized blocks
    • Synchronized methods
    • Synchronized class methods
    • Cooperation using wait() and notify()
    • Priorities - appendix
    • Deadlocks - appendix
    • Daemon threads - appendix
  • I/O
    • I/O overview
    • Binary Streams
    • FileInputStream/FileOutputStream
    • Working with buffers
    • RandomAccessFile
    • Character streams
    • Console IO
    • The java.io.File class
    • Serialization
    • Scanner - Appendix
  • Networking
    • The Internet Protocol
    • Transmission Control Protocol
    • Domain Name System
    • Ports
    • Sockets
    • The Server side
    • The Client side
    • The Java Networking Model
    • Communication using streams
    • Multiple clients
    • Proxy and firewall - Appendix
    • Other types of socket - Appendix
  • A good working knowledge of at least one programming Object Oriented language
  • For student who has experience with non-object oriented programming language must take the 1 day course introduction to object oriented, usually this day course preformed before this course in few days
  • Upon completion of this course, the participant will be able to develop complicated Object Oriented Java applications including client-server programs.