在java中昆禽,string是一個(gè)非常重要的類锻霎,而且是一種特殊的包裝類數(shù)據(jù)
strig為什么設(shè)計(jì)成不可變
java編程中蚜厉,string是一個(gè)非常重要的類,幾乎所有的項(xiàng)目中都會(huì)用到两疚,性能很重要
1.節(jié)省空間:
為了提高效率和空間使用率床估,把字符串常量放在string pool 它們可以被共享,為了保證每一個(gè)用戶
對(duì)字符串的修改不會(huì)影響其他用戶的使用,string設(shè)計(jì)成不可變量
2.提高效率:
正是因?yàn)閟tring是共享的诱渤,在多線程編程的時(shí)候丐巫,string可以被不同的線程共享,如果說(shuō)string設(shè)計(jì)成不可變的勺美,他的線程就是安全的递胧。另外在經(jīng)常使用hash map的時(shí)候,會(huì)把string作為key進(jìn)行存儲(chǔ)赡茸,需要計(jì)算string的hash值
3. 安全性
String被許多的Java類(庫(kù))用來(lái)當(dāng)做參數(shù),例如 網(wǎng)絡(luò)連接地址URL,文件路徑path,還有反射機(jī)制所需要的String參數(shù)等, 假若String不是固定不變的,將會(huì)引起各種安全隱患缎脾。