[Java] LRU Cache mit Hilfe einer LinkedHashMap

Oftmals benötigt man als Java-Entwickler eine kleine, feine Cache-Klasse, um verschiedene Objekte zwischenzuspeichern und die Datenbank zu schonen. Oftmals wird dann selber mit Arrays, Maps und Listen rumgefuchtelt. Viele kennen nämlich gar nicht die praktische Klasse java.util.LinkedHashMap.

Dabei ist es mit Hilfe dieser Klasse extrem einfach, einen sogenannten LRU-Cache aufzubauen, also einen Least-Recently-Used-Cache. Sprich einen Cache, der die n letzten Objekte speichert. Man gibt also eine feste Cachegröße vor, zum Beispiel 100 und der Cache sorgt dann selber dafür, das Objekte mit einer hohen Zugriffsanzahl weiterhin gecached bleiben und Objekte mit wenigen Zugriffen aus dem Cache entfernt werden. Altes fliegt also nach hinten raus, in dem Fall wenn es mehr als 100 Elemente sind.

Christian d’Heureuse hat dazu jetzt auf Basis der genannten Klasse einen Cache geschrieben, den ich selber leicht abgewandelt so schon benutzt habe. Auf seiner Seite source-code.biz findet sich der entsprechende Source-Code (als ZIP herunterladen) dazu. BTW: Der Trick daraus einen LRU Cache zu machen, ist das Überschreiben der Methode removeEldestEntry der Klasse LinkedHashMap. Damit hat man einen relativ performanten Cache, ohne selber Iterationen einbauen zu müssen, um ggf. veraltete Elemente zu erkennen.

Eine echt praktische Klasse die einem mit Java-Standard-Mitteln eine nette kleine Caching-Funktion bietet.

Werbung

Die 5 beliebtesten Artikel 2011

Ich habe mich mal durch die Jahresstatistiken gewühlt und für euch die 5 beliebtesten Artikel des Jahres 2011 herausgesucht. Dabei sind eigentlich die gleichen Artikel wie auch im letzten Jahr aufgetaucht. Ihr scheint euch immer nur für das gleiche zu interessieren ;). Dabei kann ich auch durchaus mit guten neuen Artikel punkten, zum Beispiel lege ich euch das SOPA Video von Dan Bull ans Herz. Ebenso sind Aktenvernichter ein gutes Weihnachtsgeschenk wie ich finde, warum, das lest ihr in dem entsprechenden Artikel! Aber jetzt zur versprochenen Liste, die folgenden fünf Punkte sind absteigend nach den Besucherzahlen im Jahr 2011 sortiert. Viel Spaß beim stöbern und nicht vergessen sich auch mal durchs Archiv aus dem Jahr 2011 zu klicken, das kann sich durchaus lohnen!

  1. Rubik Cube (Zauberwürfel) leicht lösen – Die Videos mit den Erklärungen zum Lösen des Rubik Cubes (auch Zauberwürfel genannt) sind wie jedes Jahr am beliebtesten. Nicht nur diese einfache Methode, auch die komplexere Fridrich Methode ist weit vorne mit dabei!
  2. Erstaunlich aber wahr, Let me google that for you! ist weiterhin auf Platz 2! Die Webseite um nervenden Fragern den Weg zu Google zu erklären. Schön dass das immer noch viele nicht wissen ;)
  3. Personen anhand der E-Mail Adresse finden, ebenfalls sehr beliebt. Die Neugierde der Leute wird also allgemein unterschätzt, jeder wollte sowas doch schon mal wissen ;)
  4. Wie man sich eine eigene Adresse in den USA einrichtet wollen auch viele wissen. Paketweiterleitung und ein weltweiter Versand ist also weiterhin ein Thema!
  5. Kostenlose CeBit Tickets auf Platz 5, damals noch zur CeBit 2011, im kommenden Jahr natürlich auch wieder zur aktuellen CeBit!

Programmierer-Jargon oder was Yoda und Pokémon gemeinsam haben!

Vor kurzem habe ich auf StackOverflow eine sehr schöne Zusammenfassung von verschiedenen Ausdrücken gefunden, die Entwickler/Programmierer gerne benutzen, um oftmals schlecht gemachte Codestellen oder Konstrukte zu beschreiben, gerne auch humorvoll ;).

Falls ihr also selber programmiert oder euch mal grundsätzlich damit auseinandersetzen wollt, was man lieber nicht tun sollte, dann seid ihr auf StackOverflow genau richtig!. Und natürlich solltet ihr versuchen solche Bad Smells zu vermeiden und sauberen Code erstellen. Dabei kann auch StackOverflow ebenso helfen, grundsätzlich handelt es sich dabei nämlich um ein Forum für jegliche Programmiersprachen. In der weltweit vernetzten Community bekommt man auf fast jede Frage eine gute Antwort!

Meine „Favoriten“ sind auf jeden Fall:

  • Yoda Conditions / Yoda Code: Der Code liest sich so wie Yoda spircht, nicht gerade sofort verständlich!
  • Pokémon Exception Handling: Getreu dem Motto „Gotta Catch ‚Em All“! Wer z.B. Java-Entwickler ist versteht was gemeint ist ;).
  • Sehr schön sind auch die verschiedenen Arten an Error-Reports, die man so zu Gesicht bekommt.

Schaut euch mal die Seite an, ihr werdet noch mehr amüsantes und bekanntes finden!

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen zum Datenschutz...

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen