Visa utbildning.se som: Mobil

Effective Core Java

Informator
Kort om utbildningen
Längd: 4 dagar
Pris: 32 950 SEK exkl. moms
Nästa tillfälle: 2018-03-19 - Sverige
Ort: Rikstäckande
Utbildare: Informator plus
Kommande starter
Sverige
2018-03-19  
32 950 SEK
2018-03-19  
32 950 SEK
2018-03-19  
32 950 SEK
2018-05-28  
32 950 SEK
2018-05-28  
32 950 SEK
2018-05-28  
32 950 SEK

Kursbeskrivning

The course adheres to the guide lines defined by Joshua Bloch in ”Effective Java”, and systematically covers a number of areas within software development using core Java APIs. You will get a thorough understanding of the power of unit testing, thereby avoiding common errors and pitfalls. Core Java APIs will be covered in detail.

We expand on the many new features introduced in Java 8 such as the Date & Time API, functional programming using lambda expressions, enhanced interface definitions and the new Stream API. As an extra feature you will get an understanding of how to create modern concurrent applications using modern Java tools. Take the next step in your career and become a serious Java developer! You will learn how to implement a number of design patterns and follow best practices in order to produce high quality code in terms of performance, maintainability and readability. Code examples/exercises will be presented in UML and correct robust Java code, complemented by a great number of predefined unit tests.

Basic knowledge of Java or experienced C++ or C# programmers.

  • Copies of course slides

  • Complete code for all examples/exercises

Recommended reference literature:

- “Effective Java 2nd ed” Joshua Bloch

- “Java SE 8 for the Really Impatient” Cay S. Horstmann

  • Java programmers who want to enhance his/her competence in Java programing aiming for producing robust code of great quality.
  • Developers having skills from a previous Java version, who need an update and want to get a deeper knowledge of the Java programing language and its core APIs.
  • Experienced C++ / C# programmers who want an introduction to Java at full speed!

Hands-On

Every chapter is backed by complete examples that are ready to run. In addition there are a number of exercises that will be addressed and discussed during the course. All Java code, examples and solutions, will be part of the documentation available for participants.

Code examples/exercises will be presented in UML and correct robust Java code, complemented by a great number of predefined unit tests.

1. Unit Testing

  • Overview of unit testing
    * Test Framework Architecture
        - Design Pattern Composite
    * Basic Test Case
    * Test suite
    * Negative Tests
    * Data Driven Tests
    * Performance Tests
    * Code Coverage

2. Overriding Object Methods

  • equals
  • hashCode
  • toString
  • clone
  • finalize
  • Implementation of interface Comparable

3. Software Design - Classes

  • Level of access
    * Public methods and private attributes
    * Immutable classes – value classes
  • Class design
    * Inheritance vs. composition
  • Nested classes
    * Static classes
    * Inner classes
    * Anonymous classes
    * Local classes
  • Creating and destroying objects
    * Static factory methods vs. constructors
    * Design Pattern Singleton
    * Design Pattern Builder
    * Utility Classes

4. Software Design – Interfaces

  • Class design
    * Interfaces defines contracts
    * Abstract Classes
    * Interface vs. Abstract class
  • Java 8 additions
    * Interfaces supporting static methods
    * Interfaces supporting default methods
    * Default methods vs. Inheritance

5. General Programming Concepts

  • Know the core Java APIs
  • Avoid floating point types for exact calculations
  • Performance for wrapper classes vs. primitive types
  • Performance issues for String
  • Validating method arguments
  • Defensive copying of return values
  • Avoid returning null
  • Using Formatter for textual output

6. Generics and Typesafe Collections

  • Generics
    * Parameterized types
    * Arrays vs. Generics
  • Type safety in collection classes
    * Erasure guarantees backwards compatibility

7. The Collections Framework in Detail

  • Basic interfaces
    * Iterable, Collection
    * List, Set, Queue
  • Basic implementation classes
    * ArrayList, HashSet, LinkedList
  • Iterator vs. for:each-loop
  • Interfaces defining comparison criteria
    * Comparable, Comparator
  • Specialized interfaces
    * Deque, SortedSet, NavigableSet
  • Implementation classes for specialized interfaces
    * ArrayDeque, PriorityQueue, TreeSet
  • Interfaces defining associative data structures
    * Map, SortedMap, NavigableMap
  • Implementation classes for Maps
    * HashMap, TreeMap
  • Performance aspects for implementation classes
  • Utility classes Arrays and Collections
  • Special Collection classes
    * LinkedHashSet, LinkdedHashMap, WeakHashMap
  • Java 8 enhancements to the Collections Framework

