- 博客(18)
- 资源 (45)
- 问答 (2)
- 收藏
- 关注
原创 设计模式学习笔记
一,设计模式简介设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠
2017-07-23 20:57:24 860
原创 Redis学习笔记
一,Redis学习笔记系列博客Redis持久化Redis复制和哨兵Redis事件二,Redis简介 Redis,REmote DIctionary Server(远程字典服务) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Ke
2017-07-10 23:25:41 769
原创 MongoDB学习笔记
一,MongoDB学习笔记系列博客MongoDB复制集入门MongoDB复制集深入(设计复制集,日志,写关注,读关注,标签)MongoDB分片入门MongoDB索引入门MongoDB特殊的索引和集合MongoDB管理与监控Robomongo bug:执行aggregate最多只返回50个文档个人项目 JMongoOrm MongoDB对象关系映射二,什么是MongoD...
2017-07-02 23:47:36 1253
原创 依赖注入(C#)
设计模式学习笔记一,依赖注入(Dependency Injection,简称DI)设计模式中,尤其是结构型模式很多时候解决的就是对象间的依赖关系,变依赖关系具体为依赖具象。平时开发中如果发现客户程序依赖某个(或某类)对象,我们常常会对它们进行一次抽象,形成抽象的抽象类、接口,这样客户程序就可以摆脱所依赖的具体类型。二,实现(C#)示例情景假设,现在程序需要一个获取不同时间格式的的当前时间。 我们定
2017-07-30 00:04:31 18090
原创 观察者模式
设计模式学习笔记一,观察者模式当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。别名发布-订阅(Publish/Subscribe)模式模型-视图(Model/View)模式源-监听器(Source/Listener)模式从属者(Dependents)模式二,介绍意图:定义对象间的一
2017-07-28 00:30:45 529
原创 原型模式
设计模式学习笔记一,原型模式原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时
2017-07-28 00:07:20 552
原创 建造者模式
设计模式学习笔记一,建造者模式建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。二,介绍意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有
2017-07-27 23:46:49 498
原创 抽象工厂模式
设计模式学习笔记一,抽象工厂模式抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。二,介绍意图:提供一个创建一系列相关或相互依赖对象的接口
2017-07-27 23:37:14 489
原创 工厂模式(简单工厂模式、工厂方法模式)
设计模式学习笔记一,工厂模式在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。二,介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用:我们明确地计划不同条件下创建不同实例时。如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。关键代码:创建过程
2017-07-27 00:00:48 749
原创 单例模式
设计模式学习笔记一,单例模式单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。二,介绍意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决:一个全局使用的类频繁地创建与销毁
2017-07-23 23:09:19 375
原创 Redis复制和哨兵
Redis学习笔记系列博客一,为什么要集群如果是小项目,一台Redis服务器就已经非常足够了,然而实际中很多大项目需要若干台Redis服务器的支持:从结构上,单个Redis服务器会发生单点故障,同时一台服务器需要承受所有的请求负载。这就需要为数据生成多个副本并分配在不同的服务器上。从容量上,单个Redis服务器的内存非常容易成为存储瓶颈,所以需要进行数据分片。同时拥有
2017-07-15 13:30:19 613
原创 Redis持久化
Redis学习笔记一,持久化Redis的强劲性能很大程度是由于其将所有数据都存储在了内存中,然而当Redis重启后,所有存储在内存中的数据就会丢失。在一些情况下,我们希望Redis在重启后能保证数据不丢失,例如:将Redis作为数据库使用时。将Redis作为缓存服务器,但缓存被穿透后会对性能造成较大影响,所有缓存同时失效会导致缓存雪崩,从而是服务器无法响应。这时我们希望Redis能将数据从内存
2017-07-13 23:57:41 696
原创 Robomongo bug:执行aggregate最多只返回50个文档
最近在使用MongoDB可视化工具Robomongo时发现了一个bug,在客户端执行管道查询aggregate时,最多只返回来50个文档。//插入100条数据for(var i=0;i<100;i++){ db.test.insert({name:'a',age:1})}//管道查询db.getCollection('test').aggregate([{$match:{name:
2017-07-09 14:43:12 4464 4
原创 MongoDB管理与监控
MongoDB学习笔记系列博客一,MongoDB的启动Windows平台安装MongoDB Linux平台安装MongoDB MongoDB连接二,MongoDB的停止> use adminswitched to db admin> db.shutdownServer()三,数据的导入与导出MongoDB自带了两个导入、导出的工具:mongoimport和mongoexport。可以通过mo
2017-07-09 14:27:51 5642 1
原创 MongoDB特殊的索引和集合
MongoDB学习笔记一,固定集合MongoDB中的“普通”集合是动态创建的,而且可以自动增长以容纳更多的数据。MongoDB中还有另一种不同类型的集合,叫做固定集合,固定集合需要事先创建好,而且它的大小是固定的。当固定集合被占满时,如果再插入新文档,固定集合会自动将最老的文档从集合中删除。不同于普通集合,固定集合必须在使用之前显示创建。在shell中通过createCollection创建。db.
2017-07-08 23:45:26 881
原创 MongoDB索引入门
MongoDB学习笔记系列博客一,什么是索引数据库保存记录的机制是建立在文件系统上的,索引也是以文件的形式存储在磁盘上,数据库中用到的最多的索引结构就是B树。索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。 这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟
2017-07-05 22:38:07 696
原创 MongoDB分片入门
MongoDB学习笔记系列博客一,概述MongoDB复制集解决了数据库的备份与自动故障转移,但是围绕数据库的业务中当前还有两个方面的问题变得越来越重要,一是海量数据如何存储,二是如何高效地读写海量数据。尽管复制集也可以实现读写分离,如在primary节点上写,在secondary节点上读,但在这种方式下客户端读出来的数据有可能不是最新的,因为primary节点到secondary节点间的数据同步会带
2017-07-02 22:08:28 1825
java编程的逻辑源代码
2018-11-29
ZooKeeper-分布式过程协同技术详解 pdf
2018-10-21
从Paxos到Zookeeper 分布式一致性原理与实践 pdf
2018-10-21
网易一千零一夜.pdf
2018-10-21
GChisto(专业分析gc日志)
2018-10-13
JAVA虚拟机精讲 pdf
2018-10-12
深入理解JVM & G1 GC pdf
2018-10-11
Java性能权威指南 pdf
2018-10-10
实战Java虚拟机——JVM故障诊断与性能优化 pdf
2018-10-10
深入理解Java虚拟机:JVM高级特性与最佳实践(第2版) pdf
2018-10-10
开源容器云OpenShift:构建基于Kubernetes的企业应用云平台 pdf
2018-10-08
Docker:容器与容器云(第2版) pdf
2018-10-08
领域驱动设计 软件核心复杂性应对之道 pdf
2018-09-12
深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)pdf
2018-09-12
xftp6家庭学生版exe
2018-09-12
xshell 6家庭学生版exe
2018-09-12
GOPS2016 · 北京站 演讲 PPT
2018-02-09
axure安装包(汉化)
2018-02-09
chrome插件Yet Another REST Client
2017-04-07
想通过ZipInStream类将压缩文件解压到指定的文件夹中
2014-08-09
java的swing程序设计,为窗体添加多个复选框组件
2014-08-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人