冒泡排序(BubbleSort),是一种较简单的、稳定的排序算法。冒泡排序算法步骤:比较相邻的元素,如果第一个比第二个大,就交换他们两个的位置;对每对相邻的元素执行同样的操作,这样一趟下来,最后的元素就是最大的;除了已得出来的最大元素,把剩余的元素重复前面步骤,直到没有元素再需要比较为止,这样排序就完成了。下面学步园小编来讲解下PHP怎样实现冒泡排序、双向冒泡排序?
PHP怎样实现冒泡排序、双向冒泡排序
...
阅读全文
何谓单例模式?
单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。
单例模式,简单的说就是 ...
阅读全文
接口转回成具体类型
接口实例中可以存放各种实现了接口的类型实例,在有需要的时候,还可以通过ins.(Type)或ins.(*Type)的方式将接口实例ins直接转回Type类型的实例。
var i int = 30 var ins interface{} // 接口实例ins中保存的是int类型 ins = i
x := ins.(int) // 接口转回int类型的实例i println(x) //输出30
但注意,这时候的i和x在底层不是同一个对象,它们的地址是不同的。
var i int = 30 var...
阅读全文
HashMap 想必是平时工作中使用非常的频繁的数据结构了吧,它简单易用,同时也是面试扫盲第一轮技术面中出现频率极高的题目之一。假设我问你:HashMap 一次 put 操作的详细过程是怎样的,你可以对答如流吗?
HashMap 的存储结构就不用多介绍了,底层是一个列表/二叉树的数组结构。当我们调用一次put操作的时候主要会经过如下4个大步骤,让我们来详细看一下这四个步骤都做了些什么事情。
1. 求 Key 的 hash 值
想...
阅读全文
ConcurrentHashMap 在我们平时编码的过程中不是很常用,但是它在 Java 基础面试中是也是一道必考题,通常会拿出来和 HashMap 做比较,所以我们必须要掌握它。那么,你知道 ConcurrentHashMap 是如何来实现一个支持并发读写的高效哈希表呢?
ConcurrentHashMap 同 HashMap 一样,都是 Map 接口的子类。不同之处在于 HashMap 是非线程安全的,如果想要在多线程环境下使用必须对它的操作添加互斥锁。而 ConcurrentHashMap ...
阅读全文
为了降低耦合性,提出了DAO封装数据库操作的设计模式。
它可以实现业务逻辑与数据库访问相分离。相对来说,数据库是比较稳定的,其中DAO组件依赖于数据库系统,提供数据库访问的接口。
DAO设计模式的理解
一般的DAO的封装由以下另个原则:
· 一个表对应一个表,相应地封装一个DAO类。
· 对于DAO接口,必须由具体的类型定义。这样可以避免被错误地调用。
在DAO模式中,将对数据的持久化抽取到DAO层...
阅读全文
数据元素之间的相互联系方式称为数据的逻辑结构 。数据的逻辑结构是对数据元素之间逻辑关系的描述,它可以用一个数据元素的集合和定义在此集合上的若干关系来表示。数据的逻辑结构经常被简称为数据结构。
按照数据的逻辑结构来分,有两种形式:线性结构和非线性结构。线性结构是指 除第一个和最后一个数据元素外,每个数据元素有且只有一个前驱元素和一个后继元素,而非线性数据结构则会有零个或多个前驱元素和零个或多...
阅读全文
Lambda表达式是JDK8新增的特性 下面的图就是JDK8的新特性,JDK5和JDK8相对来说都是比较重要有的Java版本。
所以学习使用其中的新特性也是比较重要的。
Lambda简介
Lambda表达式指的是应用在单一抽象方法接口环境下的一种简化定义形式,可以用来解决匿名内部类的定义复杂问题。
今天这篇讲的是lambda表达式,它是一种新的语法规则。它是一种匿名函数,简单地说,它是没有声明的方法,也即没有访问修饰符、返...
阅读全文
jquery官网对.data函数描述是:在匹配元素上存储任意相关数据 或 返回匹配的元素集合中的第一个元素的给定名称的数据存储的值。
存储键值(key/value):
$("body").data("foo", 52);
$("body").data("bar", { myType: "test", count: 40 });
$("body").data({ baz: [ 1, 2, 3 ] });
取键值
$("body").data("foo"); // 52
$("body").data(); // { foo: 52, bar: { myType: "test", count: 40 }, b...
阅读全文