1. 簡介
申明乙個記憶體空間,後續申明相同的值,不會再開闢一塊新的記憶體空間,指向已有的記憶體空間
2.適用型別1. str
2. int
3. bool
3.實現原理1. 系統維護乙個記錄駐留物件的字典
2. 當某個物件需要駐留,檢視在字典中是否存在,若存在就指向已存在的記憶體空間;
3. 新駐留物件不存在於該字典中,開闢記憶體空間,記錄該物件
4.駐留時機1. 所有長度為 0 和長度為 1 的字串都被駐留
2. 字串只在編譯時進行駐留,而非執行時
3. 字串中只包含字母,數字或下劃線時將會駐留
4. 字串長度不超過20位
5.測試
# str
one = 'ffffffffffffffffffff'
two = 'ffffffffffffffffffff'
print(id(one), id(two)) # 42768184 42768184
# int
three = 34567
four = 34567
print(id(three), id(four)) # 4697808 4697808
# bool
five = true
six = true
print(id(five), id(six)) # 497676512 497676512
# 超過20位
vv = "s" * 30
bb = "s" * 30
print(id(vv), id(bb)) # 35820848 35821088
# 自己手動駐留
import sys
vv = sys.intern("s" * 30 + "666")
bb = sys.intern("s" * 30 + "666")
print(id(vv), id(bb)) # 38382824 38382824
5.優劣勢優勢:減小記憶體開銷,省略申請記憶體空間的過程,提高執行效率
劣勢:建立駐留物件需要花費額外的開銷
string 駐留機制
string s1 abc string s2 ab string s3 s2 c string s4 abc string s5 abcd 求兩個object的引用是否相等 console.writeline object.referenceequals s1,s3 false console.w...
python 字串的駐留機制及優缺點
字串駐留是一種僅儲存乙份相同且不可變字串的方法。同的值被存放在字串駐留池中,發生駐留之後,許多變數可能指向記憶體中的相同字串物件,從而節省記憶體。1.所有長度為 0 和長度為 1 的字串都被駐留 2.字串只在編譯時進行駐留,而非執行時 a hi a變數被駐留 b join h i 變數不會被駐留 p...
小整數池以及字串駐留機制
在 5,256 這個區間的整數,在記憶體中僅僅會存放乙份。舉例說明 在python中,兩次重複宣告乙個內容一樣的變數的時候,其id 是不一樣的 但是如果在宣告整數的時候,數字是在 5,256 這個區間的整數,其在記憶體中就僅僅存放了乙份,所以id 是一樣的 但是僅僅限於整數,如果是小數則不會觸發 前...