如何实现git:https://<user2>@github.com
以避免不变的字符串分配问题?
Control Panel\User Accounts\Credential Manager
答案 0 :(得分:5)
通过使用char
数组。您可以在JDK源代码中看到这一点。在JDK 1.8(我很方便的源代码)中,StringBuilder
建立在AbstractStringBuilder
的基础上,使用char[] value;
int count;
来保存数据:
byte
({Karol Dowbecki says,JDK 9“有时”使用char
而不是count
;我没有理由怀疑他。:-))
value
告诉类char[16]
中有多少是实际数据,而数组中只有可用空间。它以toString
开始(除非您事先告知您可能需要的容量),然后根据需要重新分配和复制。
它仅在调用byte[]
时使用String(char[],int,int)
constructor(或可能接受public String toString() {
// Create a copy, don't share the array
return new String(value, 0, count);
}
的人,有时是JDK9)创建一个字符串,以复制数组内容的一部分。实际使用的:
import webbrowser
webbrowser.open_new('https://www.msn.com')
webbrowser.open_new_tab('https://www.aol.com/')
答案 1 :(得分:2)
它在幕后使用char[]
(或JDK 9或更高版本中的byte[]
)来存储字符。仅在调用StringBuilder.toString()
之后创建新的String对象。