Was ist Ihr Lieblingsbereich der Java API?

7

Ich bin neugierig zu erfahren, was andere Java-Programmierer als ihren bevorzugten Teil der Sprache empfinden, warum sie sich so fühlen und warum andere Programmierer auch ein genaues Wissen davon haben sollten. Ich suche nach Gründen wie Einfachheit, Leistung usw. Danke.

    
Aaron 19.09.2008, 17:22
quelle

15 Antworten

22

Meine bevorzugte Java API ist das Collections Framework . Ich benutze es die ganze Zeit, anstatt meine eigenen Implementierungen zu rollen, und es ist sehr angenehm und einfach zu bedienen. Es besteht aus mehreren nützlichen und austauschbare Implementierungen von leistungsstarken Datenstrukturen und Algorithmen sowie verschiedene Komfortmethoden zum Einbinden zusätzlicher Funktionen um sie herum.

Ein Tutorial von Josh Bloch finden Sie hier: Ссылка

    
Aaron 19.09.2008, 17:23
quelle
10

Mein Lieblingsteil der API ist definitiv java.lang . Es hat diese Klasse namens String , mit der Sie einfach Arrays von Zeichen manipulieren können. Jeder Programmierer, der es ernst meint, guten Java-Code zu schreiben, sollte das ausprobieren.

    
Michael 19.09.2008 17:41
quelle
9

java.util.concurrent ist kritisch zu meinem Leben. Wir machen ziemlich viel Multicore-Programmierung und die Idee, alle unsere Aufgaben mit alten rohen Threads zu implementieren, lässt mich einfach krank fühlen.

Ein gutes Beispiel dafür, wo das Concurrency-Paket unser Leben wirklich erleichtert, ist der Pool spezialisierter Datenstrukturen, den es bietet. Mein persönlicher Favorit ist die CopyOnWriteArrayList . Wir verwenden ziemlich viel in Situationen, in denen die Anzeigeaufgabe aus einem Cache von Daten liest, um den Bildschirm zu aktualisieren, während eine andere Aufgabe Informationen aus dem Netzwerk übernimmt, um den Cache zu aktualisieren. Normalerweise wäre dies eine Einladung für Kollisionen, ConcurrentModificationExceptions und ähnliche Schrecken . Mit der CopyOnWriteArrayList erstellt die Schreibaufgabe eine neue Kopie der Daten, wenn Daten hinzugefügt werden müssen. Auf diese Weise wird sichergestellt, dass der Reader immer eine gültige (wenn auch potenziell veraltete) Datenmenge anzeigt.

Wie der Javadoc sagt,

  

Das ist normalerweise zu teuer, aber vielleicht   effizienter sein als Alternativen   wenn Traversierungsoperationen in großem Umfang   Überzahl Mutationen und ist nützlich   wenn du nicht willst oder willst   Traversalen synchronisieren, müssen aber   Interferenz zwischen gleichzeitig ausschließen   Themen.

Java beseitigt ganze Klassen von Fehlern, die ich normalerweise einführen würde, um dieses Problem zu lösen, wodurch ich mich auf die eigentlichen Probleme konzentrieren kann, die ich lösen muss.

    
Bob Cross 21.09.2008 01:18
quelle
4

Definitiv das Collections Framework. Es wird die ganze Zeit verwendet, egal ob Sie serverseitig Java oder clientseitig, grafisch oder nicht arbeiten. Es ist einfach zu bedienen. Die meisten Datenstrukturklassen haben sowohl eine nicht-generische als auch eine generische Version (am besten, die zweite zu verwenden, aber es gibt Legacy-Code, der die erste stark verwendet), aber sie sind in Bezug auf die API abgesehen von den Klassenparametern ziemlich identisch. In .NET können die zwei Versionen unterschiedliche Namen / API haben und es kann sehr verwirrend werden. Ich mag auch, dass das Java Collections Framework Algorithmen als statische Methoden (z. B. Collections.sort (collectionVar)) und nicht als Instanzmethoden hat. In .NET verwenden sie Instanzmethoden und aus irgendeinem Grund hat nicht jede Datenstruktur eine Sortierung ... das Collections Framework ist ebenfalls sehr reich und Sie können sowohl einfache als auch spezialisierte Datenstrukturen finden (zB LinkedHashMap, das den Insertionsauftrag beibehält) / p>

