我是java的新手,當我通過java語言閱讀時,我陷入了兩個疑惑。儘管我提到了很多網站,但我仍然不清楚。同步塊中的字符串不變性和等待方法
1)爲什麼string類是不可變的?我看到一些new File(str)
導致安全威脅的例子,但我不明白如果字符串是不可變的,它將有助於這種情況。
2)另一個疑問是爲什麼wait,notify和notifyall應該放在synchronized塊中。我知道如果不是它會拋出illegalMonitorException
。但我想知道爲什麼它應該在同步塊中的技術背景以及爲什麼沒有在同步塊中等待並且通知可以具有相同的行爲。
請幫我理解。
請不要在一篇文章中合併多個不相關的問題。這兩個問題已經在單獨的問題中討論過了。 – 2013-03-04 20:26:47
for#2 here,請參閱http://stackoverflow.com/q/7019745/217324 – 2013-03-04 20:28:26
for#1參見http://stackoverflow.com/questions/2068804/why-is-string-final-in-java – 2013-03-04 20:29:46