当List<String> list =new ArrayList<String>(20); 他会扩容多少次?
A 0         B 1      C 2     D 3
答案是A: 因为这个集合调用的是ArryList的有参构造,  咱们可以看一下ArryList的有参构造。

 public ArrayList(int initialCapacity) {
if (initialCapacity > 0) {
this.elementData = new Object[initialCapacity];
} else if (initialCapacity == 0) {
this.elementData = EMPTY_ELEMENTDATA;
} else {
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
}
}

1.ArrayList有参构造的参数initialCapacity就是集合的初始容量。   如果我们在实例化有参构造时赋的参数大于20。 他会走 if,  也就是把初始容量赋成你传入的值了。

2.else if和ArryList的无参构造作用是一样的。把初始容量设置成了EMPTY_ELEMENTDATA也就是10。

3.else那就是其他不在预算范围内的情况,他会出现IllegalArgumentException异常。

面试6 --- 当List<String> list =new ArrayList<String>(20); 他会扩容多少次的更多相关文章

  1. 当List<String> list =new ArrayList<String>(20); 他会扩容多少次

    当List<String> list =new ArrayList<String>(20); 他会扩容多少次?A 0       B 1 C 2 D 3答案是A: 因为这个集合 ...

  2. List<String> list=new ArrayList<String>(20);为什么要声明为List 而不是ArrayList<String>?

    如何理解:List<String> list=new ArrayList<String>();为甚麼要声明为List 而不是ArrayList<String>? 在 ...

  3. Java--泛型理解和使用 (List<String> list = new ArrayList<String>(); )

    List<String> list = new ArrayList<String>(); 第一次看到这行代码是一头雾水,查了好久才弄清楚这是什么东西,怎么用,所以记录下来,方便 ...

  4. Java List<String> list=new ArrayList<String>();为什么要声明为List,而不是ArrayList<String>

    例如:代码List list = new ArrayList(); 下面通过list来操作集合.假如代码编写后却发现集合使用的不准确,应该使用LinkedList,那么只要修改一行代码List lis ...

  5. List<String> 和 ArrayList<String>的区别

    最近对这两个问题比较懵逼,关于List和ArrayList.List<String> list = new ArrayList<String>(); 好了,先搞明白List 和 ...

  6. List<String> 和 ArrayList<String>的区别(转载)

    最近对这两个问题比较懵逼,关于List和ArrayList.List<String> list = new ArrayList<String>(); 好了,先搞明白List 和 ...

  7. android string[] arraylist<string>互转

    string[] to arraylist<string>:eg:string[] str; arraylist<string> arr; for(int i=0;i<s ...

  8. String、String[]、ArrayList<String>之间的转换

    1. ArrayList<String> 转换为 String[]: ArrayList<String>  list = new ArrayList<>(); li ...

  9. 我说我精通字符串,面试官竟然问我Java中的String有没有长度限制!?|附视频讲解

    关于String有没有长度限制的问题,我之前单独写过一篇文章分析过,最近我又抽空回顾了一下这个问题,发现又有了一些新的认识.于是准备重新整理下这个内容. 这次在之前那篇文章的基础上除了增加了一些验证过 ...

随机推荐

  1. tldr/cheat

    tldr 比man好用的查询命令查询工具, man很强大,但是 TLDR,too long dont read 安装 npm install -g tldr 使用说明 其他版本下载 https://g ...

  2. [总结] MSF攻击数据库服务

    0x01 攻击Mysql服务 1.1 目标探测 auxiliary/scanner/mysql/mysql_version 常用于内网中的批量mysql主机发现: 1.2 爆破登录 auxiliary ...

  3. fluent计算输出时均值

    / ****************************************************************************** * Created on : 2017 ...

  4. Java 自定义异常

    新建类CustomException继承 Exception /** * Create by on 2019-07-30 * 自定义类需要继承Exception * @author lsw */ pu ...

  5. POST请求BODY格式区别

    在PostMan中用Post方式,Body有form-data,x-www-form-urlencoded,raw,binary四种. Request Header示例:POST /upload.do ...

  6. git远程版本回退

    本文为博主原创,未经允许不得转载: 之前在git提交版本时,发现将新开发的代码提交到了另一个分支上,为了不影响提交分支代码的 功能,需要回退到之前的版本. 在使用命令回退的时候,一直没有回退成功,有个 ...

  7. ajax发送json数据时为什么需要设置contentType: "application/json”

    1. ajax发送json数据时设置contentType: "application/json”和不设置时到底有什么区别?contentType: "application/js ...

  8. thinkphp---404错误页面

    在用thinkphp开发项目的时候,会额外的处理404错误页面,但是我们很多的开发人员,在处理404错误页面的时候,处理方式都是不对的. 普通处理404的操作是通过 $this->error() ...

  9. 012-Shell 提示确认(Y / N,YES / NO)

    例1:确认提示(一次) 这个示例代码将为确认提示一次,如果你给输入错误,程序会以状态1退出.这个例子将只接受Y或N或YES或NO(不区分大小写). #!/bin/bash read -r -p &qu ...

  10. 算法练习之合并两个有序链表, 删除排序数组中的重复项,移除元素,实现strStr(),搜索插入位置,无重复字符的最长子串

    最近在学习java,但是对于数据操作那部分还是不熟悉 因此决定找几个简单的算法写,用php和java分别实现 1.合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两 ...