- 規(guī)則1
Java中變量分為:基本類型變量和引用類型變量
- 規(guī)則2
Java方法傳參只有值傳遞,沒有引用傳遞,傳遞的值是若是基本類型變量辫樱,則復制基本類型,若為引用類型變量俊庇,則傳遞對象的內(nèi)存地址狮暑。
- 規(guī)則3
lambda 表達式引用的本地變量必須是最終變量或?qū)嶋H上的最終變量,也就是說本地變量在被創(chuàng)建后不得被重新賦值辉饱。
lambda表達式是一個靜態(tài)的概念搬男,假如改變后可分為以下兩種情況:
- 若將外部基本類型變量改變,則無法保證lambda表達式使用的值一致彭沼。
- 若將外部引用類型變量指向其他內(nèi)存地址缔逛,由于外部的變量是從lambda構造器傳入的,根據(jù)
規(guī)則2
溜腐,方法傳入的是實際對象的內(nèi)存地址而不是引用,則在內(nèi)部或外部改變引用指向的地址后瓜喇,無法保證lambda表達式內(nèi)外使用的對象一致曲掰。
綜上力九,為了保證數(shù)據(jù)的一致性,所以用final或?qū)嶋H的最終變量來限制內(nèi)外引用變量指向的內(nèi)存地址一致。
感謝您的閱讀吱肌,本文已同步到我的個人博客,您的關注是對我最大的鼓勵溢豆!