JavaList面试题汇总

1、List集合:ArrayList、LinkedList、Vector等。

2、Vector是List接口下线程安全的集合。

3、List是有序的。

4、ArrayList和LinkedList数据结构不一样,前者用在查询较多的场合,后者适用于插入较多的场合。

5、ArrayList使用的是数组结构,LinkedList使用的是链表结构。

6、Jdk1.7之前ArrayList默认大小是10,JDK1.7之后是0,JDK差异,每次约按1.5倍扩容。

7、List中的Vector才是线程安全的,其他要实现线程安全使用工具类Collections.synchronizedList(new ArrayList())方法。

8、使用List自身的sort方法,或者使用Collections.sort(list)方法;

9、Arrays.asList使用的是final数组,并且不支持add方法,不支持扩容。

10、List>Array使用toArray方法,Array>List使用Arrays.asList(array)方法,由于它是固定的,不固定的可以使用new ArrayList(Arrays.asList(array))。

11、 ArrayList和LinkedList的区别:

1)ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 (LinkedList是双向链表,有next也有previous)

2)对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。

3)对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。

Java Map面试题汇总

1、常用的Map集合:HashMap、HashTable、LinkedHashMap、ConcurrentHashMap。

2、Collection是List、Set父接口不是Map父接口。

3、HashMap不是线程安全的。线程安全的有HashTable、ConcurrentHashMap、SynchronizedMap,性能最好的是ConcurrentHashMap。

4、使用HashMap要注意避免集合的扩容,它会很耗性能,根据元素的数量给它一个初始大小的值。

5、HashMap是数组和链表组成的,默认大小为16,当hashmap中的元素个数超过数组大小*loadFactor(默认值为0.75)时就会把数组的大小扩展为原来的两倍大小,然后重新计算每个元素在数组中的位置。

6、按添加顺序使用LinkedHashMap,按自然顺序使用TreeMap,自定义排序TreeMap(Comparetor c)。

7、HashMap的链表结构设计是用来解决key的hash冲突问题的。

8、HashMap的键值都可以为NULL,HashTable不行。

9、key的hash冲突,如果key equals一致将会覆盖值,不一致就会将值存储在key对应的链表中。

10、先根据key的hashcode值找到对应的链表,再循环链表,根据key的hash是否相同且key的==或者equals比较操作找到对应的值。

11、HashMap不是线程安全的,效率高,允许有null的键和值。线程安全,效率低,不允许有null的键和值。

12、HashSet和HashTree的区别:HashSet哈希表实现,数据是无序的,可以放入一个null值。TreeSet二差树实现,数据是自动排好序的,不允许放入null值。

String经典面试题

1、String不是基本数据类型。

2、String是final类型的,不可变。

3、比较字符串的值是否相同用equals,比较字符串对象是否同一个用==。

4、jdk7+中的switch可以使用String类型。

5、创建了两个,”abc”本身创建在常量池,通过new又创建在堆中。

6、String、StringBuffer、StringBuilder最大的不同是String不可变,后者可变。StringBuffer是线程安全的,StringBuilder线程不安全速度较快。

7、trim去掉字符串首尾的空白字符。

8、既然String是final的,所以不能被继承。

9、可以自定义java.lang.String类并编译成功,但不能被加载使用,具体请学习类加载机制。

10、String > byte[] 通过String类的getBytes方法;byte[] > String通过new String(byte[])构造器。

BAT面试笔试33题:JavaList、Java Map等经典面试题!答案汇总!的更多相关文章

  1. Java程序员经典面试题+答案(全)

    这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的朋友在笔试时更好地赢得笔试和面试. 关注公众号[Java典籍]免费赠送一套Java入门视频教程一套! ...

  2. 《PHP程序员面试笔试真题解析》——新书上线

    你好,是我--琉忆.很高兴可以跟你分享我的新书. 很高兴,在出版了PHP程序员面试笔试宝典后迎来了我的第二本书出版--<PHP程序员面试笔试真题解析>. 如果你是一个热爱PHP的程序员,刚 ...

  3. 《PHP面试笔试真题库》——PHP面试的好帮手

    你好,是我琉忆. 一个文艺的PHP开发工程师. 很荣幸能够在这里带来我的第一本新书--<PHP程序员面试笔试真题库>. 一.创作过程 <PHP 程序员面试笔试真题库>是我的第三 ...

  4. 《Java程序猿面试笔试宝典》之Java与C/C++有什么异同

    Java与C++都是面向对象语言,都使用了面向对象思想(比如封装.继承.多态等),因为面向对象有很多非常好的特性(继承.组合等),使得二者都有非常好的可重用性. 须要注意的是,二者并不是全然一样,以下 ...

  5. 《Java程序猿面试笔试宝典》之Java程序初始化的顺序是如何的

    在Java语言中.当实例化对象时.对象所在类的全部成员变量首先要进行初始化,仅仅有当全部类成员完毕初始化后,才会调用对象所在类的构造函数创建对象.    Java程序的初始化一般遵循以下三个原则(以下 ...

  6. java面试一日一题:java中垃圾回收算法有哪些

    问题:请讲下在java中有哪些垃圾回收算法 分析:该问题主要考察对java中垃圾回收的算法以及使用场景 回答要点: 主要从以下几点去考虑, 1.GC回收算法有哪些 2.每种算法的使用场景 3.基于垃圾 ...

  7. java面试一日一题:java中的垃圾回收器

    问题:请讲下java中垃圾回收器有哪些? 分析:该问题主要考察hotspot虚拟机下实现的垃圾回收器 回答要点: 主要从以下几点去考虑, 1.垃圾回收器的种类 2.每种垃圾回收器的着重点是什么 前边的 ...

  8. 【搞定 Java 并发面试】面试最常问的 Java 并发进阶常见面试题总结!

    本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star![Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识.觉得内容不错 ...

  9. 【搞定 Java 并发面试】面试最常问的 Java 并发基础常见面试题总结!

    本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star![Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识.欢迎 Sta ...

随机推荐

  1. Fragment向下兼容

    * android-support-v4都用这个包里的类* 让activity继承FragmentActivity* 获取管理器 getSupportFragmentManager();

  2. 使用Pull解析器生成XML文件

    有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使 ...

  3. 007-IP报文协议

    一.概述 IP协议是将多个包交换网络连接起来,它在源地址和目的地址之间传送一种称之为数据包的东西,它还提供对数据大小的重新组装功能,以适应不同网络对包大小的要求. IP不提供可靠的传输服务,它不提供端 ...

  4. iscsi序列二、iscsi多路径配置方式

    一.ISCSI多路径应用 如果存储服务器到交换机只有一条线路的时候,那么一条线路出线故障,整个就没法使用了,所以多线路可以解决这个问题,避免单点故障 如上图,如果SAN服务器与客户端交换机只有一条线路 ...

  5. Linux系统管理_主题01 :初识Linux_1.5 与Linux进行交互_echo_nano_Tab_whoami

    [root@izkfv3zmvcl0omz ~]# 其中,'root'为登录用户名,'izkfv3zmvcl0omz'为登录主机名,’~’ 表示当前用户正处在 root 用户的 家目录中,’#’则表示 ...

  6. ProbCog[github]使用心得

    1. After installing ProbCog,you can run blnquery and mlnquery. If the terminal warns that 'command n ...

  7. PowerDesigner通过SQL语句生成PDM文件并将name和comment进行互相转换

    本篇文章主要介绍了PowerDesigner通过SQL语句生成PDM文件并将name和comment进行互相转换 超详细过程(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.软件准备 软 ...

  8. Eslint常用命令

    Eslint常用命令 自动修复(针对整个项目) npm run lint -- --fix 运行如上命令,eslint 会自动修复一些简单的错误. 全局安装 npm install -g eslint ...

  9. 访问Nginx显示目录

    显示目录可以提供文件下载,方便文件共享时用到,mark一下. 1. 如何让nginx显示文件夹目录 vi /etc/nginx/conf.d/default.conf 添加如下内容: location ...

  10. hbase数据导出和恢复 设置双master + 查看hbase表占用磁盘大小

    1.备份TETST111hbase org.apache.hadoop.hbase.mapreduce.Export TEST111 /do1/hh2.drop 掉test111表  -- 只能dro ...