摘要:
在Linux 桌面开发已经有一段时间了,个人用的是最新的Fedora ,装上idea后,写代码再加中文注释的时候发现部分汉字打不出来,删除的时候发现汉字占着位,只是显示不出来,最初以为是注释问题,调整了注释,行不通,后来在用git提交和搜索类的时候发现还是有部分中文显示不出来,就怀疑是idea在li 阅读全文
摘要:
斐波拉契数列这里复习一下: 0,1,1,2,3,5,8,13 ...... 数列很简单,就是当前的项的值 等于 紧靠着的前面两项值的和, 立马想出来用递归几行代码就可以实现: 由于递归循环调用方法,占用栈空间,n = 50 时,运行上面的代码,结果已经出不来了, 这里从上面的代码推出非递归实现: 再 阅读全文
摘要:
关于红黑树,先上一张图,这里推荐一个可视化数据结构的网站:可视化带动画的数据结构基本的在线操作,我在这上面生成了一张: 网上有很多教程,写的也非常棒,这里简单的总结一下其基本性质: 1.每一个节点或者是红色,或者是黑色; 2. 根节点是黑色的; 3.如果一个节点是红色的,那么它的子节点必须是黑色的; 阅读全文
摘要:
定义平衡树节点: 辅助的方法: 1.用于计算节点的高度: 2.获取节点的平衡因子(即左子树与右子树的高度差): AVL树插入数据的四种结构: 第一种: 只需要实现单次右旋: 第二种: 先左旋节点的左子节点,再右旋节点: 第三种: 只需要实现单次左旋: 第四种: 先右旋右子节点,再左旋: 出入数据的完 阅读全文
摘要:
构成二叉查找树的条件 任意节点的所有左子节点的值小于当前节点的值,右子节点的值大于当前节点的值; 二叉查找树节点简单定义: 这里只定义值是一个int类型,其实有 java的Comparable,可以把这个值得类型定义为任意Comparable接口实现。 树的基本操作: 二叉树的三种遍历方式 阅读全文
摘要:
初始入口: 类的继承关系图如下: 可以看到这个Listener实现了Servlet标准提供的接口,这个listener只有两个方法是 用来监听web容器启动和关闭动作的: 当然ContextLoaderListener实现了这两个方法: 切换到父类ContextLoader 中initWebAppl 阅读全文
摘要:
入口: ServletContainerInitializer这个类是Servlet3.0新增的接口,源码定义如下: 而SpringServletContainerInitializer实现了这个接口,源码也很简单的只有几行,这里原封不动的将注释也拷过来,便于读懂注释分析: TODO: 另外, 这个 阅读全文
摘要:
CLH队列锁 及自旋锁 乐观锁及CAS 独占锁与共享锁 LockSupport与wait ,join和notify 这里截取内部类Node的部分代码,节点的状态值如下: 重要方法理解: 2.唤醒后继节点: 如方法注释,这个方法是唤醒节点的后继节点, 阅读全文
摘要:
用了很多第三方库,也看了些源码,总是想如果自己写一个类似的库,读取xml配置文件(properties配置文件比较简单) 该如何给配置文件添加头,添加校验,因为xml配置文件相对于properties配置文件结构更加清晰。最近刚好在看spring 1.2.9版本的源码,就来总结一下如何定义一个dtd 阅读全文
摘要:
最近在测试连接池dbcp和Hikaricp速度时,为了弄清楚Hikaricp速度优势的原因,阅读了二者的源码,源码不是很难,类也没有多少,联想到很多知识,现在来总结一下。 阅读全文