Ultimate Java


J8 - Version:1
Description
Java8 is the biggest change in the java language, it changesfundamental concepts that we have in java programming. We have new concept of lambda expressions that changes the nature of the language. We have new possibilities of extending the java framework by adding default methods to interfaces. Working with collections has completely changed by using the Stream API. In this one day workshop we will examine the features that will affect almost any code line that we have in java?
Intended audience
java developers
Expand All
  • 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
  • Exceptions
    • Exceptions vs. traditional error handling.
    • Exceptions terminology
    • Errors and exceptions
    • Available methods
    • Nesting blocks
    • The finally block
    • Creating user-defined exceptions
  • Extended Interface
    • Regenerate java with extended interfaces
    • Extended interface and multiple inheritence
    • mixins in java
  • Reflection & Annotation
    • The java.lang.Class
    • Dynamic instantiation
    • modifiers
    • Method invocation
    • Design Issues and limitations
    • Annotation
  • Lambda expressions
    • Anonymus inner class
    • Lambda expressions
    • Functional interfaces
    • Lambda expression best practices
  • 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
    • Util concurrent package
      • Executores
      • Callback function
      • Future design pattern
      • Executores Service
      • ThreadPool
      • Thread pool lab
      • Barrier and phasers
      • Semaphore
      • Read & Write Lock
      • Util Concurrent 2
        • Fork & Join framework
        • Phasers
        • Transfer Queue
  • 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
    • Streams and parallel programming with collections
      • The purpose of lambda expressions
      • What are streams
      • parallel streams
      • unbound streams
      • stream API
    • Additional issues - appendix
      • For each loop
      • Autoboxing
      • EnumSet & EnumMap
    • Concurrent Collections
  • I/O
    • I/O overview
    • Binary Streams
    • FileInputStream/FileOutputStream
    • Working with buffers
    • RandomAccessFile
    • Character streams
    • Console IO
    • The java.io.File class
    • Scanner - Appendix
    • Networking
      • Ports
      • Sockets
      • The Server side
      • The Client side
      • The Java Networking Model
      • Communication using streams
      • Other types of socket - Appendix
    • NIO
      • I/O overview
      • Buffers
      • Channels
      • Selectors
      • Selection Keys
      • NIO lab
      • NIO2
        • Using channels for multicasting
        • The File revolution of NIO2
        • Asynchronous I/O
  • Working in Object Oriented Programming
  • Learn how to develop java applications using the tools and frameworks of java 8