shape-876@2x

פיתוח תוכנה

Extreme Java

מספר הקורס 4359

32 סה"כ שעות אקדמאיות
4 מפגשים
* מספר המפגשים והשעות למפגש עשויים להשתנות בין קורס לקורס
calendar-1.svg

המועדים הקרובים

הקורס נפתח גם במתכונת Live class –  למידה און ליין בכיתות אינטראקטיביות עם מיטב המרצים והתכנים של ג'ון ברייס /המי"ל.ניתן לפתוח קורס בהתאמה אישית לארגונים במועד שיתואם עימנו

קורס לקבוצות

הקורס נפתח במתכונת של קבוצה בלבד, בהתאמה אישית לארגונים.
לפרטים נוספים: Muzman@johnbryce.co.il

ספרו לי עוד

Overview

Java community, with more than 13 million programmers, seeks for experts. Mastering Java amazing APIs is great, but also common knowledge. Most Java developers uses containers such as servers, frameworks and mobile OS. They know a lot about these environments, which in most cases are written in Java. They create and deploy simple and complex applications to these containers. Actually, both containers and deployed modules are all hosted on Java Virtual Machine.

What do we really know about the JVM?

How memory is really used?

How classes are getting loaded?

What is the role of the 'invoke dynamic' feature?

How does the GC works?

And most important – how can we effect and optimize such features?

This course provides answers and much more.

 

Recently, Java 9 was released with some environmental and API dramatic enhancements. These enhancements includes Modular Java (Jigsaw project), Reactive programming API and cool new utilities like Jlink. The course relates to these new capabilities.

hat.png

מטרות הקורס

kahal.png

Who Should Attend

Java developers that want to become experts by exploring JVM internals and Java high-end core APIs

structure.png

תכנית הלימודים

syllabus

JVM Internals

  • Roles
  • Hotspot & JIT
  • Client & server compiler
  • Tiered compilation
  • Memory model
  • Object lifecycle
  • Memory areas
  • METASPACE (Java8)
  • Escape analysis
  • Class share
  • JVM tuning

GC

  • Roles
  • System.gc() & finalize()
  • GC algorithms
  • GC strategies
  • JVM defaults
  • Minor GC & Full GC
  • G1 & CMS
  • Monitoring GC

Class loading

  • introduction
  • Phases
  • Monitoring classes & class share
  • CL hierarchy
  • Custom CLs
  • Parallel class loading

Weak references

  • The need
  • References and ref queues
  • Soft ref
  • Weak ref
  • Phantom ref

Java concurrent API

  • Java basic thread model
  • Understanding wait() & notify()
  • ThreadLocal
  • ConcurrentAtomic
    • Why 'volatile' is not enough
    • Primitive wrappers
    • Object wrappers
    • Arrays wrappers
  • Thread executors
    • Runnable & Callable<T>
    • Executors utility
    • Executor types
    • Submit & execute
    • invokeAny, invokeAll
    • Handling Future<Y>
    • Custom thread factory
    • CompletableFuture (Java8)
    • Fork-Join
  • Lock API
    • Lock interface
    • ReadWriteLock
    • Conditions
    • CyclicBarrier
    • CountDownLatch
    • Semaphore
    • Optimistic reading with StampedLock (Java8)
  • Concurrent Collections
    • BlockingQueues
    • ConcurrentMaps

IO

  • NIO channels
    • File, socket
    • Selectable channel and non-blocking IO
  • NIO buffers
  • Encoders & decoders
  • NIO.2 file system API – intro
  • NIO.2 asynchronous channels
  • NIO.2 watch services – FS change detection

Reflection

  • The need
  • Loading classes
  • Exploring class constructors, methods and fields
  • Manipulate objects with reflection
  • Handling arrays
  • Handling annotations
  • Reflecting parameter names (Java8)

Java Functional programming – (Java8)

  • Understanding invoke dynamic
  • @FunctionalInterface
  • Predicate, Function, Consumer, Supplier
  • Default methods for interfaces
  • Using LAMBDA expressions
  • Using method references
  • Basic functional programming with Stream API
  • Intro to parallel streams, common pool and dedicated pools

Java 9 – New features

  • APIs
    • Reactive programming with flow
    • Collection Factories
    • Stream API new features
    • Private interface methods
    • HTTP/2 API
    • Stack walking
  • Environmental
    • Modular Java & Jlink
    • Jshell
    • Multi version jars
    • G1 made default
Prerequisites
  • Experience in Java development

Schedule Appointment

Fill out the form below, and we will be in touch shortly.

לא הצלחנו לאתר את הטופס.

בודק...