קורסים מקצועיים למתקדמים

פיתוח תוכנה

Extreme Java

מספר הקורס 4359

למה ללמוד בג'ון ברייס?
  • למידה חדשנית ודינמית עם כלים מתקדמים בשילוב סימולציות, תרגול וסביבות מעבדה
  • מגוון הכשרות טכנולוגיות עם תכנים המותאמים להתפתחות הטכנולוגית ולביקוש בתעשיית ההייטק
  • מובילים את תחום ההכשרות לעולם ההייטק והטכנולוגיה כבר 30 שנה, עם קהילה של עשרות אלפי בוגרים
  • אתם בוחרים איך ללמוד: פרונטאלית בכיתה, מרחוק ב- Live Class או בלמידה עצמית

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

קורס לקבוצות

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

ניתן לפתוח את הקורס בהתאמה אישית ומלאה לצרכי הארגון, במועדים ומערכי לימוד גמישים בשילוב תכנים ייעודים.

משך הקורס

שעות אקדמיות:

32

מספר מפגשים:

קורס בוקר:

4

מספר מפגשים:

קורס בוקר:

4

מתכונת הקורס

הקורסים המוזמנים לארגונים מותאמים באופן אישי ומלא לצרכי הארגון, מערכי הלימוד גמישים וניתן לשלב בהם תכנים רלוונטיים וייעודיים.

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.

מטרות הקורס

Who Should Attend

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

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

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.

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

בודק...