一般來說,在學習Java時,都會有人向我們強調Java方法的參數是傳值還是傳引用.但是對于Java方法的返回值,是返回引用,還是返回值,卻沒有人說.
其實Java方法的返回值,跟參數的傳遞一樣,都是基本類型返回值,而非基本類型,則返回引用.
測試的代碼已經放到如下Gist中了:https://gist.github.com/AlstonWilliams/a1fa5f453ad4a0137365aacf597f31d3
認識到這一點很重要.假如說我們讓一個方法返回了一個ArrayList,本來打算讓其他線程只是并發的訪問這個ArrayList,但是由于設計原因等,可能不小心造成有的線程會修改這個ArrayList,這樣就可能會因為各個線程看到的數據不一致,而造成一些問題.
以前寫代碼沒有意識到這個問題.現在要重新審查當前的代碼中,是否有這個問題了.