东陆之滇

爱是永恒,不可休

导航

2018年11月6日 #

【设计模式】之工厂模式

摘要: 工厂方法设计模式 软件系统经常不断变化,而且不稳定。我们必须考虑对象和关系的松耦合。 松耦合是软件设计时一个非常重要的特性,可以帮助系统不做或者做很少的变更就能扩展新功能。 工厂方法设计模式提供了一种将一个对象实例作为一个对象工厂的方式。 工厂可以根据提供给它的参数返回类层次结构中可能的几个类中一个 阅读全文

posted @ 2018-11-06 21:42 东陆之滇 阅读(123) 评论(0) 推荐(0) 编辑

2018年11月5日 #

【设计模式】之原型模式

摘要: 原型模式 什么是原型模式? 原型模式属于创造型模式。当要创建的对象类型可以由已经存在的原型对象确定时,就可以使用它。简单来说, 使用原型模式,我们是通过clone已经存在的实例来完成的 。 在 Java 中,创建一个实例是需要花费很大代价的,耗时耗资源。如果存在一种避免创建对象的处理方式,仅仅是复制 阅读全文

posted @ 2018-11-05 20:10 东陆之滇 阅读(110) 评论(0) 推荐(0) 编辑

2018年10月30日 #

【设计模式】之观察者模式

摘要: 观察者模式 什么是观察者模式 观察者模式属于行为模式的一种,定义了对象的通用交流方式。 观察者模式定义了一对多的关系,一个对象改变了状态,则其它所有依赖它的对象都会收到通知。 观察者模式有时候在网络模型中也叫做发布 订阅模式。 原来的对象叫做观察者,观察者们注册的对象叫做主体。当主体状态变更的时候, 阅读全文

posted @ 2018-10-30 22:53 东陆之滇 阅读(202) 评论(0) 推荐(0) 编辑

2018年10月27日 #

【设计模式】之单例模式

摘要: 什么是单例模式 单例模式属于管理实例的创造型类型模式。单例模式保证在你的应用种最多只有一个指定类的实例。 单例模式应用场景 项目配置类 读取项目的配置信息的类可以做成单例的,因为只需要读取一次,且配置信息字段一般比较多节省资源。通过这个单例的类,可以对应用程序中的类进行全局访问。无需多次对配置文件进 阅读全文

posted @ 2018-10-27 20:35 东陆之滇 阅读(137) 评论(0) 推荐(0) 编辑

2018年6月27日 #

二分搜索算法

摘要: 二分搜索BinarySearch的 "来龙去脉" 二分搜索用于检索某个key是否在已排好序的序列中,我们还记得上编程语言的基础课程:猜字游戏吗? 猜字游戏第一版: 程序预先选取一个数字作为猜想的目标; 用户键盘输入自己猜想的数字; 如果不相等则提示错误; 如果猜对了则游戏终止。 这个游戏猜想效率是很 阅读全文

posted @ 2018-06-27 16:25 东陆之滇 阅读(109) 评论(0) 推荐(0) 编辑

插入排序算法

摘要: 插入排序 插入排序,也是一种基于位置比较交换的排序算法。在排序过程中,它总是维持着一个有序的子列表。例如,一个数组的较低索引部分维持着有序。排序的时候,新元素在之前有序的部分中找好位置"插入"进去。故名,插入排序。 数组被频繁的检索、为排序的项将会移动并插入到已排好序的子列表中,这些都是在一个数组中 阅读全文

posted @ 2018-06-27 16:23 东陆之滇 阅读(91) 评论(0) 推荐(0) 编辑

选择排序算法

摘要: 选择排序原理 选择排序是一种简单排序算法。这是一个基于位置比较的算法,通常实现是左边是已经排好序的元素列表,右边是待排序的元素。当然,一开始的时候,我们认为都是未经排序的。 选择排序的精髓:与冒泡排序不同,选择排序是第N趟排序先确定最小元素的位置,然后和第N个元素交换位置。主要特点是每一趟选择一个最 阅读全文

posted @ 2018-06-27 16:17 东陆之滇 阅读(130) 评论(0) 推荐(0) 编辑

2018年6月20日 #

【java源码】解读HashTable类背后的实现细节

摘要: 要在hashtable中存储和检索对象,作为key的对象必须实现hashCode、equals方法。 一般来说,默认的加载因子(0.75)提供了一种对于空间、时间消耗比较好的权衡策略。太高的值(指加载因子loadFactor)虽然减少了空间开销但是增加了检索时间,这反应在对hashtable的很多操作中,比如get、put方法。 初始容量的控制也是在空间消耗和rehash操作耗时(该操作耗时较大)二者之间的权衡。 如果初始容量大于哈希表的当前最大的条目数除以加载因子,则不会发生rehash。但是,将初始容量设置过高会浪费空间。 如果有大量的数据需要放进hashtable,则选择设置较大的初始容量比它自动rehash更优。 在Java平台v1.2中,这个类被重新安装以实现Map接口,使它成为Java集合框架的成员。与新的集合实现不同,Hashtable是同步的。如果不需要线程安全的实现,建议使用HashMap代替Hashtable。如果想要一个线程安全的高并发实现,那么建议使用java.util.concurrent.ConcurrentHashMap取代了Hashtab 阅读全文

posted @ 2018-06-20 15:25 东陆之滇 阅读(210) 评论(0) 推荐(0) 编辑

2018年6月19日 #

扑克洗牌程序

摘要: 首先存在有序分扑克牌52张,我们用一个数组保存,洗牌时: - 遍历扑克数组 - 生成随机数,得到需要交换的目标数组索引下标(注意,使用Random.nextInt(N),N需要小于数组的长度) - 当前遍历到的元素与随机到的元素交换 阅读全文

posted @ 2018-06-19 21:31 东陆之滇 阅读(259) 评论(0) 推荐(0) 编辑