在筹备面试的一段时间,咱们须要对根本的理论知识做一个温习,尤其是一些重复会问到的知识点。置信在有所准备之后,大家在面试时也能削减不少的信念。上面咱们就java的业余模块分类进行展现,并在分类下列举多数试题,最初带来一些常见的面试题目,并附上对应的答案解析。

一、专业技能模块

1.汇合

常常用到哪些 Map

这几种 Map 的区别

2.多线程、锁

线程池应用的是哪种

线程池参数怎么配置

3.网络

HTTPS 是怎么加密的

一般 Hash 和一致性 Hash 原理

4.Spring、Mybatis

Mybatis 中 # 和 $ 的区别

怎么避免SQL 注入

5.MySQL

MySQL 索引的数据结构

为什么应用 B+ 树,与其余索引相比有什么长处

6.JVM

运行时数据区

服务器应用的什么垃圾收集器

7.分布式

CAP 实践

BASE 实践

二、高频试题

1.HashMap和Hashtable各有什么特点,它们有什么区别?(必背题,超级重要)

(1)HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的别离。次要的区别有:线程安全性,同步(synchronization),以及速度。

(2)HashMap简直能够等价于Hashtable,除了HashMap是非synchronized的,并能够承受null(HashMap能够承受为null的键值(key)和值(value),而Hashtable则不行)。

(3)HashMap是非synchronized,而Hashtable是synchronized,这意味着Hashtable是线程平安的,多个线程能够共享一个Hashtable;而如果没有正确的同步的话,多个线程是不能共享HashMap的。Java 5提供了ConcurrentHashMap,它是HashTable的代替,比HashTable的扩展性更好。

(4)另一个区别是HashMap的迭代器(Iterator)是fail-fast迭代器,而Hashtable的enumerator迭代器不是fail-fast的。所以当有其它线程扭转了HashMap的构造(减少或者移除元素),将会抛出ConcurrentModificationException,但迭代器自身的remove()办法移除元素则不会抛出ConcurrentModificationException异样。但这并不是一个肯定产生的行为,要看JVM。这条同样也是Enumeration和Iterator的区别。

因为Hashtable是线程平安的也是synchronized,所以在单线程环境下它比HashMap要慢。如果你不须要同步,只须要繁多线程,那么应用HashMap性能要好过Hashtable。

(5)HashMap不能保障随着工夫的推移Map中的元素秩序是不变的。

2.Java汇合类框架的根本接口

Java汇合类提供了一套设计良好的反对对一组对象进行操作的接口和类。Java汇合类外面最根本的接口有:

• Collection:代表一组对象,每一个对象都是它的子元素。

• Set:不蕴含反复元素的Collection。

• List:有程序的collection,并且能够蕴含反复元素。

• Map:能够把键(key)映射到值(value)的对象,键不能反复

以上就是对于Java面试题大汇总的一些介绍,在理论面试中,题目远远不止这些,而且考查的形式变幻无穷。大家能够先从本篇的一些要点动手,掌握住这些java的根底题目。