java基礎---String對象爲什麼不能改變?

  • 簡單來說就是因爲String對象是private的,裏沒有給出get方法,因此,我們並不能通過什麼方式來改變它的值。還有一點,String裏面的Filed設置的爲Final。這也是它的值不能被改變的原因。
  • 那麼,我們平時對一個String對象初始化賦值之後,比如說String s = “hello”;但是卻可以通過s=”world”;來將s的值改變啊?其實這並不是將以前的那個s的值改變了,在這裏我要說的是,這裏的s只是一個引用,真正存放”world”的內存並不是以前那個存放”hello”的內存,而是s又指向的一個新開闢的內存。
  • 那麼,String對象真的不能被改變了麼?當然不是,我們可以通過反射更改String中Filed的訪問權限來更改。



   參考文章:http://www.codeceo.com/article/why-java-string-immutable.html

發佈了11 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章