Frage

Ich bin neugierig zu erfahren, was andere Java-Programmierer für ihren Lieblingsteil der Sprache halten, warum sie so denken und warum andere Programmierer ebenfalls fundierte Kenntnisse darüber haben sollten.Ich suche nach Gründen wie Einfachheit, Leistung usw.Danke.

War es hilfreich?

Lösung

Meine Lieblings-Java-API ist die Collections Framework . Ich finde ich die ganze Zeit anstelle meine eigenen Implementierungen von Rollen, und es ist sehr angenehm und einfach zu bedienen. Es besteht aus mehreren nützlich und austauschbar Implementierungen von High-Performance-Datenstrukturen und Algorithmen, sowie mehr bequemen Methoden für um sie zusätzliche Funktionalität wickeln.

Ein Tutorial von Josh Bloch finden Sie hier: http: // java.sun.com/docs/books/tutorial/collections/index.html

Andere Tipps

Mein Lieblingsteil des API ist definitiv java.lang . Es hat diese Klasse namens String, die Sie leicht zu manipulieren Arrays von Zeichen erlaubt. Jeder Programmierer, der ernst ist das Schreiben von gutem Java-Code sollte es überprüfen.

java.util.concurrent ist entscheidend für mein Leben. Wir haben eine ganze Reihe von Multi-Core-Programmierung und die Idee, zu versuchen, alle unserer Aufgaben rohe Threads im alten Stil mit implementieren macht mich einfach krank fühlen.

Ein gutes Beispiel, wo die Gleichzeitigkeit Paket wirklich unser Leben einfacher macht, ist der Pool von spezialisierten Datenstrukturen, die es bietet. Mein persönlicher Favorit ist der CopyOnWriteArrayList . Wir verwenden die sehr viel in Situationen, in denen die Anzeige Aufgabe aus einem Cache von Daten liest den Bildschirm zu aktualisieren, während eine andere Aufgabe Informationen aus dem Netz nehmen wird, um den Cache zu aktualisieren. Normalerweise würde dies für Kollisionen eine Einladung sein, ConcurrentModificationExceptions und ähnliche Schrecken. Mit Hilfe der CopyOnWriteArrayList, wird die Schreibaufgabe eine neue Kopie der Daten erstellen, wenn es Daten hinzufügen muss, damit sichergestellt wird, dass der Leser immer ein gültiges haben (wenn auch möglicherweise nicht mehr aktuell) Datensatz angezeigt werden soll.

Wie die javadoc sagt,

  

Dies ist normalerweise zu teuer, kann aber   effizienter sein als Alternativen   wenn Traversal Operationen erheblich   Mutationen zahlreicher als und ist nützlich   wenn Sie nicht können oder wollen nicht   synchronisieren Querungen, doch müssen   schließt Interferenzen zwischen gleichzeitigen   Threads.

Java beseitigt ganze Klassen von Fehlern, die ich normalerweise einführen würde, dieses Problem zu lösen, mir ermöglicht, auf die tatsächlichen Probleme zu konzentrieren, die ich brauche zu lösen.

Auf jeden Fall das Collections Framework. Es wird die ganze Zeit verwendet, ob Sie serverseitige Java oder Client-Seite, grafische oder nicht tun. Es ist einfach zu bedienen. Die meisten Datenstrukturklassen haben sowohl eine nicht-generische und eine generische Version (am besten über das zweite Gerät, aber es gibt Legacy-Code, die stark den ersten verwendet), aber sie sind ziemlich identisch in Bezug auf die API andere als die Klassenparameter. In .NET können die beiden Versionen unterschiedliche Namen / API haben und es kann sehr verwirrend sein. Ich mag auch, wie die Java Collections Framework haben Algorithmen als statische Methoden (z Collections.sort (collectionVar)) und nicht als Instanzmethoden. In .NET verwenden sie Instanzmethoden und aus irgendeinem Grunde nicht jede Datenstruktur hat eine Art ... die Collections Framework auch sehr reich ist und Sie können sowohl einfach als auch spezialisierte Datenstrukturen (zB LinkedHashMap, die der Anzeigenauftrag erhält) finden.

Ein Nachteil ich gehört habe, ist, dass der Rahmen nicht gut durchführen und einige Leute schreiben ihre eigenen. Ich kann es nicht überprüfen, da ich nicht mit leistungskritischen Sachen beschäftigen.

javax.naming

http: //java.sun .com / JavaSE / 6 / docs / api / javax / Benennung / Paket-summary.html

Java ist eine große Systemintegration techonolgy wegen seiner Portabilität und JNDI macht einen guten Job, die Komplexität zu abstrahieren weg von ersten Kontakt mit einem entfernten System zu bekommen.

Reflektionen. Ein Teil davon ist in java.lang .reflect und einige in java .lang (hauptsächlich Klasse und Classloader).

Streams. Die Ströme in Java sind viel leichter zu erfassen und zu implementieren als ihre Kollegen in C ++ (Meinung), und es ist in der Regel leicht zu sehen, basierend auf dem Namen der Ströme, die mit der API kommen, was ein Stream für Sie tun wird.

Ich bin ein großer Fan von JPA in Java EE . Es reduziert die Menge der Arbeit, die ich brauche für große Anwendungen zu tun (die EJBs würde verwenden) und kleine Anwendungen.

Eine enge zweite ist JAAS, die Sicherheits-API, hier ist der Link für Java SE JAAS : http://java.sun.com/javase/technologies/security/

Bisher ist das java.util.regex API-Paket mein Favorit, weil es mich von mit neu zu erfinden das Rad bei so vielen Gelegenheiten verhindert hat, wenn es um die Suche und Verwendung von Stücken von Strings für verschiedene Zwecke kommt.

java.util ist sehr util. Warum?

  • Sammlungen zum Verkauf. Viele von ihnen!
  • Datum und Uhrzeit Klassen
  • Text-Scanner
  • Dependency Injection-Dienstprogramm (seit Java 6)
  • Ein Timer-Thread
  • Zufallszahlen
  • Das Beobachter-Muster ist es
  • Java Eigenschaften

java.util.jar - Hilft bei Laden .jar-Dateien in einen Klassenlader für meine Anwendung Plugins! Ich liebe es.

java.util.regex

Es gibt noch andere Pakete ich nicht leben kann, aber das regex-Paket hat in der Spitzengruppe der „größter Ergänzungen java“ sein -. Auf jeden Fall bis es mit Sammlungen

Ich bin mit der Reflexion Kommentar. weit von dem nützlichsten / mächtig Teil des Java-API

Wenn ich an meine Java-Tage zurückdenke, war die Verwendung der API am meisten Spaß java.util.concurrent, einfach weil es durchdachte und einfach zu verwendende Bausteine ​​für die Parallelverarbeitung bereitstellt.

InheritableThreadLocal den ganzen Weg !!! Nur so viel Gelegenheit verschleierten Code und die Rolle des Seils zu schreiben, sie zu hängen einfach nie zu laufen scheint.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top