ArrayList底層是基于數組實現的,它使用一個數組來存儲元素,并根據需要動態調整數組的大小。當數組已滿時,ArrayList會創建一個新的數組,將原數組中的元素復制到新數組中,并繼續添加新元素。
在初始化時,ArrayList會創建一個初始容量為10的數組。當向ArrayList中添加元素時,如果數組已滿,則會通過System.arraycopy()方法創建一個新數組,并將原數組中的元素復制到新數組中。
ArrayList還支持隨機訪問,因為它是基于數組實現的,可以根據索引直接訪問數組中的元素。
總的來說,ArrayList的底層原理主要是基于數組,并通過動態調整數組大小來實現動態添加元素的功能。