12.23 每日总结(hashmap和hashset)

今天在做面试题,看到又问hashmap和hashset的区别。

  1. HashMap的底层数据结构 HashMap 在 Java 中的底层数据结构是一个数组和链表(或红黑树)的组合。具体来说,它是基于一个数组结构,数组中的每个元素是一个链表的头节点。当发生哈希冲突时,即不同的键映射到同一个数组索引位置,这些键值对就会以链表的形式存储在这个位置上。从 Java 8 开始,当链表的长度超过一定阈值(默认为 8),链表会转换成红黑树,以提高搜索效率。

  2. put方法过程 HashMapput 方法的基本步骤如下:

    • 计算键的哈希值,然后通过哈希算法确定这个键值对应该存储在数组的哪个位置。
    • 如果该位置没有元素,直接新建一个节点存储键值对。
    • 如果该位置已经有元素(即发生了哈希冲突),则:
      • 如果该位置的元素是树节点(链表转换成红黑树后),则在树中插入键值对。
      • 如果该位置的元素是链表,遍历链表,如果找到相同键的节点,则更新该节点的值;如果没有找到,则在链表尾部添加新的节点。
    • 如果数组的负载因子超过阈值(默认为 0.75),则进行扩容操作,即创建一个新的更大的数组,并将所有元素重新映射到新数组上。
  3. 讲一下SpringAOP,项目中有用到吗,用来干什么 Spring AOP(面向切面编程)是 Spring 框架的一个模块,它允许你在不修改业务逻辑代码的情况下,对程序的特定部分进行横向切入。AOP 通过“切面”和“通知”来实现,切面定义了横切的关注点,而通知定义了切面何时何地被应用。

    • 项目中的应用:在项目中,我使用 Spring AOP 来进行日志记录、事务管理、权限检查等横切关注点的处理。例如,通过 AOP 可以在方法执行前后自动记录日志,或者在方法执行前后进行权限验证,而不需要在每个业务逻辑方法中手动编写这些代码。
    • 用途:Spring AOP 常用于日志记录、事务管理、权限检查、性能监控等方面。
  4. 讲一下SpringMVC的过程 Spring MVC 是一个基于 Java 的实现了 MVC 设计模式的 Web 框架,用于构建 Web 应用程序。它的处理过程大致如下:

    • 客户端请求:用户通过浏览器发送 HTTP 请求到服务器。
    • 前端控制器(DispatcherServlet):接收到请求后,Spring MVC 的前端控制器将请求委托给适当的处理器(Controller)。
    • 处理器映射(HandlerMapping):确定哪个 Controller 的哪个方法将处理请求,并生成处理器对象及处理器拦截器(如果有)。
    • 处理器适配器(HandlerAdapter):负责将处理器映射提交的Controller和handler映射成Controller方法的执行。
    • Controller:Controller 方法执行业务逻辑处理,并返回一个模型和视图。
    • 视图解析器(View Resolver):解析 Controller 返回的逻辑视图名为具体的视图。
    • 视图(View):负责渲染返回的数据。
    • 返回响应:将渲染好的视图返回给客户端。

__EOF__

本文作者Drip
本文链接https://www.cnblogs.com/drip3775/p/18631561.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   笠大  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示