一、值傳遞
java中只有一種傳遞,值傳遞,若參數(shù)是引用類型傳遞的是引用參數(shù)的副本,這個(gè)副本存放的是參數(shù)的地址。如果參數(shù)中沒有改變這個(gè)副本的地址,而是改變了地址中的值,那么在函數(shù)內(nèi)的改變會影響到傳入的參數(shù)。如果在函數(shù)中改變了副本的地址,如new了一個(gè),那么副本就指向了新的地址,此時(shí)傳入的參數(shù)還是指向原來的地址,所以不會改變原來的值。
二、String、StringBuffer與StringBuilder
String 長度不可變,每次改變String內(nèi)容都會再重新創(chuàng)建對象。
StringBuffer 可變線程安全。
StringBuilder 可變線程不安全,效率高。