DI 发表于 2018-01-11 | 更新于 2019-04-30 | 分类于 spring 解释DI即依赖注入 IOC:也即控制反转,DI即依赖注入,控制反转IOC和依赖注入DI其实就是同个概念的两个不同角度的解释。 阅读全文 »
IOC 发表于 2018-01-11 | 更新于 2019-04-30 | 分类于 spring 解释IoC(Inversion of Control)控制反转,包含了两个方面:控制、反转。 控制指的是:当前对象对内部成员的控制权。 反转指的是:这种控制权不由当前对象管理了,由其他(类,第三方容器)来管理。 IOC容器Bean工厂,创建并管理bean。 阅读全文 »
事务并发一致性问题 发表于 2018-01-11 | 更新于 2019-04-26 | 分类于 数据库 在并发环境下,事务的隔离性很难保证,因此会出现很多并发一致性问题。 丢失修改T1 和 T2 两个事务都对一个数据进行修改,T1 先修改,T2 随后修改,T2 的修改覆盖了 T1 的修改。 读脏数据T1 修改一个数据,T2 随后读取这个数据。如果 T1 撤销了这次修改,那么 T2 读取的数据是脏 ... 阅读全文 »
Socket 发表于 2018-01-03 | 更新于 2019-04-26 | 分类于 网络 一、I/O 模型一个输入操作通常包括两个阶段: 等待数据准备好 从内核向进程复制数据 对于一个套接字上的输入操作,第一步通常涉及等待数据从网络中到达。当所等待数据到达时,它被复制到内核中的某个缓冲区。第二步就是把数据从内核缓冲区复制到应用进程缓冲区。 Unix 有五种 I/O 模型: 阻塞式 ... 阅读全文 »
分治算法 发表于 2017-12-25 | 更新于 2019-04-26 | 分类于 算法 基本概念在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。 基本思想及策略分治法的设计思想是:将一个难以直接解决的大问题,分割成一 ... 阅读全文 »
动态规划 发表于 2017-12-23 | 更新于 2019-04-26 | 分类于 算法 基本概念动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。 基本思想与策略基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的 ... 阅读全文 »
回溯算法 发表于 2017-12-23 | 更新于 2019-04-26 | 分类于 算法 基本概念 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。 但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技 ... 阅读全文 »
二分查找 发表于 2017-12-13 | 更新于 2019-04-26 | 分类于 算法 Java实现二分查找算法二分查找(binary search),也称折半搜索,是一种在 有序数组 中 查找某一特定元素 的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始 ... 阅读全文 »
哈希表 发表于 2017-11-27 | 更新于 2019-04-26 | 分类于 数据结构 使用哈希表可以进行非常快速的查找操作。 哈希是什么? 散列(hashing)是电脑科学中一种对资料的处理方法,通过某种特定的函数/算法(称为散列函数/算法)将要检索的项与用来检索的索引(称为散列,或者散列值)关联起来,生成一种便于搜索的数据结构(称为散列表)。也译为散列。旧译哈希(误以为是人名而 ... 阅读全文 »
枚举法 发表于 2017-11-25 | 更新于 2019-04-26 | 分类于 算法 基本思想 枚举也称作穷举,指的是从问题所有可能的解的集合中一一枚举各元素。 用题目中给定的检验条件判定哪些是无用的,哪些是有用的。能使命题成立。即为其解。 例题:最长公共连续子串 牛牛有两个字符串(可能包含空格),牛牛想找出其中最长的公共连续子串,希望你能帮助他,并输出其长度。 输入描述:输入为两 ... 阅读全文 »