| 

.NET C# Java Javascript Exception

3
Vor kurzem hab ich von der “Double Brace Initialization" erfahren. Über so etwas hab ich nichts in meinen Büchern über Java gefunden. Gibt es weitere solcher selten genutzten bzw schlecht publizierten Features? Habt ihr noch andere Tips, Tricks oder einfach nur Besonderheiten?

Edit: Der Titel dieser Frage wurde geändert. Der alte Titel war nicht passend - siehe dazu den Post von damy3n.
News:
02.10.2009
ermin 1,3k 1 7
ermin 1,3k 1 7
5 Antworten
2
Naja.. da hier keiner schreibt mach ichs mal .. also meine Meinung zu "Geheimnissen" in Java .. natürlich gibt es gewisse Code Anweisung die Mehrzeiler auf 1 Zeile reduzieren würde diese aber weniger als Geheimnisse bezeichnen und mehr als Stilmittel.. ob diese jedoch immer hilfreich sind ist einer andere Frage .. ab und zu ist es ganz hilfreich mehrere Anweisungen getrennt von einander zu haben, ist von Debugwegen oft vorteilhafter. Aber wieder zum Thema "Geheimnisse" gibt es denk ich mal keine würde auch niemanden was bringen. Eine Sprache wird nicht atraktiver wenn keiner weiss was möglich ist weder für Programmierer noch für Compilerentwickler oder Sun oder wer auch immer ^^. Du wirst wahrscheinlich auch keine wirklichen Geheimnisse erfahren.
04.10.2009
damy3n 149 1 3
1
Callables - das sind Runnables/Threads die einen Wert zurückliefern.
04.10.2009
ermin 1,3k 1 7
ermin 1,3k 1 7
0
Java's goto = Statische Blöcke mit Label

blockX:{
for (int i = 0; i < N; ++i) {
for (int j = i; j < N; ++j) {
for (int k = j; k < N; ++k) {
...
break blockX;
}
}
}

Edit: goto ist ein rezerviertes Wort. Weiß jemand wozu es ist?
}
04.10.2009
ermin 1,3k 1 7
ermin 1,3k 1 7
0
Javap ist ein Disassembler der mit Sun's JDK kommt.

(Nicht wirklich Teil der Sprache, aber trotzdem interesant.)
04.10.2009
ermin 1,3k 1 7
0
Ich habe zwei Besonderheiten:

#1:
Wie rufe ich von einer inneren Klasses eine Methode einer aeusseren Klasse auf, wenn beide Methoden den glaichen Namen haben (etwa durch in Interface erzwungen)?

public class InnerOuter {
private int x;

int size() {
return x;
}

private class Inner {
int size() {
return InnerOuter.this.size();
}
}
}

#2:
WeakHashMap als Speicherleck:
Mir war lange nicht bewusst, dass ein Eintrag in einer WeakHashMap mehrere Bedingungen erfuellen muss um geloescht werden zu koennen:
a) Der Key/Schluessel darf keine anderen Referenzen haben (das war klar)
b) Nachdem a) erfuellt ist, muss noch irgendeine Methode (etwa size() ) auf der WeakHashMap aufgerufen werden! Um zu verstehen warum das so ist, sollte man sich mal den Sourcecode ansehen.

Nur wenn a) UND b) erfuellt sind, kann der GC den Eintrag und damit das Key-object wirklich loeschen.
08.10.2009
#1
InnerOuter.this.size();
simon.grimm 09.10.2009
me.ignore()
simon.grimm 09.10.2009

Stelle deine Java-Frage jetzt!