首页 > 其他分享 >12.23 每日总结(hashmap和hashset)

12.23 每日总结(hashmap和hashset)

时间:2024-12-25 22:30:22浏览次数:8  
标签:hashmap hashset 12.23 AOP 视图 链表 Controller 数组 Spring

今天在做面试题,看到又问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):负责渲染返回的数据。
    • 返回响应:将渲染好的视图返回给客户端。

标签:hashmap,hashset,12.23,AOP,视图,链表,Controller,数组,Spring
From: https://www.cnblogs.com/drip3775/p/18631561

相关文章

  • 12.23 补一下前面的考试
    软件需求与分析课堂测试十一—综合案例建模分析(100分)销售订货管理系统是ERP的源头,如何管控销售订单下达、评审、跟进,不光是从软件上做约束管理,同时要从工作流程规定上做规范。【开发目的】规范公司订单下达、评审业务流程,提高客户订单准时交货率。【适用范围】适用于公司订......
  • 12.23软工踩坑
    12.23软工踩坑这里应该是alterRoomNumber这段代码也有问题要加一句如下:if(waitqueueThis.getIsWaiting()==1){//如果在等待中,更新等待时间DatelastRequestTime=waitqueueThis.getLastRequestTime();LocalDateTimenowT......
  • 24.12.23
    菜死了啊啊啊AluoguP9266耶?这不是我们决策单调性嘛,我能受这委屈,我刚学的擒拿术。然后靠着渺远的记忆加了wqs二分。然后冲了一整场爆蛋了。......
  • 12.23日总结之C++学习笔记-1
    *iter++是一个符合表达式,可分解为*iter和++iter,自增++的优先级要比解引用*的优先级要高,但是后缀自增表示先返回原本的值,再进行自增。也就是说上面的语句和*-i(ter++)是完全一样的。Ai解释“这是一个后缀递增操作符。它会返回当前的iter值,然后将iter增加一个位置。例如,如果......
  • 12.23随笔
    这里是12.23随笔题目留档:给定两个字符串s和t,它们只包含小写字母。字符串t由字符串s随机重排,然后在随机位置添加一个字母。请找出在t中被添加的字母。示例1:输入:s="abcd",t="abcde"输出:"e"解释:'e'是那个被添加的字母。示例2:输入:s="",t="y"输出:"y"......
  • 2024.12.23~2024.12.29
    2024.12.23上午学习了期望,一个期望线性限制直接走遍天下!上午成功把例题写完了慵懒的下午有点摆,只写了2题吃完饭乒乓球打了一小会,打算以后乒乓球就晚上打就行了,中午卷题还是不够专注,明天设计一个备忘录,把学习时想干的事写在上面,学习完再干晚上期望后面写不下去了,杀了个回马枪......
  • 12.23 ~ 12.29
    12.23上午模拟赛。你好,lxl......
  • 11. 说说Hashtable 与 HashMap 的区别
    出生的版本不一样,Hashtable出生于Java发布的第一版本JDK1.0,HashMap出生于JDK1.2。都实现了Map、Cloneable、Serializable(当前JDK版本1.8)。HashMap继承的是AbstractMap,并且AbstractMap也实现了Map接口。Hashtable继承Dictionary。Hashtable中大部分public......
  • 2024.12.23及以前做题记录
    低价购买题意:求一个序列最长下降子序列,及达到最长的方案数,方案不同当且仅当子序列对应位置不完全一样。做法:考虑n^2dp,用fi表示第i个位置最大是下降子序列的第几项,用gi表示达到i位置最大长度的不同方案数。首先单纯求最大长度是简单的,要计算方案数,只需要减去相同数字的贡献就......
  • java集合-Map HashMap 源码解析
    hashMap简介HashMap是基于哈希表实现的,每一个元素是一个key-value对,无序,不可重复。HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。HashMap实现了Serializable接口,因此它支持序列化,实现了Cloneable接口,能被克隆。has......