Łańcuchy Java są niezmienne, a tworzenie instancji wielu łańcuchów o tych samych wartościach powoduje zwrócenie tego samego wskaźnika obiektu. (Czy jest to termin "pulowanie" wydaje się pasować, ale to już odnosi się do buforowania, aby zaoszczędzić czas, wykonując mniej instancji.)Czy Java optymalizuje niezmienne obiekty?
Czy Java też to robi (rzecz bez określenia) z innymi (zdefiniowane przez użytkownika) klasy, które są niezmienne? Czy Java może wykryć, że klasa jest niezmienna, czy jest to coś unikalnego dla klasy ciągów?
+1 Interesujące pytanie. Wierzę, że Java może rozpoznać klasy posiadające tylko członków końcowych i traktować je jako niezmienne, ale nie mam dokładnych informacji na ten temat. Będę sprawdzać to pytanie. Dziękuję – gd1
Nie, i rozważ, co by się stało, gdybyś tak czy inaczej zmienił niezmienny obiekt, z odbiciem. – harold
Widzę, jestem trochę zaskoczony. Dzięki – gd1