Java Core Programmierung
eBook - ePub

Java Core Programmierung

Memory Model und Garbage Collection

  1. 250 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Java Core Programmierung

Memory Model und Garbage Collection

About this book

FĂŒr Java-Entwickler sind nicht nur die Sprachelemente der Programmiersprache Java und die umfangreichen Bibliotheken des JDK (Java Development Kit) von Bedeutung; auch die Ablaufumgebung (JVM = Java Virtual Machine) ist relevant fĂŒr die Software-Entwicklung in Java. Das vorliegende Buch "Java Core Programmierung" befasst sich mit zwei grundlegenden und wichtigen Aspekten der Java-Ablaufumgebung: dem Java Memory Model (JMM) und der Freispeicherverwaltung (Garbage Collection.)Beim Java Memory Model geht es um die Regeln und Garantien fĂŒr konkurrierende Zugriffe auf Java-Objekte in Multithread-Programmen. Es werden u.a. folgende Fragestellungen betrachtet: Wann und unter welchen UmstĂ€nden werden Modifikationen, die ein Thread an einem Java-Objekt gemacht hat, anderen Threads sichtbar? Was genau ist der Effekt von Sprachmitteln wie synchronized, volatile und final? Was ist eine CAS-Operation? WofĂŒr werden atomare Variablen benötigt? Was ist Lock-Free-Programming und warum könnte es mich als Java-Entwickler interessieren?Schon seit Langem ist das Memory Model Bestandteil der Sprachspezifikation von Java. Es ist aber viele Jahre lang wenig beachtet worden. Erst seit Multi-CPU- und Multicore-Plattformen vorherrschend sind, gewinnt das Wissen ĂŒber die Details des Memory Models an Bedeutung. Detaillierte Kenntnisse des Memory Models sind unerlĂ€sslich fĂŒr alle Java-Entwickler, die Java-Anwendungen fĂŒr Multi-CPU- und Multicore-Hardware entwickeln und sich mit der Optimierung dieser Anwendungen hinsichtlich Skalierbarkeit und Performanz befassen.Zwar geht es auch beim Thema Freispeicherverwaltung um den "Speicher", aber mit dem Java Memory Model hat die Garbage Collection nichts zu tun. Es geht vielmehr um die Strategien, die eine virtuelle Maschine anwendet, um den im Programm mit new angeforderten Freispeicher zu verwalten und ihn wieder frei zu geben, wenn er nicht mehr benötigt wird. Virtuelle Maschinen verwenden dazu unterschiedliche Algorithmen. Im vorliegenden Buch werden die Garbage-Collection-Algorithmen der populĂ€ren HotSpot-JVM von Sun (heute Oracle) betrachtet. Es wird erlĂ€utert, warum Generational Garbage Collection sinnvoll ist, wie die HotSpot-JVM den Freispeicher aufteilt und wie die parallelen und konkurrierenden Garbage-Collection-Algorithmen funktionieren. Auch der relativ neue "Garbage-First" (G1) Collector wird vorgestellt. Ein wesentliches Augenmerk liegt dabei auf dem Tuning dieser zahlreichen Garbage-Collection-Algorithmen. Es lohnt sich beispielsweise zu prĂŒfen, wie viel von der gesamten CPU-Zeit einer Java-Applikation fĂŒr die Garbage-Collection aufgewendet werden muss. Idealerweise möchte man einen möglichst hohen Durchsatz haben, d.h. es soll viel CPU-Zeit fĂŒr die Anwendung zur VerfĂŒgung stehen und nur wenig Zeit fĂŒr die Freispeicherverwaltung aufgewendet werden. Auch sollte die Garbage Collection nicht zu störenden Pausen fĂŒhren, in denen sĂ€mtliche Applikations-Threads zum Zwecke der Garbage Collection angehalten werden. Um die Maximierung des Durchsatzes und die Minimierung der Pausenzeiten zu erreichen, bietet die HotSpot-JVM zahlreiche Tuning-Möglichkeiten.Das Buch basiert auf einer Artikelserie, die die Autoren im Java Magazin in den Jahren 2008 bis 2011 veröffentlicht haben. Weitere BeitrĂ€ge der Artikelreihe sind unter http://www.angelikalanger.com/Articles/EffectiveJava.html zu finden.

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription.
No, books cannot be downloaded as external files, such as PDFs, for use outside of Perlego. However, you can download books within the Perlego app for offline reading on mobile or tablet. Learn more here.
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes! You can use the Perlego app on both iOS or Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Yes, you can access Java Core Programmierung by Angelika Langer, Klaus Kreft in PDF and/or ePUB format, as well as other popular books in Informatik & Programmierung in Java. We have over one million books available in our catalogue for you to explore.

Information

Table of contents

  1. Cover
  2. Vorwort
  3. Teil A – Java-Memory-Modell
  4. 1 EinfĂŒhrung in das Java-Memory-Modell
  5. 2 Das Java-Memory-Modell im Überblick
  6. 3 Die Kosten der Synchronisation
  7. 4 Details zu volatile-Variablen
  8. 5 volatile und das Double-Check-Idiom
  9. 6 Regeln fĂŒr die Verwendung von volatile
  10. 7 Die Initialisation-Safety-Garantie
  11. 8 Über die Gefahren allzu aggressiver Optimierungen
  12. 9 Atomic Scalars
  13. 10 Atomare Referenzvariablen
  14. 11 CopyOnWrite‹ArrayList
  15. Verweise zu Teil A
  16. Teil B – Memory Management und Garbage Collection
  17. 12 Generational Garbage Collection
  18. 13 Young Generation Garbage Collection
  19. 14 Old Generation Garbage Collection – Teil 1
  20. 15 Old Generation Garbage Collection – Teil 2
  21. 16 Garbage Collection Tuning – die Ziele
  22. 17 Garbage Collection Tuning – die Details
  23. 18 Garbage-First (G1) Garbage Collector – Teil 1
  24. 19 Garbage-First (G1) Garbage Collector – Teil 2
  25. Verweise zu Teil B
  26. Die Autoren