在筹备面试的一段时间,咱们须要对根本的理论知识做一个温习,尤其是一些重复会问到的知识点。置信在有所准备之后,大家在面试时也能削减不少的信念。上面咱们就 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 的根底题目。