Visa utbildning.se som: Mobil

Vi gör just nu en uppföljande undersökning gällande hur COVID-19 har påverkat och fortsätter att påverka hur och om du väljer att gå en utbildning. Vi är så tacksamma om du vill svara på våra frågor. Gå till undersökningen.

Effective Core Java

Informator
Kort om utbildningen
4 dagar
32 950 SEK Momsfri
Nästa tillfälle: Efter överenskommelse - Distans
Onlineutbildning
   
Distans

Kursbeskrivning


Effective Core Java focuses on the huge steps taken in modern Java technology, now supporting functional programming by introducing lambda expressions widely used in the core APIs and as the basis for the new Streams API.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 learn how to follow best practices in order to produce high quality code in terms of performance, maintainability and readability.
Core Java APIs will be covered in detail. The course expands on the many new features introduced in Java 8/9/10 e.g. the Date & Time API, functional programming, enhanced interface definitions and the new Stream API. As an extra feature you will get an introduction to creating concurrent applications using modern Java tools.
Code examples/exercises will be presented in UML and correct robust Java code, complemented by a great number of predefined unit tests.
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.

Unit Testing

Overview of unit testing

Test Framework Architecture
Basic Test Case
Test suite
Negative Tests
Data Driven Tests
Performance Tests
Code Coverage

Overriding Object Methods

Object class methods

equals
hashCode
toString
clone
finalize

Implementation of interface Comparable

Exception handling

Errors vs. Exceptions
Overview exceptions

Runtime exceptions
Checked exceptions
Chained exceptions

Exception handling best practice

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
Utility Classes

Software Design – Interfaces

Class design

Interfaces defines contracts
Abstract Classes
Interface vs. Abstract class

Enhanced Java interfaces

Interfaces supporting static methods
Interfaces supporting private methods
Interfaces supporting default methods
default methods vs. Inheritance

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
Annotations vs. Naming Patterns
Using Format for textual output

Generics and Typesafe Collections

Generics

Parameterized types
Arrays vs. Generics

Type safety in collection classes

Erasure guarantees backwards compatibility

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
Static factory methods for Collections

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

Modern Java enhancements to the Collections Framework

static and default methods throughout the API

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

Optional

Optional a safe wrapper for return values

Static factory for wrapping any type in an Optional
Prepared for empty return value

Eliminates the need for returning null

Optional handling existing/missing return value

Supporting default values
Supporting suppliers

Optional prepared for the Streams API

Supporting empty streams
Supporting streams of Optional

Serialization

Serialization mechanism in Java

Version handling for Serializable classes

Customization of serialization

Producing your own protocol

Deserialization Filters

Guarding an application against overload attacks

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

Date & Time API

Scientific Time

Instant
Duration

Calendar Time

LocalTime, LocalDate, LocalDateTime
Period

Zone-based Calendar Time

ZoneID
ZonedDateTime

Formatting Date & Time

The Streams API

Stream creation from existing sources

Arrays, Collections, Files

Iterations using stream operations
Streams supporting use of lambda expressions
Filtering, transforming and reducing streams

Collectors for statistics
Collectors for storing of output in List/Set
Grouping output in Map using keyMapper/valueMapper
Combining input from multiple sources using flatMap
Producing output from a Map using BiConsumer

Bulk operations for collections

Piping operations for enhanced performance

Enabling parallel processing of streams

Concurrency

Concurrent tools in Java

Basic thread programming

Thread, Runnable

Executor Framework

Executors, Callable, Future

Asynchronous signaling

CompletionService

Modern Java Enhancements

New types in java.util.atomic
ConcurrentHashMap improvements
CompletableFuture supporting Supplier and Consumer

Concurrency support for aggregates

Arrays supporting parallelism
Interface Collection added support for parallel streams
Interface Spliterator

Hur påverkar COVID-19 denna utbildning?

Vi på utbildning.se är övertygade om att kunskap driver människor och organisationer framåt. Det gör även de arrangörer vi samarbetar med.
Många utbildningar ställs exempelvis om från klassrums- till distansutbildning.

För att ta reda på om en utbildning påverkas med anledning av COVID-19, kontakta gärna arrangören.

Intresseanmälan

Fyll i formuläret för att få mer information om Effective Core Java, direkt från arrangören. Det är gratis och inte bindande!

Informator

Informator

Utbildningsutbud

Informator är utbildningsföretaget som stärker din konkurrenskraft genom att underhålla, uppdatera och tillföra relevant kunskap inom IT och management där och när du behöver det. Vi har vuxit tillsammans med svensk mjukvaruindustris ledande företag och utbildat utvecklare, tekniker, projektledare och chefer sedan...


Läs mer om Informator och visa alla utbildningar.

Kontaktuppgifter

Informator

Karlavägen 108
115 26 Stockholm

 Visa telefonnummer

Recensioner
Kursrecensioner
Bli den första att recensera Effective Core Java!

Arrangörsrecensioner
(4,5)
Baseras på 712 recensioner.
Alla recensioner för arrangören

Liknande utbildningar