第37课 - 线索化二叉树 1. 问题 在一些项目中需要频繁的遍历二叉树,但是二叉树的遍历比单链表的遍历复杂多了,并且递归总是会后额外的开销。 2. 线索化二叉树 线索化二叉树指的是将二叉树中的结点进行逻辑意义上的“重新排列”,使其可以线性的方式访问每一个结点。 二叉树线索化后每个结点都有一个线性下 ...
分类:
其他好文 时间:
2019-08-11 19:03:32
阅读次数:
94
HashMap实现原理及源码分析 哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对 ...
分类:
其他好文 时间:
2019-08-10 10:06:22
阅读次数:
81
背景 某次抢购时,一个redis集群的某个分片,从实例响应时间陡增到几十秒,报警后运维将其中一个本应该下线的slave下掉,问题减轻但没有解决,又把另一个正常的slave下线掉,问题消失。 master日志 09:59:11.842 # Client id=19768058 addr=xx.xxx. ...
分类:
其他好文 时间:
2019-08-03 16:19:21
阅读次数:
171
数据库的备份策略:完全备份,增量备份,差异备份;(每周一次完整备份,每天进行增量备份) 数据库的备份状态:热备份(DBMS运行状态下进行备份),冷备份(DBMS下线后进行备份) ##InnoDB支持热备,MyISAM不支持热备 数据库的备份方式:tar,cp打包备份(物理备份),数据库导入导出备份m ...
分类:
数据库 时间:
2019-08-02 16:22:23
阅读次数:
136
解释一下线程安全问题产生的原理 三个线程t0 t1 t2 。加上t0抢到cpu的执行权 t0抢到了cpu的执行权。,但是走到if语句的地方。执行了sleep,就失去了执行权 假设t2抢到了执行权也来执行run方法 t2睡醒了 重复票的问题。三个线程同时执行到了 输出的这行代码 总结 ...
分类:
编程语言 时间:
2019-07-28 19:49:41
阅读次数:
101
近日,一篇关于水氢发动机“正式下线”的报道掀起热议,被网友质疑该项目不符合能量守恒。加水就可以行驶500公里、1000公里? 这种事情,理论上,从物理角度是可行的,无非就是把电解水制氢,提纯设备做了一个整合放在车上而已,但现实不可能普及。因为整套系统体积过大,车辆载量过重,续航能力不如直接用储氢瓶或 ...
分类:
其他好文 时间:
2019-07-14 15:07:00
阅读次数:
91
测试前题:测试cassandra集群使用了vnodes,如何判断是否用了vnodes呢?主要看你的cassandra.yml配置文件中。默认(3.x)为空,系统自动生成。为空表示使用virtualnodes,默认开启,使用了vnodes,删除了节点之后它会自己均衡数据,需要人为干预。测试数据生成创建一个名为kevin_test的KeySpace创建一个名为kevin_test的KeySpace,使
分类:
其他好文 时间:
2019-07-11 22:01:45
阅读次数:
134
在web应用中假如没有做会话控制,会出现这样的情况,A登录了账号,B也登录了账号,都是同样的账号,A修改了信息,B会看到修改的信息,这样的用户体验不好,B会觉得我没有修改啊,为什么信息会改变。而做会话控制后,A先登录,B再登录,那么B会把A的登录挤下线。 实现思路:采用时间戳比较 1首先用户登录时, ...
分类:
Web程序 时间:
2019-07-03 18:36:15
阅读次数:
581
第9章 Java中的线程池 在开发过程中,合理地使用线程池能带来3个好处: 9.1 线程池的实现原理 当提交一个新任务到线程池时,线程池的处理流程如下: 1)线程池判断核心线程池里的线程是否都在执行任务。如果不是,则创建一个新的工作线程来执行任务。如果核心线程池里的线程都在执行任务,则进入下个流程。 ...
分类:
编程语言 时间:
2019-07-01 17:16:41
阅读次数:
153
windows 在包管理上一般大家都是网上下载二进制文件或者就是通过软件管家进行安装,这些对于开发人员可能就有点不是 很专业了, Chocolatey 是一个不错的windows 软件包管理工具 安装 注意安装的时候必须使用的是管理员权限 Chocolatey 官方文档已经很全了,给我们提供了下线以 ...