JAVA面试题及参考分析-JAVA基础篇-2
13.构造器(constructor)是否可被重写(override)? 构造方法是不能被子类重写的,但是构造方法可以重载 简单的讲,就是说一个类可以有多个构造方法。 String, StringBuffer StringBuilder的区别 String 的长度是不可变的;StringBuffer的长度是可变的,线程安全;如果对一个字符串要经常改变的话,就一定不要用String,否则会创建许多无用的对象出来.15.HashMap的工作原理是什么? HashMap内部是通过一个数组实现的,只是这个数组比较特殊,数组里存储的元素是一个Entry实体(在JAVA8中为Node),这个Entry实体主要包含key、value以及一个指向自身的next指针。 HashMap是基于hashing实现的,当进行put操作时,根据传递的key值得到它的hashcode,然后再用这个hashcode与数组的长度进行模运算,得到一个int值,就是Entry要存储在数组的位置(下标);当通过get方法获取指定key的值时,会根据这个key算出它的hash值(数组下标),根据这个hash值获取数组下标对应的Entry,然后判断Entry里的key,hash值或者通过equals()比较是否与要查找的相同,如果相同,返回value,否则的话,遍历该链表(有可能就只有一个Entry,此时直接返回null)