我们平时学习java知识的最终目的都是希望通过这门技术获得一份不错的工资,提升自己的工作水平。其实在java求职过程中会遇到很多平时不怎么熟悉的问题,一起来了解一下吧。
首先说一下,java HashMap的树化与还原是什么?
1.哈希表的最小树形化容量
2.当哈希表中的容量大于这个值时(64),表中的桶才能进行树形化
3.否则桶内元素太多时会扩容,而不是树形化
4.为了避免进行扩容、树形化选择的冲突,这个值不能小于4 *TREEIFY_THRESHOLD
5.一个桶的树化阈值
6.当桶中元素个数超过这个值时(8),需要使用红黑树节点替换链表节点
7.这个值必须为8,要不然频繁转换效率也不高
8.一个树的链表还原阈值
9.当扩容时,桶中元素个数小于这个值(6),就会把树形的桶元素 还原(切分)为链表结构
10.这个值应该比上面那个小,至少为6,避免频繁转换
条件1. 如果当前桶数组为null或者桶数组的长度<MIN_TREEIFY_CAPACITY(64),则进行扩容处理
条件2. 当不满足条件1的时候则将桶中链表内的元素转换成红黑树。
然后再补充一个常见面试题,抽象类和接口类的区别是什么?
1.抽象方法必须为public或者protected,缺省情况下默认为public。而接口的所有方法访问权限自动被声明为public abstract,接口中可以定义“成员变量”,会自动变为public static final修饰的静态常量
2.抽象方法必须由子类来实现,接口可以通过类命名直接访问:ImplementClass.name
3.如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法,如果子类没有实现父类的抽象方法,则必须将子类也定义为抽象类。 而 实现接口的非抽象类必须实现接口中所有方法,抽象类可以不用全部实现
4.抽象类可以有构造器,而接口没有
5.一个子类只存在一个父类,而实现多接口接口
其实java中很多的知识点都是比较偏的,所以大家有时候没有掌握也是很正常的。如果你想要了解更多Java面试题,敬请关注奇Q工具网。
推荐阅读: