编程思想与算法
文章平均质量分 92
编程思想与算法
Apple_Web
吃苹果的程序员正在努力ing...
展开
-
手把手带你入门链表的基本操作及其优化
文章目录一、概念头指针:头结点(虚拟头结点/哨兵节点/哑节点)首元节点三者关系图判断链表为空代码理解一、遍历二、查找三、插入1、链表头部插入2、链表尾部插入1)优化1:添加tail尾节点2)优化2:添加虚拟头结点3、给点节点后插入四、删除1、删除指定节点后面的节点2、删除指定节点虚拟头结点优化五、根据索引下标插入删除六、时间复杂度分析完整代码测试一、概念头指针:1)头指针是指链表中 ,指向第一个结点的指针(可以是头结点也可以是首元节点,看实现方式)2)头指针是必须存在的,链表为空也存在(head=n原创 2021-12-26 14:50:17 · 1124 阅读 · 0 评论 -
JAVA开发常用工具包
一个有经验的Java开发人员特征之一就是善于使用已有的轮子来造车。《Effective Java》的作者Joshua Bloch曾经说过:“建议使用现有的API来开发,而不是重复造轮子”。在本文中,我将分享一些Java开发人员应该熟悉的最有用的和必要的库和API。顺便说一句,这里不包括框架,如Spring和Hibernate因为他们非常有名,都有特定的功能。本文总结了日志、JSON解析、单测、X...转载 2020-02-05 22:33:57 · 943 阅读 · 0 评论 -
Java中SPI机制与Servlet整合
文章目录高级开发必须理解的Java中SPI机制1 SPI是什么2 使用场景3 使用介绍示例代码4 原理解析5 总结参考谈java SPI机制、spring-mvc启动及servlet3.0SpringMVC初始化SPI机制API 和 SPI的区别Servlet3.0新特性异步处理支持新增注解支持可插性支持ServletContext的性能增强类加载器类加载器与web应用参考spi机制在servle...原创 2019-12-01 15:58:53 · 10105 阅读 · 1 评论 -
递归最佳实践
可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了!可能也有一大部分人知道递归,也能看的懂递归,但在实际做题过程中,却不知道怎么使用,有时候还容易被递归给搞晕。也有好几个人来问我有没有快速掌握递归的捷径啊。说实话,哪来那么多捷径啊,不过,我还是想写一篇文章,谈谈我的一些经验,或许,能够给你带来一些帮助...转载 2019-11-19 09:20:07 · 291 阅读 · 0 评论 -
详解各种布隆过滤器原理及使用场景
文章目录1.什么是布隆过滤器?2.布隆过滤器的原理介绍3.布隆过滤器使用场景4.通过 Java 编程手动实现布隆过滤器5.利用Google开源的 Guava中自带的布隆过滤器6.Redis 中的布隆过滤器6.1介绍6.2使用Docker安装6.3常用命令一览6.4实际使用海量数据处理以及缓存穿透这两个场景让我认识了布隆过滤器 ,我查阅了一些资料来了解它,但是很多现成资料并不满足我的需求,所以就决...转载 2019-12-03 20:38:05 · 2195 阅读 · 2 评论 -
全文检索和倒排索引原理讲解
正排索引正排表是以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档。正排表结构如图1所示,这种组织方法在建立索引的时候结构比较简单,建立比较方便且易于维护;因为索引是基于文档建立的,若是有新的文档加入,直接为该文档建立一个新的索引块,挂接在原来索引文件的后面。若是有文档删除,则直接找到该文档号文档对应的索引信息,将其直接删除。...原创 2019-11-09 18:35:49 · 4342 阅读 · 0 评论 -
全面讲解LRU算法
文章目录概念理解LRU原理基于 HashMap 和 双向链表实现 LRU 的Redis的LRU实现实际运用概念理解1.LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的,是根据页面调入内存后的使用情况进行决策了。由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU算法就是将最近最久未使用的页面予...原创 2019-11-09 18:10:30 · 106232 阅读 · 13 评论 -
if else和if return的区别与使用
背景最近敲代码的时候对if else和if return有点纠结,因为这两种写法可以互换,最开始我是用的if else,后面看别人的代码很多用的if return,然后我也开始用if return,然而慢慢我感觉用if return好像有时还不如用if else来得更直观形象。于是我请教了一下老司机。问题如下:if else与if return的选择问题这两种写法可以互换,如下:if (...原创 2019-09-07 19:14:07 · 11335 阅读 · 5 评论 -
如何优化代码中大量的if/else
文章目录1. 提前return2. 策略模式2.1 多态2.2 枚举3. 学会使用 Optional4. 数组小技巧结束一个快速迭代的项目,时间久了之后,代码中可能会充斥着大量的if/else,嵌套6、7层,一个函数几百行,简!直!看!死!人!其实这种还算好的,更严重的嵌套我也见过,接手到这种项目的人,内心应该是绝望的。出现这种情况的原因很多设计不够完善需求考虑不完全开发人员变动...转载 2019-09-03 23:31:23 · 2704 阅读 · 0 评论 -
一分钟告诉你什么叫做前后端分离
前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。以前老的方式是:1.产品经理/领导/客户提出需求2.UI做出设计图3.前端工程师做html页面4.后端工程...原创 2019-09-01 15:25:13 · 2947 阅读 · 0 评论