Wann wird Java 5.0 endlich final?



  • Ausprobiert habe ich es nicht. Aber ich meinte eigentlich schon, gehört zu haben, dass alte VMs den 1.5er Code nicht mehr ausführen können.
    Naja wie auch immer, darüber muss sich Sun Sorgen machen, nicht ich.

    Hab mal meine Stimme abgegeben. Hat mich eigentlich aber nicht sehr überzeugt, was die da geschrieben haben und die Anzahl an Stimmen ist auch nicht überragend. Wird wohl nichts bringen.

    EDIT: Achso, du hast bei der Kompatibilität von was anderem geredet. Verwirr mich halt. 😉


  • Mod

    Optimizer schrieb:

    Hab mal meine Stimme abgegeben. Hat mich eigentlich aber nicht sehr überzeugt, was die da geschrieben haben und die Anzahl an Stimmen ist auch nicht überragend. Wird wohl nichts bringen.

    Ja, ich mach mir da auch keine Hoffnungen. Trotzdem ist habe ich auch eine meiner 3 Stimmen für diesen RFE geopfert. ...die anderen beiden für anderes.


  • Mod

    Ich habe übrigens vorhin auf www.javalobby.org gesehen, dass das aktuell angestrebte Datum für die finale Version der 30. September ist.


  • Mod

    Der RC ist jetzt verfügbar: http://java.sun.com/j2se/1.5.0/download.jsp



  • Ausgezeichnet, den werd ich mir gleich mal ziehen. 🙂



  • Optimizer schrieb:

    Und bei primitiven Typen verliert man Performance. Kann ja auch durchaus mal sein, dass ich ne LinkedList<int> brauchen könnte.

    ArrayList<Integer> list =  new ArrayList<Integer>();
       list.add(0, new Integer(42));
       int total = list.get(0).intValue();
    

  • Mod

    Real schrieb:

    Optimizer schrieb:

    Und bei primitiven Typen verliert man Performance. Kann ja auch durchaus mal sein, dass ich ne LinkedList<int> brauchen könnte.

    ArrayList<Integer> list =  new ArrayList<Integer>();
       list.add(0, new Integer(42));
       int total = list.get(0).intValue();
    

    Real: Oh man! Du hast es einfach nicht verstanden. Es geht um Performance. Das, was du da vorschlägst ist gegenüber einer ArrayList, die direkt mit ints arbeitet, saulahm.



  • Real schrieb:

    Optimizer schrieb:

    Und bei primitiven Typen verliert man Performance. Kann ja auch durchaus mal sein, dass ich ne LinkedList<int> brauchen könnte.

    ArrayList<Integer> list =  new ArrayList<Integer>();
    ....
    

    aber 'Integer' ist eine klasse, nicht einfach nur 'int'



  • Gregor schrieb:

    Real schrieb:

    Optimizer schrieb:

    Und bei primitiven Typen verliert man Performance. Kann ja auch durchaus mal sein, dass ich ne LinkedList<int> brauchen könnte.

    ArrayList<Integer> list =  new ArrayList<Integer>();
       list.add(0, new Integer(42));
       int total = list.get(0).intValue();
    

    Real: Oh man! Du hast es einfach nicht verstanden. Es geht um Performance. Das, was du da vorschlägst ist gegenüber einer ArrayList, die direkt mit ints arbeitet, saulahm.

    Auch das ich jetzt Gefahr laufe Schwachsinn zu schreiben, aber du kannst nicht direkt mit int und einer ArrayList arbeiten, weil ArrayList, LinkedList usw. nur Objekte aufnehmen können.

    Liebe Grüße
    Real


  • Mod

    Real schrieb:

    Auch das ich jetzt Gefahr laufe Schwachsinn zu schreiben, aber du kannst nicht direkt mit int und einer ArrayList arbeiten, weil ArrayList, LinkedList usw. nur Objekte aufnehmen können.

    Eben. ...und das ist ein großer Nachteil von Java. Es wäre schön gewesen, wenn man die Generics als Anlass genommen hätte, da mal grundlegend etwas zu verändern. Das hat man aber nicht gemacht.

    ...aber natürlich kann man selbst eine ArrayList oder ähnliches für primitive Typen schreiben, die dann entsprechend schneller ist.




  • Mod

    Real schrieb:

    @Gregor: Hast du schon mal eine ArrayList geschrieben, die primitive Typen unterstützt?

    Nein, aber ich habe schon andere Datenstrukturen für primitive Datentypen geschrieben. Zum Beispiel habe ich mal ne doppelt verkettete Liste für ints geschrieben.

    Wenn du soetwas suchst, dann findest du genug entsprechende Klassen im Netz. Zum Beispiel da: http://pcj.sourceforge.net/

    Was hat dein anderer Beitrag damit zu tun?! 😕



  • @Gregor: Danke, wenn ich es mal brauchen werde aufgrund Perfomance-Probleme, werde ich mich daran wenden.

    Gregor schrieb:

    Was hat dein anderer Beitrag damit zu tun?! 😕

    Ich bin verzweifelt. 😞 Der Fehler will einfach nicht gefunden werden.

    Liebe Grüße
    Real



  • Real schrieb:

    Ich bin verzweifelt. 😞 Der Fehler will einfach nicht gefunden werden.

    lass es mal im debugger laufen, einzelschritt.





  • Jetzt habe ich mich mal herangewagt selbst eine primitive (ganz ganz billige) List zu schreiben.
    Ergebnis: ca. 63 mal schneller 😮

    Hätte damit nicht gerechnet. Sun hätte das sicher viel effizienter hingekriegt.
    Hab das mal schnell runter getippt, darum sind nur wenige Methoden überschrieben.

    import java.util.*;
    
    public class NativeList extends LinkedList{
      int index = 1005;
      int i[] = new int[index];
      int copy[];
      int count = -1;
      int last;
    
      public void add(int i){
        if(++count >= index){
          this.index += 250;
          this.copy = new int[index];
          System.arraycopy(this.i, 0, this.copy, 0, this.i.length);
          this.i = new int[index];
          System.arraycopy(this.copy, 0, this.i, 0, this.copy.length);
        }
    
        this.i[count] = i;
        last = count;
      }
    
      public int indexOf(int i){
        return this.i[i];
      }
    }
    
    import java.util.*;
    
    public class NativeListTest {
      public static void main(String[] args) {
        long start = System.currentTimeMillis();
    
        NativeList nl = new NativeList();
    
        for(int i = 0; i<=10000; i++)
          nl.add(i);
    
        for(int i = 0; i<= 10000; i++)
          nl.indexOf(i);
    
        System.out.println(System.currentTimeMillis() - start);    
    
        start = System.currentTimeMillis();
    
        LinkedList ll = new LinkedList();
    
            for(int i = 0; i<=10000; i++)
              ll.add(new Integer(i));
    
            for(int i = 0; i<= 10000; i++)
              ll.indexOf(new Integer(i));
    
            System.out.println(System.currentTimeMillis() - start);
    
      }
    }
    

    Die Methode remove() ließ sich nicht überschreiben, da es ja Object zurückgibt. Da müsste man eine eigene Methode erfinden. (remove2() oder so 😉 ).

    Liebe Grüße
    Real


  • Mod

    Real schrieb:

    Jetzt habe ich mich mal herangewagt selbst eine primitive (ganz ganz billige) List zu schreiben.
    Ergebnis: ca. 63 mal schneller 😮

    Was du da geschrieben hast, ist auch nicht das, was man unter einer verlinkten Liste versteht. Das ist somit auch nicht mit einer LinkedList vergleichbar. Die LinkedList hat von der Performance her ganz andere Eigenschaften als deine "Liste".



  • Hmm, ja. Du kannst beispielsweise nicht einfach iterator() verwenden oder Map.Entry, aber solche ähnliche Features die die Methoden und Klassen bieten, wie z.B. hasNext() lassen sich leicht realisieren.

    Liebe Grüße
    Real



  • Was du geschrieben hast ist grad mal zu 5% ne ArrayList und zu 0% ne LinkedList. Zweitens arbeitest du mit Primitives die sowieso schneller verarbeitet werden als Objekte. Alt bekanntes Java problem was schon tausendmal besprochen wurde. 3. Sinnlose Vererbungshierarchie. 4. Werde dir klar das Arrays und Listen bei unterschiedl. Operationen unterschiedl. Laufzeitverhalten an Tag legen. 5. Ist es schon peinlich was du hier ablieferst(und lachhaft ausserdem), da du von tuten und blassen keine Ahnung hast und durch unwissenheit eine Technologie abschwächst von der dein Wissenstand zur Zeit meilenweit entfernt ist.
    Cu



  • 6. Wie der Name es schon sagt liefert indexOf den Index des gesuchten Par. und nicht andersherum.


Anmelden zum Antworten