LeePandar
垃圾回收算法(3)-标记清除算法 垃圾回收算法(3)-标记清除算法
前言标记清除算法(Mark-Sweep)是一种非常基础和常见的垃圾收集算法,该算法被J.McCarthy等人在1960年提出并成功的发明并应用于Lisp语言。 涉及概念先来了解一下mutator和collector。这2个名词经常在垃圾收集
2020-07-08
垃圾回收算法(2)-根搜索算法 垃圾回收算法(2)-根搜索算法
前言相对于引用计数算法而言,根搜索算法不仅同样具备实现简单和执行高效等特点,更重要的是该算法可以有效的解决在引用记数法中一些已经死亡的对象因为相互引用而导致的无法正确被标记的问题,防止内存泄漏的发生。 算法原理根搜索算法是以根对象集合为起始
2020-07-07
垃圾回收算法(1)-引用计数法 垃圾回收算法(1)-引用计数法
算法原理引用记数法在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活的对象,哪些是已经死亡的对象,只有被标记为已经死亡的对象,GC才会在执行垃圾回收时,释放掉其所占用的内存空间。 比如说,当我们编写以下代码时 String p = ne
2020-07-07
面向对象的7种设计原则(7)-开闭原则 面向对象的7种设计原则(7)-开闭原则
开闭原则开闭原则是面向对象世界里最基础的设计原则,它指导我们如何建立一个稳定,灵活,可扩展的系统。开闭原则定义如下: Software entities like classes,modules and functions should
2020-07-06
面向对象的7种设计原则(6)-迪米特原则 面向对象的7种设计原则(6)-迪米特原则
迪米特原则 迪米特原则(Law of Demeter)又叫最少知道原则(Least Knowledge Principle),可以简单说成:talk only to your immediate friends,只与你直接的朋友们通信,不要
2020-07-06
面向对象的7种设计原则(5)-里氏代换原则 面向对象的7种设计原则(5)-里氏代换原则
定义里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的
2020-07-05
面向对象的7种设计原则(4)-合成聚合复用原则 面向对象的7种设计原则(4)-合成聚合复用原则
合成复用原则在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用这些对象的目的。 如果两个类是“Has-a”关系应使用合成、聚合,如果是“Is-a”关系可使用继承。”Is-A”是严格的分类学意义
2020-07-04
面向对象的7种设计原则(3)-依赖倒置原则 面向对象的7种设计原则(3)-依赖倒置原则
依赖倒置原则 High level modules should not depend upon low level modules.Both should depend upon abstractions.高层模块不应该依赖低层模块,两者
2020-07-01
面向对象的7种设计原则(2)-接口隔离原则 面向对象的7种设计原则(2)-接口隔离原则
定义Interface Segregation Principle 客户端不应依赖它不需要的接口 类间的依赖关系应该建立在最小的接口上 其实通俗来理解就是,不要在一个接口里面放很多的方法,这样会显得这个类很臃肿。接口应该尽量细化,一
2020-07-01
面向对象的7种设计原则(1)-单一职责原则 面向对象的7种设计原则(1)-单一职责原则
永远不要让一个类存在多个改变的理由。 单一原则表明,如果你有多个原因去改变一个类,那么应该把这些引起变化的原因分离开,把这个类分成多个类,每个类只负责处理一种改变。当你做出某种改变时,只需要修改负责处理该改变的类。当我们去改变一个具有多
2020-06-30
Spring事务隔离级别 Spring事务隔离级别
事务隔离级别ISOLATION_DEFAULT这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别。 ISOLATION_READ_UNCOMMITTED 这是事务最低的隔离级别,它充许令
2020-06-23
Spring事务传播机制 Spring事务传播机制
传播性行为分为以下几种 PROPAGATION_REQUIRED–支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。PROPAGATION_SUPPORTS–支持当前事务,如果当前没有事务,就以非事务方式执行。PROPAGA
2020-06-23
2 / 8