Java Quiz


#1

Ihr kennt das Spiel, wer löst macht weiter…

int i = (byte) + (char) - (int) + (long) - 1;
System.out.println(i);

Compiliert das? Wenn ja, was kommt raus? Wenn nein, warum nicht?


#2

[OT]Die Lösung hab ich bzw. kann es begründen, aber ich weiß kein Rätsel :smiley: :([/OT]


#3

Krass, kein Plan was da läuft.


#4

Is eigentlich offensichtlich was da passiert… aber dass das überhaupt kompiliert hat mich schon gewundert. Naja, wer kennt schon die Syntax von Java zu 100% :wink:

Nächstes:

while (i != i + 1) { 
    i++;
}
System.out.println(i);```
Endlosschleife?

#5

Hat mich auch wenig verblüfft, weil ich das in der Form noch nie gesehen hatte und die Codezeile auf den ersten Blick eine gute Tendenz zur Verwirrung hat. Das gehört eigentlich in die Kategorie “Wissen, das die Menschheit nicht braucht, aber lustig ist” :smiley: Andererseits, wenn man sich das mal so durch den Kopf gehen lässt … Warum sollte das nicht kompilieren, es findet ja ein ganz simpler Prozess statt :wink:


#6

wenn man so lange drüber redet wirds nur blöder, aber:
poste ruhig was an Lösung zu sagen ist oder auch nicht, für andere offen lassen,
neues Rätsel musst dann jedenfalls nicht dazu, das war im alten Forum auch nicht üblich, sowas hat ja kaum jemand parat
(edit: und schon hat doch wer was gepostet :wink: )


#7

Mittlerweile bin ich auf die Lösung gekommen.
Ein neues Rätsel habe ich allerdings auch nicht :frowning: Vor allem nicht von dem Kaliber :wink:


#8

[QUOTE=Landei]Ihr kennt das Spiel, wer löst macht weiter…

int i = (byte) + (char) - (int) + (long) - 1;
System.out.println(i);

Compiliert das? Wenn ja, was kommt raus? Wenn nein, warum nicht?[/QUOTE]

ist das gleiche wie int i = + - + - 1; und -(-1) ergibt 1.


#9

Nicht ganz. Es müsste heißen:
ist das gleiche wie:
int i = +(-(+(-1)));
Denn dein Code kompiliert so nicht :wink:

Und die Begründung dürfte sein: Casting ist rechtsassoziativ.

Aber: du darfst jetzt ein neues Rätsel ausdenken :wink:


#10

hat HoaX schon :wink: und wie gesagt: muss man nicht, denke ich mal
ganz schön viele Postings hier gleichzeitig, wobei auch schon ne Viertelstunde vergangen ist (edit: wobei die neue Frage erst etwas später dazu kam)


#11

Doch, der Code von HoaX kompiliert ganz normal und ist auch richtig. Jetzt brauchen wa ein neues Rätsel :smiley: Ich kniffel lieber als mir was auszudenken :smiley:


#12

Da hatte ich wohl nen anderen Syntaxfehler als ich ±± eingegeben hatte :wink: Und mit der Assoziativität hat das dann auch nichts zutun. Also: nvm


#13

Danke für die Erklärung, meine Gedanken gingen in eine falsche Richtung :confused:


#14

Bei Landeis Frage haett ich auch auf 1 getippt.
Bei HoaX’ Frage wuerd ich auf Endlosschleife tippen, kann mir aus dem Szenario keine mir unbekannte “JVM-Magie” vorstellen.


#15

der Datentyp ist nicht gesagt, bei double kann man anscheinend etwas warten, aber irgendwann dann…


#16

Bei Float dauert das bei mir keine Sekunde bis er abbricht :wink: Der Variablenname i dient nur der Ablenkung da jeder erstmal an int denkt :wink:

tobias@nadia ~ $ cat y.java 
public class y {
	public static void main(String... args) {
		float i = 0;
		while (i != i + 1) {
			i++;
			if (i % 1000000 == 0)
				System.out.println(i);
		}	
		System.out.println("Ende: " + i);
	}
}
tobias@nadia ~ $ javac y.java 
tobias@nadia ~ $ time java y 
1000000.0
2000000.0
3000000.0
4000000.0
5000000.0
6000000.0
7000000.0
8000000.0
9000000.0
1.0E7
1.1E7
1.2E7
1.3E7
1.4E7
1.5E7
1.6E7
Ende: 1.6777216E7

real	0m0.426s
user	0m0.424s
sys	0m0.012s
tobias@nadia ~ $ 

#17

Um mal Leben in die Bude zu bekommen: Was liefert "abc".split(""); zurück?


#18

Irgendwas absurdes, ich glaube, ["", “abc”, “”] oder so

EDIT: Naja nicht ganz, aber das mit dem führenden Leerstring hatte ich noch so im Hinterkopf…


#19

Auch wenn ich nicht sicher bin, wann genau das als “gelöst” gilt, mir fällt da noch eine Frage ein, die ich schon lange mal posten wollte. Es ist eine Meta(!!!)-Frage, man muss bei der Antwort ein bißchen “out of the box” denken (pun intended :D) : Was unterscheidet ‘int’ und ‘char’ von allen anderen primitiven Datentypen?

(Zumindest wird sie geeignet sein, “Leben in die Bude” zu bringen, und sei es nur durch die Kommentare "Ach DAS meintest du - das war’ ja 'ne blöde Frage! :twisted: " :D)


#20

Die Länge? (3 Zeichen)