Javaprogrammering – avancerad

Javaprogrammering – avancerad

Översikt

Vill du fördjupa dina kunskaper i Java och bli en expert på avancerad programmering?
Den här kursen är skräddarsydd för dig som redan behärskar grunderna och vill ta nästa steg mot professionell utveckling med Java.

Du kommer att lära dig:

  • Design Patterns i praktiken
    Lär dig använda beprövade designmönster för att skriva robust, skalbar och underhållbar kod.
  • Effektiv hantering av XML-filer
    Upptäck tekniker för att arbeta med XML – både för konfiguration och datalagring.
  • Multitrådade applikationer med hög prestanda
    Skapa avancerade program med traditionella trådklasser och Executor Framework.
  • Nätverksprogrammering & distribuerade system
    Förstå grunderna i nätverkskommunikation och hur man bygger distribuerade RMI-applikationer.
  • JavaBeans
    Lär dig skapa återanvända komponenter.
  • Kodanalys och Prestandaoptimering
    Slutligen ingår i kursen metoder för analys av existerande klasser, optimering av befintlig kod och prestandamätning för Java-applikationer.
  • 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ör samtliga utbildningar gäller våra
Allmänna Villkor.

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