Immutable (de\u011fi\u015fmez) s\u0131n\u0131flar<\/strong>, nesneleri bir kez olu\u015fturulduktan sonra nesne i\u00e7eri\u011fi de\u011fi\u015ftirilemeyen s\u0131n\u0131flard\u0131r. Asl\u0131nda sabit s\u0131n\u0131flar olarakta isimlendirebiliriz. Nesneyi olu\u015ftururken i\u00e7erisinde bulunacak olan de\u011ferleri verirseniz ve sonras\u0131nda bu de\u011ferleri de\u011fi\u015ftiremezsiniz. E\u011fer bir immutable nesnenin state’ini de\u011fi\u015ftirmek isterseniz vermek istedi\u011finiz state’i ta\u015f\u0131yacak olan yeni bir nesne olu\u015fturmak zorundas\u0131n\u0131z.<\/strong> Boolean, Short, Integer, Long, Float, Double, Char ve String gibi t\u00fcm kapsay\u0131c\u0131 s\u0131n\u0131flar (Wrapper Class)<\/strong> java’da immutable s\u0131n\u0131flara \u00f6rnek olarak g\u00f6sterilebilir. Tam tersi olarak, de\u011fi\u015ftirilebilen s\u0131n\u0131flar da\u00a0Mutable (de\u011fi\u015febilir)<\/strong>\u00a0s\u0131n\u0131flard\u0131r.<\/p>\n Sorumuzun cevabun\u0131 hemen verelim \ud83d\ude42 Bir s\u0131n\u0131f\u0131 thread-safe yapmak istiyorsan\u0131z immutable yapman\u0131z gerekmektedir. Immutable nesnelerin de\u011ferleri de\u011fi\u015fmeyece\u011fi i\u00e7in \u00fczerinde ne kadar thread \u00e7al\u0131\u015f\u0131rsa \u00e7al\u0131\u015fs\u0131n hep ayn\u0131 de\u011ferler \u00fczerinden i\u015flem yap\u0131lacakt\u0131r. Bu noktada ortaya \u00e7\u0131kan bir dezavantajl\u0131k s\u00f6z konusuda var tabii. Immutable nesnelerin dezavantaj\u0131 ise, de\u011ferin de\u011fi\u015fmesini istiyorsak yeni bir nesne olu\u015fturmam\u0131z gerekiyor. Bu da zaman, bellek ve garbage collector maliyetleri olu\u015fturmaktad\u0131r.<\/p>\n \u00d6rnek bir Immutable S\u0131n\u0131f yap\u0131s\u0131 a\u015fa\u011f\u0131daki gibidir:<\/p>\n <\/p>\n","protected":false},"excerpt":{"rendered":" Immutable (de\u011fi\u015fmez) s\u0131n\u0131flar, nesneleri bir kez olu\u015fturulduktan sonra nesne i\u00e7eri\u011fi de\u011fi\u015ftirilemeyen s\u0131n\u0131flard\u0131r. Asl\u0131nda sabit s\u0131n\u0131flar olarakta isimlendirebiliriz. Nesneyi olu\u015ftururken i\u00e7erisinde bulunacak olan de\u011ferleri verirseniz ve sonras\u0131nda bu de\u011ferleri de\u011fi\u015ftiremezsiniz. E\u011fer bir immutable nesnenin state’ini de\u011fi\u015ftirmek isterseniz vermek istedi\u011finiz state’i ta\u015f\u0131yacak olan yeni bir nesne olu\u015fturmak zorundas\u0131n\u0131z. Boolean, Short, Integer, Long, Float, Double, Char ve String […]<\/p>\n","protected":false},"author":4,"featured_media":11306,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"tdm_status":"","tdm_grid_status":""},"categories":[3414],"tags":[420,3435,6105,6106],"_links":{"self":[{"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/posts\/11303"}],"collection":[{"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/comments?post=11303"}],"version-history":[{"count":3,"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/posts\/11303\/revisions"}],"predecessor-version":[{"id":11307,"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/posts\/11303\/revisions\/11307"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/media\/11306"}],"wp:attachment":[{"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/media?parent=11303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/categories?post=11303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kampuskod.com\/wp-json\/wp\/v2\/tags?post=11303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}Peki neden immutable s\u0131n\u0131flara ihtiyac\u0131m\u0131z var?<\/h2>\n
Java’da immutable s\u0131n\u0131f nas\u0131l olu\u015fturulur?<\/h2>\n
\n
public final class ImmutablePerson {\r\n\r\n private final String name;\r\n\r\n public ImmutablePerson(String name) {\r\n this.name = name;\r\n }\r\n\r\n public String getName() {\r\n return name;\r\n }\r\n}<\/pre>\n