8. Enums

  • Enum defining named constants
  • Enum as a Java type defining attributes and methods
  • Enum comparison pattern
  • Collection classes using Enum based keys
    * EnumSet, EnumMap
  • Enum in Design Pattern State

9. Annotations

  • Annotation as a Java type
  • Rules for usage
  • Retention policies
  • Annotations usage in Java frameworks

10. Exception handling

  • Errors vs. Exceptions
  • Overview exceptions
    * Runtime exceptions
    * Checked exceptions
    * Chained exceptions
  • Exception handling using java.io
  • Exception usage best practice

11. Serialization

  • Serialization mechanism in Java
  • Customization of serialization
  • Externalizable for special purposes
  • Version handling for Serializable classes

12. Date & Time API

  • Scientific Time
    * Instant
    * Duration
  • Calendar Time
    * LocalTime, LocalDate, LocalDateTime
    * Period
  • Zone-based Calendar Time
    * ZoneID
    * ZonedDateTime
  • Formatting Date & Time

13. Lambda Expressions

  • Functional programming using lambda expressions
    * Syntax for Lambda Expressions
    * Deferred execution
    * Capture of variables
  • Functional Interfaces
    * Built in support in Java APIs
  • Predefined Interfaces supporting Lambda Expressions
    * Function
    * Operator
    * Supplier
    * Consumer
    * Predicate
  • Exception handling in lambda expressions
  • Method references

14. The Streams API

  • Stream creation from existing sources
    * Arrays, Collections, Files
  • Iterations using stream operations
  • Streams using lambda expressions
  • Filtering, transforming and reducing streams
    * Optional handling existing/missing return value
    * Collectors for statistics
    * Collectors for storing of output
  • Bulk operations for collections
    * Piping operations for enhanced performance
  • Enabling parallel processing of streams

15. Concurrency

  • Concurrency support for aggregates
    * Arrays supporting parallelism
    * Interface Collection added support for parallel streams
    * Interface Spliterator
    * Concurrent collections
  • Concurrent tools in Java
    * Basic thread programming
       - Thread, Runnable
  • Executor Framework
    * Executors, Callable, Future
  • Asynchronous signaling
    * CompletionService
  • Java 8 Enhancements
    * New types in java.util.atomic
    *ConcurrentHashMap improvements
    * CompletableFuture

Vad tycker våra kursdeltagare

"Very good approach of "put your code here" as it will stay us focused on the new stuff. Good to work towards testcases, test driven education ;) Thanks! Will recommend to others within Ericsson."  "This training is very good for me, I learnt a lot Java 1.8 new futures and how to use them effectively. Thank you very much for your good instruction and patient explanation for my questions."  "Tumme upp för två skärmar!"  "Very good exercises with all unit tests! And everything worked without any problems." 

Intresseanmälan

Fyll i dina uppgifter om du är intresserad och vill veta mer om kursen: Effective Core Java.


En intresseanmälan ger dig möjlighet att komma i kontakt med utbildningsarrangören


Du blir kontaktad och får mer information - För att kunna ta rätt beslut


En intresseanmälan är ingen bokning. Du förbinder dig inte till något

Errors
Valfritt
Valfritt
Valfritt
Valfritt
Valfritt

Informator

Informator

Informator Time-to-Skills™

Informator är ett utbildningsföretag som stärker individens, gruppens och organisationens konkurrensförmåga genom att underhålla, uppdatera och tillföra relevant kunskap inom IT. Sedan 1990 har informator utbildat många av de ledande företagen på den Nordiska marknaden. Tillsammans med vårt finska ägarbolag Soprano...


Läs mer om Informator och visa alla utbildningar.

Kontaktuppgifter till Informator

Informator

Karlavägen 108
115 26 Stockholm

 Visa telefonnummer