skip to main content

kiesler.at

Random Guide to whatever
updated by rck, 2004-10-10

Another case of trying out the swallow hack 0.2. This time, I'm shuffling some sections around. Enjoy!

0 < n < 100

Eine der ersten Evolutionsstufen war eine ziemlich elegant aussehende Ersetzung der inneren Schleife. Die Performance ist da zwar sicher noch nicht am Limit, jedoch ist der Code sehr übersichtlich und schon schneller als der vorhergehende ohne Inline-Assembler.

unsigned long mem0s(unsigned char *s, unsigned long l) {
        unsigned long r=0, i=0, j;
        unsigned char mem_read;

        while(i
                mem_read=~(s[i]);

                asm volatile (

                        "ctpop %1, %0 \n\t":

                        "=r"(mem_read): "r"(mem_read)
                );

                r+=mem_read;

                i += 1;
        }

        return r;
}

Ich persönlich finde sogar diese Version deutlich übersichtlicher als die vorige, von der Angabe gar nicht zu reden. Übersichtlichkeit ist bekannterweise fast das gleiche wie Wartbarkeit.

100 < n < 200

Auch für den Lesendzugriff gibt es zahlreiche Methoden, die wieder auf einzelne Fälle spezialisiert sind. Hilfreich ist, wie fast immer beim Programmieren, zuerst die Dokumentation auf nützliche Methoden zu untersuchen und erst dann gegebenenfalls Dinge selber auszuprogrammieren. Stichwort: Durchsuchen einer ArrayList, Sortieren, Elementweise Bearbeitungen, und so weiter. Beschreibe ich alles noch, keine Sorge!

  • ArrayList.get(Index) ist hilfreich, wenn man den Index eines Wertes bereits kennt und diesen Auslesen will. Als Suchergebnis -- mehr zur Suche im folgenden Abschnitt -- bekommt man meistens genau so einen Index.
  • ArrayList.toArray() liefert die ArrayList als normales JAVA-Array zurück. Die Reihenfolge der Elemente entspricht dabei der der ArrayList. Nützlich für manche Methoden, die explizit ein "gewöhnliches" Array verlangen.
  • ArrayList.toArray(Objekt[] a) liefert alle Elemente des angegebenen Objekttyps aus der ArrayList zurück. Zur Erinnerung: Es können beliebige Elemente unterschiedlichster Typen in die ArrayList geschrieben werden. Manchmal ist es dennoch wünschenswert, beispielsweise nur alle Strings gesammelt zu haben. Das ginge dann mit ArrayList.toArray(String[] a).
  • ArrayList.toString() geht zwar mit fast allen Objekten, ich möchte es aber hier nochmal besonders herausstreichen. toString wandelt die ArrayList in einen lesbaren String um, den man sich zB zwecks Debugging ausgeben kann.

200 < n < 300

Bedeutung: Installationsprogramme, die für ein Betriebssystem maßgeschneidert sind.

Vorteile: Nahtlose Integration in das Betriebssystem, vorhergehende JAVA-Installation nicht notwendig.

Nachteile: Nicht 100 % pure JAVA, Plattformabhängig, für jedes Betriebssystem eigenes Installationsprogramm. Größere Dateien, Sicherheitsrisiko (JAVA läuft in einer "Sandbox", kann also nicht so viel anrichten wie zB ein Windows-EXE File).

Beispiele: exe4J, Advanced Installer JAVA, Install Anywhere

here you can see some nonsense article. in case it makes sense, it's all fault of Swallow Hack 0.5 for Article Manager!



RSSComments - Make a comment
The comments are owned by the poster. We are not responsible for its content.
RSSAll Articles
2008, 2007, 2006, 2005, 2004

What's Related

Article Manager

Hacks

Latest Updates

AdministrativeTexts
updated by freddiemac1993, 2013-06-14
wiki

Re: adventures
created by brittdavis10, 2012-02-23 (1 rply, 3 views)
thread

Re: how to run phpwebsite...
created by alexander, 2011-08-25 (2 rpls, 3607 views)
thread

Re: Forum tags
created by HaroldFaragher, 2011-08-22 (3 rpls, 8488 views)
thread


Zu den KO2100 Foren