Ö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.
Kursmål
- 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
Målgrupp
Javakunniga programmerare, systemerare och projektledare som vill kunna bygga avancerade system som utnyttjar hela potentialen i Java.
Förkunskaper
Kunskaper i Java-programmering samt grundläggande kunskap inom objektorientering.
Certifiering
Denna kurs har ingen tillhörande certifiering. Varje deltagare som genomför kursen får ett kursintyg.
Utbildare
Denna kurs levereras i samarbete med en av Informators partners.
Läs mer om kursen
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ägskommunikation
- 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