优点:
1.通过下标访问元素的效率很高,指定下标为n的元素的地址:首地址*元素类型字节数
2.数组可以保存若干个元素的值。
缺点:
1.数组长度是固定的不能变的;
2.数组进行元素的删除和插入操作的时候,效率比较低。需要移动大量的元素
3.数组元素的类型只能是一种
4.数组通过内容查找元素的效率比较低的。
5.数组的元素是连续分配的,所以在heap内存中必须找到连续的内存空间才能容纳数组的所有数据。对内存要求高一些;
6.数组没有提供任何的封装,所有对元素的操作,都是通过自定义的方法实现的,对数组元素的操作比较麻烦;
java提供了一整套用于管理对象的容器,集合框架 collection framework;
Arrays 工具类:专门用来处理数组的工具类 java.util.Arrays
变参方法
void max(int ... value)变参就是当数组处理的,优先使用定参的,编译后就是数组
一个方法只能有一个变参!即使是不同的类型也不行。
变参参数只能在形参列表的末尾,如果传入的是数组,则只能传一个
String 类称为不可变字符序列
这段代码有1002个对象
StringBuilder和StringBuffer
StringBuilder和StringBuffer都是可变字符序列
buffer是线程安全的,效率低
builder是线程不安全,效率高
通过return this 实现方法连,返回当前对象的意思
数组的扩容,就是老数组*2+2,然后copy内容,将新数组的地址赋值给老的变量
调用delet的方法,包头不包尾