07 maj, 2011

volatile?


Nyckelordet volatile var lite av ett mysterium för mig ända tills jag läste den här förklaringen. Den absolut bästa förklaringen jag läst av det lilla ovanliga och tämligen anonyma nyckelordet.

04 maj, 2011

Klassen Void i JDK

Varför finns det en s.k. Wrapperklass för Void i JDK? Att det finns wrappers för primitiver känner vi som javautvecklare till väl, men Void? När används den?

Förklaringen är vid reflection (Reflection API). Beakta följande klass:

public class VoidTest {

 public static void main(String[] args) {
  try {
   Class clazz = VoidTest.class.getMethod("returnNothing", null).getReturnType();
   System.out.println(clazz == Void.TYPE);
   System.out.println(clazz == Void.class);
  } catch (SecurityException e) {
   e.printStackTrace();
  } catch (NoSuchMethodException e) {
   e.printStackTrace();
  }
 }
 
 public void returnNothing(){
  System.out.println("Nothing will be returned");
 }
}

Om inte Wrapperklassen Void fanns skulle det bli krångligt att få tillbaka ett vettigt värde i anropet Method.getReturnType() i vårt exempel.

02 maj, 2011

Lärarjobb för Informator/Oracle



Förra veckan (27/4 - 29/4) höll jag kursen Business Component Development With EJB Technology, Java EE 6 (SL-355-EE6) för Informator/Oracle´s räkning. Kursen fokuserar på EJB 3.1 och behandlar nyheter som:
  • Asynkrona metoder i Session Beans med @Asynchronous-annoteringen
  • Utökad TimerService med bl.a. möjligheten att starta en timer automatiskt med @Schedule-annoteringen.
  •  Helt ny typ av SessionBean, Singleton Session Bean (@Singleton). Dessa existerar i en instans per JVM. Interna beroenden mellan Singleton Session Beans hanteras med @DependsOn("A")
  • Standardisering av JNDI-namn för EJB´s.
  • m.m.
 En nyhet för mig som lärare var att en elev i Göteborg deltog i kursen via Informators "remote"-lösning. Det fungerade väldigt bra (både tekniskt och närvaromässigt), tillsammans med Remote Desktop flöt det på väldigt bra!