Club utilise des cookies et des technologies similaires pour faire fonctionner correctement le site web et vous fournir une meilleure expérience de navigation.
Ci-dessous vous pouvez choisir quels cookies vous souhaitez modifier :
Club utilise des cookies et des technologies similaires pour faire fonctionner correctement le site web et vous fournir une meilleure expérience de navigation.
Nous utilisons des cookies dans le but suivant :
Assurer le bon fonctionnement du site web, améliorer la sécurité et prévenir la fraude
Avoir un aperçu de l'utilisation du site web, afin d'améliorer son contenu et ses fonctionnalités
Pouvoir vous montrer les publicités les plus pertinentes sur des plateformes externes
Gestion des cookies
Club utilise des cookies et des technologies similaires pour faire fonctionner correctement le site web et vous fournir une meilleure expérience de navigation.
Ci-dessous vous pouvez choisir quels cookies vous souhaitez modifier :
Cookies techniques et fonctionnels
Ces cookies sont indispensables au bon fonctionnement du site internet et vous permettent par exemple de vous connecter. Vous ne pouvez pas désactiver ces cookies.
Cookies analytiques
Ces cookies collectent des informations anonymes sur l'utilisation de notre site web. De cette façon, nous pouvons mieux adapter le site web aux besoins des utilisateurs.
Cookies marketing
Ces cookies partagent votre comportement sur notre site web avec des parties externes, afin que vous puissiez voir des publicités plus pertinentes de Club sur des plateformes externes.
Une erreur est survenue, veuillez réessayer plus tard.
Il y a trop d’articles dans votre panier
Vous pouvez encoder maximum 250 articles dans votre panier en une fois. Supprimez certains articles de votre panier ou divisez votre commande en plusieurs commandes.
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.