java基础学习4
1.开发经验;小步前进,增量式的开发,逐步去迭代,把一个大问题切分每个很小的模块!逐步测试每个模块,一个模块测试完了,去开发另一个模块!千万不要把一个功能写完了再测试,那样100%会出现错误!
2.策略模式:(jdk中treeMap的指定排序已经实现了)
1)定义一组算法,将每个算法封装起来,并且使他们之间可以互换;策略模式使这些算法在客户端调用它们时候互不影响的变化
2)意义:策略模式使得开发人员能够开发出由许多可替换的部分组成的软件,并且各个部分之间是弱连接的关系。弱连接性的特性使得软件具有更强的扩展性,易与维护,更重要的是它大大提高了软件的重用性;
3)组成:
-抽象策略角色:策略类,通常有一个接口或者抽象类实现 如:comparator 接口
-具体策略角色:包装了相关的算法行为 如实现接口的people方法
-环境角色:持有策略类的引用,最终给客户端调用,如treeMap接收comparator的引用people类,然后调用people的compara做比较返回一个int类型的值作为比较结果
4. 1)HashMap底层维护一个数组,我们向HashMap中放置的对象实际上是存储在该数组当中;
2)当向HashMap中put一对键值时,它会根据key的hashCode值计算出一个位置,该位置就是此对象准备往数组中存放的位置。
3)如果该位置上没有对象存在,就将此对象直接放进数组当中;如果该位置已经有对象存在了,则顺着此存在的对象的链开始寻找(Entry类有一个Entry类型的next成员变量,指向了该对象的下一个对象),如果次链上有对象的话,再去使用equals方法进行比较,如如果对此链上的某个对象的equals方法比较为false,则将改对象放到数组当中,然后将数组中该位置以前存在的那个对象链接到此对象的后面。
5.HashSet底层是使用HashMap实现的,当使用add方法将对象添加到set当中时,实际上试讲该对象作为底层维护的Map对象的key,而value则都是同一个object对象(该对象我们用不上)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?