快速导航
Java基础面试总结
文章目录
- hashmap发生hash冲突了有什么解决办法
- 泛型,谈谈你对泛型的理解
hashmap发生hash冲突了有什么解决办法
- 开放地址法 平方探测再散列
如果发生冲突,放到(冲突+1平方)的位置,如果还发生冲突,就放到(冲突-1平方)的位置;如果还有人就放到(冲突+2平方)的位置,以此类推,要是负数就倒序数。 - 拉链法
如果发生冲突,就继续往前一个元素上链接,形成一个链表,Java的hashmap就是这种方法。 - 再哈希
如果发生冲突,就用另一个方法计算hashcode,两次结果值不一样就不会发生hash冲突;
泛型,谈谈你对泛型的理解
- 泛型:允许在定义类、接口时指定类型形参,这个形参健在声明变量、创建变量的、创建对象的时候再确定的(即传入的实际参数类型,也可以称为类型实参)
- 泛型出现的原因(即为什么要有泛型)
在jdk1.5之前,集合类像ArrayList、linkList、Set存放的Object类型的,无法对存入的元素进行自检查,在取数据的需要对数据的强制转换,如果一旦集合中存入了不一致的类型,例如存放integer类型的集合中错误存放String类型,就会出现类型转化错误的异常 - 泛型擦除和转换
泛型信息只存在于代码编译阶段,在进⼊ JVM 之前,与泛型相关的信息会被擦除掉,专业术语叫做类型擦除。 - 在类中定义的泛型在jvm中执行最终都是Object,即所有泛型在jvm中执行的时候,都是以Object对象存在的,加泛型只是一种代码的规范,避免在可开发过程再次强转。