Archiv für Java

R2-D2 für’s Kinderzimmer: Lego Mindstorms NXT

Welches Kind träumt nicht vom eigenen Roboter? Spätestens durch Film und Fernsehen und die darin erfundenen Blech-Menschen ist doch in jedem einmal der Wunsch nach einem eigenen elektronischen Helferlein gewachsen.

Lego bietet nun in zweiter Generation die Grundlage für den Roboter im Kinderzimmer an: den Lego Mindstorms NXT. Elektronisches Herzstück ist der so genannte NXT Brick – ein Steuer-”Baustein”, in welchem ein ARM-Prozessor sein Werk verrichtet. Als markante technische Eckdaten sind eine USB 2.0 Schnittstelle und das integrierte Bluetooth-Funkmodul zu erwähnen. Weiterhin sind grafische Ausgaben auf einem 100×64 Pixel LCD und das Abspielen von 8-bit Sounds möglich.

Weiterlesen »

Schlagworte:

Living in a Box: Boxing primitiver Datentypen in Java

Viele objektorientierte Programmiersprachen wie Java behandeln Daten als Objekte, welche ihrerseits Instanzen von Klassen darstellen. Jedes Objekt ist dabei eindeutig über seine Referenz identifizierbar. Beim Aufruf einer Methode werden nicht die Objekte selbst übergeben, sondern nur deren Referenzen. Eine Zugriff auf das Objekt mittels der übergebenen Referenz ist daher von überall aus durchführbar.

Dennoch kennt Java aufgrund seiner Abstammung aus der C-Familie auch primitive Datentypen wie int, long, float, double etc. Wird einer Methode ein Argument eines primitiven Datentypens übergeben, erhält diese jedoch keine Referenz, sondern nur den Wert der Variablen (call-by-value). Primitive Datentypen können mit der Hilfe spezieller Klassen wie Integer, Long , Float, Double usw. in Objekte verwandelt werden. Diese Klassen werden Wrapper genannt. Den Vorgang des Ein- und Auspackens der primitiven Variablen in Wrapper bezeichnet man als boxing bzw. unboxing. Boxing und unboxing sind z.B. erforderlich, wenn primitive Datentypen in einer Liste gespeichert werden sollen, da die von Java zur Verfügung gestellten Containerklassen nur Objekte unterstützen. Weiterlesen »

Schlagworte:

Neues rund um JAXB: Java An Xml – Bitte kommen!

Interessante Dinge haben sich in den letzten Jahren im JAXB-Umfeld getan. Während diese Technologie 2004 noch nahezu unbrauchbar recht hakelig war, ist mit JAXB 2.0 (aka JSR-222) bzw. JAXB 2.1 ein Entwicklungsstand erreicht, welcher zusammen mit nicht-standardisierten Features (z.B. innerhalb der Referenzimplementierung JAXB RI) den Einsatz von JAXB in industriellen Anwendungen erlaubt. Im folgenden soll speziell auf XJC, den XML-to-Java-Compiler der Referenzimplementierung, eingegangen werden. Im Zusammenhang mit allen JAXB-Fragen sollte stets Kohsuke Kawaguchi’s Blog besucht werden – Herr Koshuke ist sicher der Hauptentwickler der Referenzimplementierung. Weiterlesen »

Schlagworte:

Nicht die Bohne kompliziert: Java Bytecode-Engineering

Analyse, Generierung oder auch Manipulation von Java-Programmen zur Laufzeit sind nützliche Technologien in der Java-Softwareentwicklung. Durch diese Funktionen können beispielsweise Ansätze wie die Aspekt-orientierte Programmierung (AOP) werden. Dabei können diese Funktionalitäten sowohl am Quellcode, als auch an bereits compiliertem Bytecode realisiert werden. Der Vorteil der Bytecode-Manipulation besteht darin, dass kein erneutes Compilieren des Quellcodes notwendig ist. Zu genau diesem Zweck existieren verschiedene Bibliotheken mit jeweils verschiedenen Ansätzen und Zielen. Die wohl bekanntesten Bibiotheken sind ASM von ObjectWeb, BCEL von der Apache Software Foundation und Javassist als Unterprojekt von JBoss. In diesem Beitrag sollen Eigenschaften dieser Bibliotheken kurz beleuchtet werden.

Weiterlesen »

Schlagworte:
 

google

google

asus