Ein Nachteil, den ich gehört habe, ist, dass das Framework nicht gut funktioniert und einige Leute ihre eigenen schreiben. Ich kann es nicht überprüfen, da ich mich nicht mit performance-kritischen Dingen befasse.

    
origin 19.09.2008 17:51
quelle
3

javax.naming

Ссылка

Java ist aufgrund seiner Portabilität eine großartige Technologie für die Systemintegration, und JNDI macht einen guten Job, um die Komplexität des ersten Kontakts mit einem entfernten System zu abstrahieren.

    
Internet Friend 19.09.2008 17:36
quelle
3

Reflexion. Einige davon finden Sie in java.lang.reflect und einige in java.lang (hauptsächlich Class und ClassLoader) .

    
John Meagher 19.09.2008 21:29
quelle
3

Streams. Die Streams in Java sind viel leichter zu verstehen und zu implementieren als ihre Gegenstücke in C ++ (Meinung) und es ist normalerweise einfach zu sehen, was ein Stream für Sie tun wird, basierend auf den Namen der Streams, die mit der API kommen.

    
MetroidFan2002 20.09.2008 00:35
quelle
2

Ich bin ein großer Fan von JPA in Java EE . Es hat den Arbeitsaufwand reduziert, den ich sowohl für große Apps (die EJBs verwenden) als auch für kleine Apps benötigen.

Ganz nah dran ist JAAS, die Sicherheits-API, hier ist der Link für Java SE JAAS : Ссылка

    
Hugh Buchanan 19.09.2008 17:29
quelle
2

Bisher ist das API-Paket java.util.regex mein Favorit, weil es mich davon abgehalten hat, das Rad bei so vielen Gelegenheiten neu zu erfinden, wenn es darum geht, Strings für verschiedene Zwecke zu suchen und zu verwenden.

    
Brady Goldman 22.10.2012 01:25
quelle
1

java.util ist sehr nützlich. Warum?

  • Sammlungen. Viele von ihnen!
  • Datums- und Uhrzeitklassen
  • Textscanner
  • Dependency-Injection-Dienstprogramm (seit Java 6)
  • Ein Timer-Thread
  • Zufallszahlen
  • Das Beobachtermuster ist da
  • Java Eigenschaften
Marcio Aguiar 19.09.2008 17:32
quelle
1

java.util.jar - Hilft beim Laden von .jar-Dateien in einen Klassenlader für meine Anwendungsplugins! Ich liebe es.

    
Richard Walton 19.09.2008 18:10
quelle
1

java.util.regex

Es gibt andere Pakete, ohne die ich nicht leben kann, aber das Regex-Paket muss in der obersten Stufe der "größten Ergänzungen zu Java" sein - definitiv genau dort oben mit Sammlungen.

    
Chris Mazzola 19.09.2008 18:29
quelle
1

Ich stimme dem Reflexionskommentar zu. bei weitem der nützlichste / mächtigste Teil der Java API

    
Richard 20.09.2008 00:31
quelle
1

Wenn ich an meine Java-Tage zurückdenke, war die am meisten Spaß machende API java.util.concurrent , einfach weil es gut durchdachte und einfach zu verwendende Bausteine ​​für die parallele Verarbeitung bietet.

    
Torsten Marek 20.09.2008 21:24
quelle
0

InheritableThreadLocal den ganzen Weg !!! Nur so viel Gelegenheit, verschleierten Code zu schreiben und die Rolle des Seils, um sich aufzuhängen, scheint einfach nie auszugehen.

    
Nicholas 05.01.2009 23:19
quelle

Tags und Links