Kein kommerzieller Support mehr für Glassfish

Oracle stellt den kommerziellen Support für Glassfish ein und empfiehlt Kunden, die an solchem Support interessiert sind, auf WebLogic umzustellen: Oracle stellt kommerziellen Support für GlassFish ein. Die Frage ist natürlich, ob man dann nicht ein paar andere Umstellungen überdenkt: Wenn es EJB sein muss, ist vielleicht auch der WildFly-Applikationsserver von JBoss eine Option Wenn …

Share Button

UTF-16 bei Zeichenketten in Java

English Zeichenketten in Java und in vielen JVM-Sprachen enthalten Unicode-Zeichen und sind mit utf-16 codiert. Es war sehr weitsichtig, schon in den 90er-Jahren an Unicode zu denken und das als alleinige Möglichkeit vorzusehen. Man hat sich so erspart, das Durcheinander zu haben, welche Zeichenkette jetzt in welcher Codierung vorliegt, weil alle gleich sind, und auch …

Share Button

Serialisierung

English Serialisierung ermöglicht es, Objekte mehr oder weniger vollständig und verlustfrei zu speichern oder über das Netzwerk zu übertragen. So etwas konnte man schon immer machen, aber früher musste man die Objekte „von Hand“ serialisieren, also jeweils die Funktionalität schreiben, die das leistet. Auch wenn es damals noch nicht Objekte waren. Java hatte dann plötzlich …

Share Button

Eigene Collection-Klassen

Wer braucht eigene Collection-Klassen? Java, Perl, Ruby, Scala, Clojure, sie alle haben gute Bibliotheken und da sind sehr schöne Collection-Klassen verfügbar und wenn die mitgelieferten nicht reichen, findet man noch passendere. Es lohnt sich zu suchen. Gelegentlich braucht man komplexere Collections, z.B. Mengen, die noch eine Gruppierung in disjunkte Teilmengen aufweisen und wahlweise über die …

Share Button

Kovarianz und Kontravarianz

Bei Typsystemen objektorienter Programmiersprachen wird man gelegentlich mit Kovarianzu und Kontravarianz konfrontiert. Im Fall von Java stellt man sogar fest, dass bei Arrays hier ein konzepitioneller Fehler unterlaufen ist, den man heute nicht mehr wegbekommt. Wenn man zum Beispiel die Vererbungshierarchie Frucht -> Citrusfrucht -> Zitrone hat, dann ist es intuitiv plausibel, anzunehmen, dass eine …

Share Button

Einmal entwickeln – überall installieren

Das ist eine der großen Versprechungen von Java gewesen. Nun gab es drei oder bei genauerem Hinschauen etwas mehr als drei Varianten von Java, also „Micro-Edition“ (JavaME) für Toaster, Radios und Mobiltelefone, „Enterprise-Edition“ (JavaEE, JEE oder J2EE) für die ganz großen Server, die Sun auch gerne selber verkauft hat und „Standard-Edition“ (JavaSE) für „normale“ Aufgaben. …

Share Button

Closures II (Java)

In Java gibt es schon seit recht frühen Versionen die sogenannten inneren Klassen. Davon gibt es einige Ausprägungen: statische innere Klassen nicht-statische innere Klassen anonyme innere Klassen Beispiel 1: statische innere Klasse: public class MyOuterClass {   private static class MyInnerClass {     …   } } Beispiel 2: nicht-statische innere Klasse: public class MyOuterClass {   private class …

Share Button

Collections und Multithreading

Am Beispiel von Java soll hier etwas geschrieben werden, was viele Programmiersprachen betrifft, auch wenn die funktionalen Sprachen eine gewisse Immunität gegen derartige Probleme versprechen. Es geht um Klassen, die sogenannte Collections enthalten. Nun kann man diese mit den sogenannten Gettern herausgeben lassen und vielleicht sogar mittels Settern austauschen oder ändern. Eine naïve Implementierung sieht …

Share Button

Zeichenketten in Java, Ruby und Perl

Eigentlich sind die Zeichenketten in allen Programmiersprachen das gleiche, man kann sie als Literale angeben, irgend woher lesen oder zusammensetzen und dann vergleichen und ausgeben. Aber es gibt einen großen Unterschied. In Java und in den JVM-Sprachen Scala und Clojure, die sich nicht speziell dagegen gewehrt haben, sind die normalen Zeichenketten unveränderlich. Das bedeutet, dass …

Share Button