Java Kuriositäten / Rätsel

Diskutiere Java Kuriositäten / Rätsel im Allgemeine Java-Themen Bereich.
D

dowhile

Hey,

ich suche nach Java Rätseln, für die man Java mehr (oder weniger) gut kennen muss oder Kniffe braucht, denen man im Alltagscode nicht unbedingt begegnet.

Sowas wie folgende Beispiele:

* Wie schreibt man ein Java "Hello World" ohne den Buchstaben g?

* Welche der folgenden vier markierten Zeilen kompilieren / werfen eine Exception / "funktionieren", und wieso?

Java:
class F<T> { public T f(Object o) { return (T) o; }}

public class Main {
  public static void main(String[] args) {
    System.out.println(new F<Number>().f("123")); // 1
    System.out.println(new F<Double>().f("1.23")); // 2
    var a = new F<Number>().f("123"); // 3
    var b = new F<Double>().f("1.23"); // 4
  }
}
* Wie wirft man eine Checked Exception in einer Methode, deren Signatur keine "throws" Klausel hat?

Kennt jemand noch mehr Derartiges speziell für Java?
 
mihe7

mihe7

Java:
public class Test {
    public static void main(Strin\u0067[] p) {
        System.out.println("Hello World!");
    }
}
:p
 
J

JustNobody

Naja - das ist ja ein g.

Die Überlegung wäre also, ob man auf die main verzichten kann. Und das geht natürlich, wenn man z.B. auf Tomcat oder so aufsetzt.

Aber ich habe Probleme, da einen gewissen Sinn zu erkennen, daher werde ich mir das auch nicht noch tiefer überlegen ....
 
D

dowhile

Die Lösung von mihe7 passt schon. Muss man vielleicht auch die Frage geschickt umformulieren, damit es deutlicher wird (aber nicht zu deutlich), dass die Lösung akzeptiert wird. :)
Bis Java 1.6 konnte man die main Methode durch einen static initializer Block ersetzen, das wäre die "alte" Lösung gewesen:
Code:
public class Main {
    static {
        System.out.println("Hello World");
    }
}
Nach einem Sinn musst du da nicht suchen, das ist mehr so als "Kneipenquizfrage" gedacht.
 
Thema: 

Java Kuriositäten / Rätsel

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben