1、集合类:list1、集合类:list、set、map的 区别?答:List:元素是有顺序的,元素可以重复因为每个元素有自己的角标(索引)ArrayList:底层的数据结构是数组结构,特点是:查询很快,增 删 稍微慢点,线程不同步LinkedList:底层使用的是链表数据结构,特点是:增 删很快,查询慢。Vector:底层是数组数据结构,线程同步,被ArrayList代替了,现在用的只有他的枚举Set:元素是无序的,且不可以重复(存入和取出的顺序不一定一致),线程不同步。HashSet:底层是哈希表数据结构。根据hashCode和equals方法来确定元素的唯一性TreeSet:可以对Set集合中的元素进行排序(自然循序),底层的数据结构是二叉树,也可以自己写个类实现Comparable 或者 Comparator 接口,定义自己的比较器,将其作为参数传递给TreeSet的构造函数。Map:这个集合是存储键值对的,一对一对往里存,而且要确保键的唯一性(01,张三)这样的形式打印出来就是 01=张三HashTable:底层是哈希表数据结构,不可以存入null键和null值,该集合线程是同步的,效率比较低。出现于JDK1.0HashMap:底层是哈希表数据结构,可以存入null键和null值,线程不同步,效率较高,代替了HashTable,出现于JDK 1.2TreeMap:底层是二叉树数据结构,线程不同步,可以用于个map集合中的键进行排序2、String、StringBuffer、StringBuilder的区别?答:1 .三者在执行速度方面的比较:StringBuilder > StringBuffer > String 2 .String <(StringBuffer,StringBuilder)的原因 String:字符串常量 StringBuffer:字符串常量 StringBuilder:字符串常量 StringBuilder:线程非安全的 StringBuffer:线程安全的当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快, 但是可以保证StringBuffer是可以正确操作的。 当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用Stri ngBuffer的,就是速度的原因。 对于三者使用的总结:1.如果要操作少量的数据用 = String2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
2轮面试:电话面试、视频面试
面试感受:一般;面试难度:有难度;面试来源:社会招聘