- 博客(22)
- 资源 (26)
- 收藏
- 关注
原创 设计模式(7)-模板方法模式
文章目录一、模板方法模式的定义二、模板方法模式的使用更多关于设计模式的文章请点击:设计模式之禅(0)-目录页模板方法模式是23种设计模式中的一种,与其说它是一种设计模式,我更加偏向于认为它是一种设计的思想。一、模板方法模式的定义模板方法模式(Template Pattern),一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式...
2018-11-30 20:54:31 242
原创 设计模式(6)-单例模式
文章目录一、单件模式的实现二、在并发下单件模式的改进2.1、使用闭锁测试单件模式的正确性2.2、使用同步锁改进单件模式2.3、使用二重检查加锁来改进单件模式单件模式是面向对象设计模式中常用的一种设计模式,它主要的作用是使得某个对象在全局程序中只有唯一的一个实例,并且在全局中只有一个创建实例的访问点。这种模式通常采用在线程池、连接池、单一记录器等的使用和实现中。一、单件模式的实现单件模...
2018-11-29 11:36:37 294
原创 设计模式(5)-适配器模式
文章目录一、适配器模式是什么二、把鸭子“适配”为狗三、把枚举接口适配为迭代器接口更多关于设计模式的文章请点击:设计模式之禅(0)-目录页适配器模式是面向对象设计模式中常用的一种模式,它能将一个类的接口转换成用户希望的另一个接口,让原本不兼容的程序接口能够相互协作。一、适配器模式是什么**适配器模式(Adapter Pattern)**的定义是: 将一个类的接口适配成用户所期待的。...
2018-11-28 23:33:32 314
原创 设计模式(4)-工厂模式
文章目录一、简单工厂模式1.1、单一new方式1.2、简单工厂模式二、抽象工厂及工厂方法2.1、将简单工厂改造成抽象工厂2.2、为抽象工厂中添加工厂方法三、工厂模式总结更多关于设计模式的文章请点击:设计模式之禅(0)-目录页工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一、简单工厂模式...
2018-11-26 21:50:49 359
原创 设计模式(3)-装饰者模式
文章目录一、装饰者模式的特点二、装饰者模式的使用情景三、装饰者模式的一般关系图四、装饰者模式的代码实现五、装饰者模式使用的设计原则六、I/O流-典型的装饰者模式七、装饰者模式的弊端更多关于设计模式的文章请点击:设计模式之禅(0)-目录页装饰者模式是23种设计模式之中的一种常用的设计模式,英文叫Decorator Pattern。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一...
2018-11-25 11:42:35 609
原创 设计模式(2)-观察者模式
文章目录一、什么是观察者模式二、通过设计气象站模块来说明观察者模式2.1、观察者模式设计的一般类图2.2、观察者模式带来的松耦合2.3、气象站模块需求2.4、使用观察者模式实现气象站模块观察者模式是Java标准库的开发中常用的一种设计模式,它完美的将观察者和被观察的对象分离开。当被观察者(主题)改变时,所有观察者(订阅者)都将受到改变的情况,而无论观察者处于什么样的状态。一、什么是观察...
2018-11-22 13:28:05 401
原创 设计模式(1)-策略模式
文章目录一、进一步的改进二、用策略模式组织类关系实例更多关于设计模式的文章请点击:设计模式之禅(0)-目录页一、进一步的改进上面的动物园例子似乎已经足够地完善了,但是仔细想想并不是这样:当另一个SmallDog被创建时,它实现了BarkBehavior接口,但是它需要在自身的代码中去重写这个bark()方法,这个bark()方法的具体实现暴露在了SmallDog类中,当我们需要修改Sma...
2018-11-18 14:47:53 694
原创 Golang(8)-goquery库的使用
文章目录一、goquery库的安装二、goquery的使用三、爬取CSDN首页文章3.1、需求分析3.2、分析当前页面的html文档四、爬虫完整程序goquery是golang的一个爬虫常用第三方库,它主要的作用是处理html文档,将其我们需要的内容进行筛选处理。goquery是golang领域的jquery,它的使用和jquery的选择器有十分相似,如果你学过jquery,那么将十分容易...
2018-11-16 11:44:52 3179
原创 Golang(7)-net/http包的使用
文章目录一、net/http包1.1、Get请求1.2、Do方法1.3、Post请求1.4、PostForm方法更多关于Golang核心编程知识的文章请看:Golang核心编程(0)-目录页golang可以快速方便地实现简单的爬虫,本次我将使用net/http包、goquery库,具体的使用大家可以查询文档说明,本文只做一个简单的介绍。最后以一个爬取CSDN的推荐文章列表的爬虫来演示go...
2018-11-15 23:08:06 2608
原创 Golang(6)-协程和通道
文章目录一、协程1.1、goroutine简单使用二、并发通信2.1、传统并发通信方式2.2、Go的并发通信方式三、channel3.1、基本语法3.2、select3.3、缓冲机制3.4、超时机制3.5、关闭channel四、同步锁和读写锁更多关于Golang核心编程知识的文章请看:Golang核心编程(0)-目录页优雅的并发编程范式,完善的并发支持,出色的并发性能是Go语言区别于其他语...
2018-11-13 18:00:07 1596 1
原创 Golang(5)-接口
文章目录一、其他语言的侵入式接口二、 Golang的非侵入式接口三、 接口判断四、类型查询五、接口组合六、Any 类型更多关于Golang核心编程知识的文章请看:Golang核心编程(0)-目录页一、其他语言的侵入式接口Go语言的接口并不是其他语言(C++、Java、C#等)中所提供的接口概念。在Go语言出现之前,接口主要作为不同组件之间的契约存在。对契约的实现是强制的,你必须声明你的...
2018-11-11 21:02:31 797
原创 Golang(2)-类型系统
文章目录一、什么是类型系统1.1、Go语言的类型系统1.2、Java语言的类型系统二、为类型添加方法2.1、为基本类型添加方法2.2、传递指针参数和值参数的区别三、结构体3.1、结构体的定义3.2、结构体的初始化3.3、可见性更多关于Golang核心编程知识的文章请看:Golang核心编程(0)-目录页对于面向对象编程的支持Go 语言设计得非常简洁而优雅。简洁之处在于,Go语言并没有沿...
2018-11-11 16:45:59 757
原创 Golang(5)-函数和错误处理
可能很多习惯用C或Java的朋友发现,Add方法是以大写开头的,这并不符合驼峰式方法命名的规范,但在Go语言中,**以名字以大写开头的函数表示可被包之外的代码去调用,而以小写开头的函数则表明只能被本包调用,相当于Java中的private关键字的作用。**错误处理是学习任何编程语言都需要考虑的一个重要话题。在早期的语言中,错误处理不是语言规范的一部分,通常只作为一种编程范式存在,比如C语言中的 errno 。但自C++语言以来,语言层面上会增加错误处理的支持,比如异常(exception)的概念和 try-
2018-11-10 23:20:31 880
原创 Golang(4)-数据类型
文章目录一、布尔类型二、整型三、浮点型四、字符串4.1、字符串操作4.2、字符串遍历五、数组5.1、元素访问5.2、值类型六、数组切片6.1、创建数组切片6.2、元素遍历6.3、动态增减元素6.4、追加元素七、map7.1、map声明7.2、创建7.3、元素赋值7.4、元素删除7.5、元素查找更多关于Golang核心编程知识的文章请看:Golang核心编程(0)-目录页Go语言内置以下这...
2018-11-10 12:02:43 770
原创 Golang(3)-变量与常量的定义
文章目录一、变量1.1、变量声明1.2、变量初始化1.3、变量赋值1.4、匿名变量二、常量2.1、字面常量2.2、常量定义2.3、预定义常量更多关于Golang核心编程知识的文章请看:Golang核心编程(0)-目录页变量是几乎所有编程语言中最基本的组成元素。从根本上说,变量相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块...
2018-11-10 11:24:19 1591
原创 学习记录
编号 书名 学习内容 学习时间 记录的博客 1 《数据结构与算法Java版》 1、什么时间复杂度 2、Big O表示法 3、数组的其他实现 4、栈的实现 5、队列的实现 6、单链表和双向链表、双端链表 7、什么是二叉树 8、红黑树 9、2-3-4树 10、二叉搜索树 2018.10.1-2018.10.20 https://blog.csdn.net...
2018-11-09 20:24:18 375
原创 Golang(1)-简介及特性
文章目录一、Golang简介1.1、什么是Golang1.2、使用Golang完成的著名项目1.3、Golang的特性二、Golang的特性概述2.1、自动垃圾回收2.2、丰富的内置类型2.3、函数多返回值2.4、错误处理2.5、匿名函数和闭包2.6、类型和接口2.7、并发编程2.8、反射2.9、语言交互性2.10、丰富开源库支持Go语言是谷歌2009发布的第二款开源编程语言。Go语言专门针...
2018-11-09 13:32:50 3988
原创 Java并发编程(11)-使用ReentrantLock与Condition实现生产者-消费者队列
Condition在Java并发编程中是一个十分常用的接口,被称为条件变量,常与显式锁和可重入锁一起使用,它可以在某些条件下使线程进行休眠或者唤醒,本文将以实现生产者-消费者模式的队列作为demo让大家对条件变量 有初步的了解。
2018-11-08 20:40:39 741
原创 Java并发编程(10)-显式锁和读写锁
在Java5.0之前,用于调节共享对象访问的机制只有synchronized和volatile。Java5.0之后提供了新的选择:**ReentrantLock,即显式锁**。显式锁与之前提过的synchronized的同步互斥 机制不太一样,ReentrantLock并不作为内部锁机制的替代,而是当内部锁机制有局限时可供选择的高级特性。> 本文总结自《Java并发编程实践》 第十三章 显式锁 。
2018-11-06 14:13:25 331
原创 Java并发编程(9)-CountDownLatch
文章目录一、什么是闭锁二、CountDownLatch类介绍2.1、什么是CountDownLatch2.2、构造方法2.3、主要方法三、使用闭锁完成并发测试本文将介绍什么是闭锁,在java中的闭锁实现:CountDownLatch类及其常用方法等,最后给出了一个使用闭锁模拟线程并发的demo,用以简单地测试任务是否为线程安全。一、什么是闭锁闭锁(Latch)是在并发编程中常被提及的概...
2018-11-05 17:45:32 292
原创 Java并发编程(8)-Semaphore
文章目录一、Semaphore信号量1.1、什么是信号量1.2、信号量在并发编程中的作用二、Semaphore类简单解读2.1、构造方法解读2.2、常用方法解读三、简单程序解读一、Semaphore信号量1.1、什么是信号量以一个停车场是运作为例。为了简单起见,假设停车场只有三个车位,一开始三个车位都是空的。这时如果同时来了五辆车,看门人允许其中三辆不受阻碍的进入,然后放下车拦,剩下的...
2018-11-02 15:02:05 612 1
Java面试题库
2018-11-10
springboot2.0快速整合配置大全
2018-11-10
《第一本Docker书》高清带目录pdf版
2018-10-13
分布式系统采用技术及案例分析
2018-10-09
sqldeveloper
2018-09-07
java开发的bos物流项目(ssh框架)
2018-08-06
html_css_javascript语法手册
2018-05-16
用原生Servlet+Jsp写的商城Demo 解压密码:pbrshop
2018-05-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人