java

导航

java面试题及答案:第四部分

来源 :中华考试网 2020-09-24

  Collections.sort排序内部原理

  在Java 6中Arrays.sort()和Collections.sort()使用的是MergeSort,而在Java 7中,内部实现换成了TimSort,其对对象间比较的实现要求更加严格

  hashMap原理,java8做的改变

  从结构实现来讲,HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的。HashMap最多只允许一条记录的键为null,允许多条记录的值为null。HashMap非线程安全。ConcurrentHashMap线程安全。解决碰撞:当出现冲突时,运用拉链法,将关键词为同义词的结点链接在一个单链表中,散列表长m,则定义一个由m个头指针组成的指针数组T,地址为i的结点插入以T(i)为头指针的单链表中。Java8中,冲突的元素超过限制(8),用红黑树替换链表。

  String 和 StringBuilder 的区别

  1)可变与不可变:String不可变,每一次执行“+”都会新生成一个新对象,所以频繁改变字符串的情况中不用String,以节省内存。

  2)是否多线程安全:StringBuilder并没有对方法进行加同步锁,所以是非线程安全的。StringBuffer和String均线程安全。

  Vector 与 Array 的区别

  1)ArrayList在内存不够时默认是扩展50% + 1个,Vector是默认扩展1倍。

  2)Vector属于线程安全级别的,但是大多数情况下不使用Vector,因为线程安全需要更大的系统开销。

  HashMap 与 Hashtable 的区别

  1) 历史原因: Hashtable继承Dictonary类, HashMap继承自abstractMap

  2) HashMap允许空的键值对, 但最多只有一个空对象,而HashTable不允许。

  3) HashTable同步,而HashMap非同步,效率上比HashTable要高

  填写下面表单即可预约申请免费试听!害怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

分享到

相关资讯