.
|
|
| Autor | Beitrag |
|---|---|
|
000 14.09.2008, 03:11 Agamemnon-Hellmapper |
FUCK JAVA...
und === btw... hab mein Problem jetzt mit Es gibt 2 Möglichkeiten, eine Kristallkugel zu benutzen: Dieser Beitrag wurde am 14.09.2008 um 03:21 von Agamemnon-Hellmapper bearbeitet. |
|
Profil || Suche |
|
001 14.09.2008, 04:02 Bluthund |
Zu spät um selber was dazu zu schreiben: The C language combines all the power of assembly language with all the ease-of-use of assembly language. |
|
Profil || Suche |
|
002 14.09.2008, 04:43 warri |
Wenn du deine Liste typisierst, brauchst du auch nicht mehr explizit umzucasten und man macht weniger Fehler ;)
Dieser Beitrag wurde am 14.09.2008 um 04:44 von warri bearbeitet. |
|
Profil || Suche |
|
003 14.09.2008, 08:32 theDon |
Das ist ein „Feature,“ Java hat keine Operatorueberladung, == ist damit _immer_ ein Adressvergleich, zwei Strings, die den gleichen Inhalt haben, aber nicht identisch sind, sind damit auch nicht „==.” Nebenbei ists: \o tanz den naziprau! o/ And more than ever, I hope to never fall, |
|
Profil || Suche |
|
004 14.09.2008, 08:39 Agamemnon-Hellmapper |
Ich vergleich hier aber keine Objekte, ich vergleiche ein Objekt mit einem Literal. Es gibt 2 Möglichkeiten, eine Kristallkugel zu benutzen: |
|
Profil || Suche |
|
005 14.09.2008, 08:48 theDon |
Du magst das jetzt leugnen wollen, Fakt ist aber, dass du keine Ahnung hast, aber dreisterweise trotzdem davon ausgehst, dass sich die Sprache deiner Intuition beugt (Hint: Tut sie nicht). Literalkonstanten haben keine definierten Adressen, deshalb hagelt es bei Adressvergleichen undefinierte Ergebnisse, insbesondere kann das dann auch mal „true“ liefern. --\o tanz den naziprau! o/ And more than ever, I hope to never fall, |
|
Profil || Suche |
|
006 14.09.2008, 09:16 Agamemnon-Hellmapper |
Es sei denn, du meinst mit "kann auch mal" == "immer, wenn dir danach is". Im übrigen kannst du _mich_ mal, wenn du weiter soviel Scheiße in so einem überheblichen Ton von dir gibst. Wenn du schon ein Arsch sein willst, solltest du wenigstens Ahnung haben.# Edit: sogar Es gibt 2 Möglichkeiten, eine Kristallkugel zu benutzen: Dieser Beitrag wurde am 14.09.2008 um 09:32 von Agamemnon-Hellmapper bearbeitet. |
|
Profil || Suche |
|
007 14.09.2008, 09:27 theDon |
Welchen Teil von „undefiniert“ verstehst du eigentlich nicht? Strings kann man in Java nicht mit „==“ vergleichen, wenn man sinnvolle Ergebnisse erwartet, da kannst du jetzt noch so viele Beispiele herzitieren, wo das „geht,“ Fakt ist trotzdem, dass es nicht geht. Aber Hauptsache, man macht einen auf dicke Fresse und beschuldigt andere Leute, keine Ahnung zu haben, ist ja schliesslich scheissegal, was die Sprachdefinition sagt, man hat ja ein Beispiel, das funktioniert, studiert Physik und weiss damit, dass ein funktionierendes Beispiel als Beweis fuer Allgemeingueltigkeit ausreicht. Edit: http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#54508 -- \o tanz den naziprau! o/ And more than ever, I hope to never fall, Dieser Beitrag wurde am 14.09.2008 um 09:31 von theDon bearbeitet. |
|
Profil || Suche |
|
008 14.09.2008, 09:35 Agamemnon-Hellmapper |
Okay, meinetwegen hast du sogar tatsächlich Recht, du bleibst aber trotzdem eine Zicke. Wie es in Wald hineinruft... imho ziemlicher Designfehler, dass Objekt == Literal überhaupt durch den Kompiler durchgeht. Selbstkonsistenz ist etwas, das ich von einer Sprache einfach erwarte. Ansonsten: Siehe mein Edit oben. Dir zufolge muss das ja immer definitiv "not ok" ergeben, was aber offensichtlich nicht der Fall ist. --Es gibt 2 Möglichkeiten, eine Kristallkugel zu benutzen: Dieser Beitrag wurde am 14.09.2008 um 09:42 von Agamemnon-Hellmapper bearbeitet. |
|
Profil || Suche |
|
009 14.09.2008, 09:42 theDon |
Auch Zeichenliteralkonstanten sind Instanzen von String, es gibt also absolut keinen Grund, warum das _nicht_ durch den Compiler gehen sollte. Aber du lernst es scheinbar echt nicht, was deine Intuition dir sagt ist scheissegal, wichtig ist, was Sun in die Spezifikation schreibt. Edit: „Undefiniert“ heisst kann, nicht muss. Die JIT-Optimierungen machen da seltsame Dinge, zum Beispiel Konstanten mit gleichen Werten zusammenlegen. --\o tanz den naziprau! o/ And more than ever, I hope to never fall, Dieser Beitrag wurde am 14.09.2008 um 09:44 von theDon bearbeitet. |
|
Profil || Suche |
|
010 14.09.2008, 09:44 Agamemnon-Hellmapper |
Nur doof, wenn sich Sun offenbar nicht an die eigene Dokumentation hält:
-- Es gibt 2 Möglichkeiten, eine Kristallkugel zu benutzen: |
|
Profil || Suche |
|
011 14.09.2008, 09:45 theDon |
Und wo steht geschrieben, dass das in dem Fall nicht das gleiche Objekt sein kann? Genau, nirgendwo. --\o tanz den naziprau! o/ And more than ever, I hope to never fall, |
|
Profil || Suche |
|
012 14.09.2008, 10:28 hausi |
Nochmal von vorne: Edit: Dieser Beitrag wurde am 14.09.2008 um 10:32 von hausi bearbeitet. |
|
Profil || Suche |
|
013 14.09.2008, 10:43 default |
copy on write --Du musst Deine Bandbreite verbreitern, damit du breiter wirst von der Bandbreite her und ein breiteres Publikum ansprechen kannst. |
|
Profil || Suche |
|
014 14.09.2008, 12:56 dp Administrator |
vielleicht nochmal AI1 hoeren -- |
|
Profil || Suche |
|
015 14.09.2008, 14:39 Bluthund |
Nicht nur vielleicht... -- The C language combines all the power of assembly language with all the ease-of-use of assembly language. |
|
Profil || Suche |
|
016 14.09.2008, 19:48 RikkuZooo |
Java is cool man kann sich damit viel ersparen wenn es um sachen wie: Kalender, taschen rechner usw. geht. -- |
|
Profil || Suche |
|
017 14.09.2008, 21:52 Agamemnon-Hellmapper |
Bleibt also zusammenzufassen, dass java für zwei separat initialisierte Stringobjekte an zwei separaten Adressen mit zufällig demselben Literal als Initialwert nicht zweimal den gleichen Wert an zwei Adressen speichert, sondern sich diese Mühe spart und die Daten nur einmal an einer einzigen Adresse speichert und einfach beide Pointer dahin zeigen lässt. Ich kann also auch gleich schreiben: Und erst wenn mit den Stringobjekten irgendwas anderes geschieht, werden die Pointer auf separate Adressen gesetzt. Dann erklärt sich die Diskrepanz zwischen beobachtetem und logischerweise erwartetem Verhalten beim Testen. Thx an hausi für die kompetente Erklärung. Dass der Compiler im Code auftauchende Literale auf diese Weise behandelt ist in der Tat unerwartet. Ein kleines aber feines Detail, welches, ich habs grad extra nochmal in den Vorlesungsunterlagen AI1 nachgesehen, eindeutig übergangen wurde. Pointer & Co, alles da, aber dieses spezielle Beispiel: nope. --Es gibt 2 Möglichkeiten, eine Kristallkugel zu benutzen: |
|
Profil || Suche |
|
018 14.09.2008, 21:59 theDon |
Du hast es immer noch nicht verstanden, Strings in Java sind konstant, wenn du die „aenderst,“ wird ein neues Objekt angelegt. Die VM _darf_ gleiche Literalkonstanten zusammenoptimieren, muss aber nicht (das nennt sich dann „undefiniert“). „Logische Erwartung,“ die Sprache interessiert sich nicht dafuer, ob du das fuer sinnvoll haelst oder nicht, _es ist einfach so definiert_. --\o tanz den naziprau! o/ And more than ever, I hope to never fall, |
|
Profil || Suche |
|
019 14.09.2008, 22:09 Agamemnon-Hellmapper |
theDon, du hast gerade den Zeitpunkt verpasst, an dem du noch etwas intelligentes hättest sagen können. Ich HABE es verstanden. Dass die VM Dinge Zusammenoptimieren _kann_, war der Knackpunkt bei der ganzen Frage. Und deine blöden Anmachen kannst du dir sonstwohin schieben. Thread kann geclosed werden, Kommentare von theDon sind nicht erwünscht und daran wird sich auch jetzt nichts mehr ändern. --Es gibt 2 Möglichkeiten, eine Kristallkugel zu benutzen: |
|
Profil || Suche |
|
020 14.09.2008, 22:30 caedes |
hellmapper: kokst du eigentlich? --caedes Deutschland rückt nach Einschätzung der Sicherheitsbehörden im Superwahljahr verstärkt ins Visier von Terroristen. |
|
Profil || Suche |
|
021 14.09.2008, 22:36 Kriz |
Man merke sich also letztendlich im Umgang mit Java: 1. == vergleicht Referenzen und nicht die Objekte dahinter Wozu also soviel Geseiher? --K:R-I)Z++ |
|
Profil || Suche |
|
022 15.09.2008, 00:00 caedes |
Fassen wir nochmal zusammen.. du hast einen Thread mit unaussagekräftigen Titel ("Ich hasse Java!" - passender wär wohl gewesen "Strings vergleichen in Java") im falschen Forum (war im Hardware & Software Board) eröffnet und fleißig Capslock benutzt. Ganz schön bitter dafür, dass du sonst immer so elitär tust. Fällt wohl unter die Kategorie "Epic Fail". --caedes Deutschland rückt nach Einschätzung der Sicherheitsbehörden im Superwahljahr verstärkt ins Visier von Terroristen. |
|
Profil || Suche |
|
023 15.09.2008, 01:09 LeJean |
Ich frage mich, was dort in der VL überhaupt gelesen wurde. "Pointer & Co" passt nicht so recht ins Java-Umfeld, wenn man von expliziten Pointern spricht. Listen etc. ohne Generics gehen auch eher weniger klar. Dazu noch das Referenzenkonzept der JVM mit Speichermanagement etc... Entweder scheiß Vorlesung, nicht aufgepasst, nicht dagewesen oder schlicht nicht verstanden. Edit: Ich frag mich, was an den ersten Antworten hier inkompetent gewesen sein soll? Hier hat jemand nen recht langen Schlips, auf den scheinbar schnell mal getreten wird. Ziemlicher Designfehler (vgl. #008). --Dieser Beitrag wurde am 15.09.2008 um 01:11 von LeJean bearbeitet. |
|
Profil || Suche |
|
024 15.09.2008, 01:25 Agamemnon-Hellmapper |
Nochmal. Der erste, der mir tatsächlich geholfen hat, weil er überhaupt mein Problem verstanden hat, war hausi, und der hatte es nicht nötig, dies in dem überheblichen Ton zu tun, wie theDon, dessen Postings im übrigen nicht nur unprovoziert arrogant (#005) sondern auch absolut nicht hilfreich waren. Deswegen an hausi nochmal Danke für die Erklärung. Und im Übrigen hätte die Diskussion auch schon nach #012 zuende sein können. (Falsches Forum war mein Fehler, aber nicht absichtlich. Und dass mein Denkfehler letztlich darin lag, dass mir nicht bekannt war, dass die VM Literale zusammenrationalisiert, hätte mir Google auch nicht sagen können, ohne Seitenweise altbekanntes (siehe theDon) auszuspucken, wo dieses Detail dann irgendwo versteckt drinsteht) --Es gibt 2 Möglichkeiten, eine Kristallkugel zu benutzen: |
|
Profil || Suche |
|

