• 技术文章 >面试题 >java面试题

    Java面试题的分类整理

    小妮浅浅小妮浅浅2021-01-19 18:25:09原创20680

    在准备面试的一段时间,我们需要对基本的理论知识做一个复习,尤其是一些反复会问到的知识点。相信在有所准备之后,大家在面试时也能增添不少的信心。下面我们就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的基础题目。更多Java试题指路:java面试题

    专题推荐:java面试题大汇总
    上一篇:java面试题的基础知识点 下一篇:java算法面试题

    相关文章推荐

    • java之面试题的汇总和分类• java面试题的基础知识点

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网