Veranstaltungsort

München

Inhouse-Seminar

Haben Sie Interesse an einer individuellen Inhouse-Schulung zu diesem Thema? Nehmen Sie einfach Kontakt mit uns auf.

»Anfrage für Inhouse-Seminar

Ansprechpartner

Ihr Ansprechpartner: Mirko Hillert

Mirko Hillert
Tel.: +49 (0)331-282-2225
Fax: +49 (0)331-282-2228
E-Mail: mhillert@entwickler-akademie.de

Mastering the JVM - Einmaliges und exklusives Training mit Ted Neward!

Trainer

Dauer

3 Tage

Seminarbeschreibung

Java, or rather, the JVM, remains the primary platform for delivering high-scale, high-throughput, high-quality enterprise applications. Regardless of the language used, be it Java, Clojure, Scala or Groovy, it all runs on top of a sophisticated execution engine platform that, unfortunately, few developers seem to understand beyond a very shallow surface level. In this class, we’ll peel back the covers on the Java Virtual Machine and see how it works, complete with exercises to help reinforce those concepts.

Installations: Students should come with a copy of VMWare Player installed – Ted will build a virtual machine that has all software installed, along with slides and labs in place.

Seminarinhalt

Day 1: Code, Code, Code

The Java Virtual Machine, at its heart, is an execution engine, which means that somehow it needs code to execute. We’ll look first at what that code format—commonly referred to as “Java bytecode” or more informally as just “bytecode”—looks like, and how common Java language constructs map into it. Then, we’ll examine how that bytecode is loaded into the JVM at runtime via the famous (or infamous) ClassLoader, and some of the benefits and drawbacks associated with it. Finally, because ultimately somehow the JVM needs to know how to interact with the operating system underneath it, we’ll go over how the JVM executes native (non-Java) code against the underlying platform.

  • Java bytecode
  • ClassLoaders
  • Java, JNI and Native code


Day 2: Multiple code paths

As CPUs gain more “cores” and look to improve performance through parallel execution, whether we like it or not, code is quickly becoming something that cannot be executed in a single line anymore. Fortunately the JVM has multi-execution “built in”, in the form of threads, and a concurrency model, in the form of monitors, both of which were extended significantly with the release of Java 5. We’ll look first at the threading model of the JVM, and how it interacts with the underlying operating system/platform, then at the monitor concept and how it provides thread safety. Finally, we’ll look at some parallel programming patterns and idioms, as well as some new ideas that are emerging both within the JVM and from the ecosystem around Java to make it easier to write multi-core-friendly code.

  • Threads and Concurrency
  • Parallel Programming Patterns and Idioms


Day 3: Restricting code

Simply turning an execution engine loose to execute anything it can get its hands on is a generally dangerous idea—in fact, in some circles, an engine which doesn’t have some kind of restrictive capability around it is known as a “Trojan horse” waiting to be ridden. The JVM has a rich security model for restricting what code can do within it, and JVM developers can gain a huge safety net by configuring the security system baked within the JVM correctly to prevent execution disasters, whether run from the client or the server.

  • Platform Security
  • Advanced Platform Security
  • JAAS

Zusätzliche Hinweise

Unterkunft

Für die Teilnehmer des Workshops mit Ted Neward bietet das NH-Hotel Neue Messe einen Sonderpreis unter dem Kennwort „Entwickler Akademie“. Ein Einzelzimmer können Sie für € 109,- inkl. Frühstück buchen.

Alles auf einen Blick

  • Inkl. Abendevent am Montag mit kostenlosen Cocktails an der Hotelbar für bestes Networking.
  • Mittagessen sowie Erfrischungen und Snacks in den Pausen.
  • Sie erhalten das offizielle Entwickler-Akademie-Zertifikat, das Ihnen Ihre erfolgreiche Teilnahme bescheinigt.
  • Alle Slides, Quellcodes und Materialien des Camps werden Ihnen zur Verfügung gestellt.