• Data structure | Priority Blocking Queue


  • Data structure | Linked Blocking Queue


  • Data structure | Delay Queue


  • Data structure | Concurrent Linked Queue


  • Data structure | Complete Binary Tree 完全二叉树


  • Data structure | Black Red Tree 红黑二叉树


  • Data structure | Balanced Binary Tree 平衡二叉树

    平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,也是第一个引入平衡概念的二叉树。平衡二叉树要求对于每一个节点来说,它的左右子树的高度之差不能超过1,如果插入或者删除一个节点使得高度之差大于1,就要进行节点之间的旋转,将二叉树重新维持在一个平衡状态。这个方案很好的解决了二叉查找树退化成链表的问题,把插入,查找,删除的时间复杂度最好情况和最坏情况都维持在O(logN)。但是频繁旋转会使插入和删除牺牲掉O(logN)左右的时间,不过相对二叉查找树来说,时间上稳定了很多。


  • Data structure | Array Blocking Queue


  • Backend | Servlet

    服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口(Common Gateway Interface,CGI)应用程序完成的。然而,在服务器上运行 Java,这种程序可使用 Java 编程语言实现。在通信量大的服务器上,JavaServlet 的优点在于它们的执行速度更快于 CGI 程序。各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。


  • Backend | Filter

    在服务器处理请求之前和发送请求时,被注册的Filter会进行工作。Filter的作用就像是一层滤网,将注册的请求进行拦截并处理。


  • JAVA | Annotation 注解

    在通过Springboot编写SeanforfunBlog的时候,我大量接触Spring4.x的注解,在一开始学习java的时候我只是粗略的学习了注解的开发和使用,这导致我在对比Spring3.x和Spring4.x的过程中出现了大量的不理解,花费了大量的时间。而从servlet2.5到servlet3.0的升级中,完全抛弃了web.xml的配置而是转为注解式开发更坚定了我想要对注解的研究。所谓磨刀不误砍柴工,我决定暂时停下手上所有的事情从JAVA基础上研究Annotation的原理。


  • Spring| IoC 反转控制

    面向对象的处理中,对象封装了数据和堆数据的处理,对象的依赖关系常常体现在对数据和方法的依赖上。所以我们可以将对象之间的依赖交给IoC容器去处理,减少了对象之间的耦合。


  • Spring | IOC Container

    Spring容器的总结和应用。


  • Algorithm | KMP

    Kmp is the fastest method of pattern search, the time complexity of kmp is O(M + N) where M is the length of orginal string and N is the length of pattern.


  • Data structure | Union-Find 并查集


  • Data structure | Undirected Graph 无向图


  • Data structure | Trie Tree 字典树


  • Algorithm | Sort 排序


  • Data structure | Shortest Path


  • Algorithm | Selection Sort(Bubble Sort) 冒泡法