![](https://csdnimg.cn/release/download_crawler_static/87846026/bg4.jpg)
ArrayList 的特点,内部容器是如何扩充的?
上一点谈到了 ArrayList 的特点,这里略,重点来看其内部容器的扩充:
public void ensureCapacity(int minCapacity) {
modCount++;
int oldCapacity = elementData.length;
if (minCapacity > oldCapacity) {
Object oldData[] = elementData;
//这里扩充的大小为原大小的大概 60%
int newCapacity = (oldCapacity * 3) / 2 + 1;
if (newCapacity < minCapacity)
newCapacity = minCapacity;
//创建一个指定大小的新数组来覆盖原数组
elementData = Arrays.copyOf(elementData, newCapacity);
}
}
Properties 类的特点? 线程安全?
Properties 继承于 Hashtable,,所以它是线程安全的.
其特点是:
它表示的是一个持久的属性集,它可以保存在流中或者从流中加载,属性列表的每
一个键和它所对应的值都是一个“字符串”
其中,常用的方法是 load()方法,从流中加载属性:
public synchronized void load(InputStream inStream) throws
IOException {
// 将输入流转换成LineReader
load0(new LineReader(inStream));
}
private void load0(LineReader lr) throws IOException {
char[] convtBuf = new char[1024];
int limit;
int keyLen;
int valueStart;
char c;
boolean hasSep;
boolean precedingBackslash;
// 一行一行处理
while ((limit = lr.readLine()) >= 0) {
c = 0;
keyLen = 0;