Achso, k.A. - würde mich aber auch mal interessieren.meez hat gesagt.:Die Frage ist ein wenig falsch gesetellt...Ich meine nicht final wie final in Java (const), sondern werden sie irgendwie speziell im Speicher gehandhabt, da sie sich nicht mehr verändern soolten?
jpp hat gesagt.:immutable werden Objekte genannt, die ihren Zustand niemals ändern. Die sind deshalb nützlich, weil man sie beliebig oft wiederverwenden kann, ohne Nebeneffekte durch parallele Änderungen befürchten zu müssen.
final werden Klassen markiert, von denen keine weiteren Klassen abgeleitet werden dürfen.
Die beiden Begriffe sind voneinander unabhängig, auch wenn Klassen von immutable Objekten häufig final deklariert werden.
Stimmt, leuchtet ein.jpp hat gesagt.:Das es kein Sprachkonstrukt namens immutable gibt, kann die Java-Laufzeitumgebung immutable Objekte m.E. nicht anders behandeln als mutable Objekte. Wie soll sie denn den Unterschied erkennen?
Da fallen mir spontan java.lang.Integer usw. ein. Oder sämtliche Enums in Java 5.meez hat gesagt.:Wieviele immutable Objekttypen gibt es überhaupt?
Es gibt definitiv kein "unzugängliches Schlüsselwort".meez hat gesagt.:Wenn es mehr als String gibt, werden die wahrscheinlcih schon irgendwie gekennzeichnet sein ... Irgend ein "unzugängliches" Keyword so wie z.B. native...
Warum?meez hat gesagt.:Nach Sourcecode nicht...
Und trotzdem muss die VM das irgendwie wissen...
Warum?meez hat gesagt.:Nach Sourcecode nicht...
Und trotzdem muss die VM das irgendwie wissen...
stevg hat gesagt.:Und 3 Dutzend eigene.
http://www.java-forum.org/de/javabuch/html/k100068.html#ixa100626meez hat gesagt.:stevg hat gesagt.:Und 3 Dutzend eigene.
?
final int a = 5;
public final static int a = new Integer(5).intValue();
jpp hat gesagt.:Warum?
stevg hat gesagt.:Warum?
Illuvatar hat gesagt.:Und zwar ohne mysteriöses fünfzigstes Schlüsselwort
Edit: War auf stev bezogen. Hat aber gedauert weil ich noch zählen musste![]()
@Documented
@Retention(RetentionPolicy.CLASS)
@Target(ElementType.CLASS)
public @interface Immutable
{
}
warum?meez hat gesagt.:Nach Sourcecode nicht...
Und trotzdem muss die VM das irgendwie wissen...