Javaprogrammering – Avancerad

Javaprogrammering – Avancerad

Översikt

Det här utbildningen är för dig som vill gå vidare och lära dig avancerad Javaprogrammering!

Du får lära dig hur man tillämpar beprövade DesignPatterns, olika tekniker för att hantera XML-filer, såväl för konfiguration som för lagring av data. Du får lära dig hur man skriver avancerade multitrådade applikationer med hjälp av såväl traditionella trådklasser som med ramverket Executor Framework.

Du kommer att förstå den underliggande tekniken för nätverks-programmering och hur man bygger distribuerade RMI-applikationer. Du får lära dig att skapa återanvändbara komponenter; JavaBeans. Slutligen ingår i kursen metoder för analys av existerande klasser, optimering av befintlig kod och prestandamätning för Javaapplikationer.

  • Skriva effektiv Javakod
  • Förstå hur Java fungerar på djupet
  • Tillämpa designmönster i Java
  • Bygga robusta förändringsbara system
  • Skapa avancerade multitrådade applikationer
  • Använda olika Java-tekniker för hantering av XML-filer
  • Skapa distribuerade client-/serverlösningar
  • Skapa återanvändbara komponenter
  • Hantera verktyg för mätning av prestanda

Javakunniga programmerare, systemerare och projektledare som vill kunna bygga avancerade system som utnyttjar hela potentialen i Java.

Kunskaper i Java-programmering samt grundläggande kunskap inom objektorientering.

Denna kurs har ingen certifiering

Kursinnehåll

1. Design Patterns

  • Avancerad objektorientering med Java och UML
  • Skapande mönster
  • Strukturella mönster
  • Beteendemönster
  • Tillämpning av designmönster i Javas standardbibliotek

2. Trådprogrammering med Java

  • Gränssnittet Runnable och klassen Thread
  • Synkronisering: synchronized, wait, notify, notifyAll
  • Teknik för trådsäker kod
  • Primitiverna bakom trådhanteringen
  • Regler för variabler och låsningar
  • Designmönster Producer-Consumer

3. Executor Framework

  • Ramverk java.util.concurrent
  • Executor och ExecutorService
  • Gränssnittet Callable
  • Gränssnitten Future och FutureTask
  • Specialdesignade klasser: Semaphore, CountDownLatch, CyclicBarrier, Exchanger
  • Trådsäkra samlingsklasser: BlockingQueue, DelayQueue ConcurrentHashMap
  • Lås: Lock, ReadWriteLock, ReentrantLock, Condition
  • Atomära variabler
  • Fork/Join ramverk

4. Java och XML 

  • XML: Textbaserad standard för data
  • JAXP, JAXB: Javastöd för hantering av XML
  • Validering av XML-dokument med DTD, XML-Schema
  • Tekniker för parsning av XML i Java: SAX, DOM
  • Manipulering av XML-baserad data i Java
  • XML för konfiguration och processering av Java-applikationer
  • Tekniker för läsning och skrivning av XML med StAX

5. New I/O

  • Package java.nio
  • Prestandaförbättringar jämfört med java.io
  • Klasser för effektiv tvåvägskommuniktion
    • Channels
    • Buffers
  • Direktöverföring mellan strömmar via underliggande OS
  • NIO2 Åtkomst av underliggande Filsystem

6. Nätverksprogrammering med Java

  • ServerSocket och Socket
  • Sätta upp en server
  • Ansluta till server från klient
  • Tvåvägskommunikation över Socket-förbindelse
  • ServerSocketChannel och SocketChannel för icke-blockerande kommunikation

7. Distribuerade tjänster

  • Distribuerade tjänster
  • Register för åtkomst av tjänster
  • RMI – Remote Method Invocation
  • Implementation av RMI-tjänst
  • Registrering av RMI-objekt i rmiregistry på server
  • Anrop av RMI-objekt via namntjänst
  • CORBA
  • WebServices

8. Java Deep Dive

  • Reflection
  • ClassLoaders
  • Security

9. JavaBeans

  • Mjukvarukomponenter
  • JavaBeans definition och egenskaper
  • Attribut: Normal, Indexed, Bound, Constrained
  • PropertyChangeSupport / VetoableChangeSupport
  • Callback-rutiner för händelselyssnare
  • Serialisering till XML-format
  • JavaBeans och JSP
  • Enterprise Java Beans (EJB)

10. Prestanda

  • Optimering
  • Javas exekveringsomgivning
  • Javas minnesallokering
  • Kompilatorteknik
  • JVM parametrar
  • Automatisk minnesåtervinning
  • Garbage collection: mark-and-sweep vs generational
  • JMX – verktyg för analys av prestanda
  • Säkerhetsaspekter för Javaapplikationer

Övningar

Tillämpningar av olika Design Patterns

Implementera multitrådade applikationer med traditionell teknik

Använda Executor Framework för att separera trådjobb från exekvering

Tillämpa ramverket Fork/Join för att effektivt utnyttja fler-kärninga CPUer

Använda DOM-teknik för konfiguration av en applikation

Använda StAX-teknik för att läsa/skriva från/till XML

Använda Sockets för att kommunicera mellan Client/Server

Skapa distribuerade tjänster med RMI

Skapa icke-visuell och visuell komponent med JavaBeans

Utföra prestandamätning på en Java-applikation

Kursöversikt

28 450 kr

3 Dagar

Distans, Klassrum

Fortsättning

Engelska, Svenska

Startgaranti gäller om kursen har datum, om inget annat framgår.

Hittar du inget (passande) datum? Skicka in en intresseanmälan så gör vi vad vi kan för att planera ett tillfälle som passar. 

Fö­re­tags­an­pas­sad kurs

Kursen kan anpassas från flera perspektiv:
  • Innehåll och fokusområde
  • Omfattning
  • Upplägg

I samspel med kursledaren ser vi till att kursen uppfyller era önskemåll

Skicka intresseanmälan för utbildningen