- JAVA学习笔记之23种设计模式学习
victorfreedom
Java技术设计模式androidjava常用设计模式
博主最近买了《设计模式》这本书来学习,无奈这本书是以C++语言为基础进行说明,整个学习流程下来效率不是很高,虽然有的设计模式通俗易懂,但感觉还是没有充分的掌握了所有的设计模式。于是博主百度了一番,发现有大神写过了这方面的问题,于是博主迅速拿来学习。一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器
- 设计模式学习--模板方法模式(Tamplate Pattern)
2401_86637658
面试辅导大厂内推设计模式学习模板方法模式
封装变化多用组合,少用继承针对接口编程,不针对实现编程为交互对象之间的松耦合设计而努力类应该对扩展开放,对修改关闭依赖抽象,不要依赖具体类只和朋友交谈别找我,我会找你(这是新的原则:由超类主控一切,当它们需要的时候,自然会去调用子类,这就跟好莱坞一样)OO模式模板模式——在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算结构的情况下,重新定义算法中的某些步骤。
- 设计模式学习笔记(6)工厂方法
摆码王子
本文实例代码:https://github.com/JamesZBL/java_design_patterns工厂方法(FactoryMethod)模式,又叫做虚拟构造(VirtualConstructor)模式或多态工厂(PolymorphicFactory)模式。工厂方法的特点是定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。实例这次以顾客点餐为例,
- 初识Java设计模式学习
「已注销」
Java设计模式eclipsejava设计模式springstruts
Title:Java设计模式学习Author:ychhh_文章目录@[toc]设计模式概述设计模式目的七大原则单一职责原则接口隔离原则依赖倒转原则(面向接口编程)里氏替换原则开闭原则迪米特法则合成复用原则UML类图设计模式基本概念单例模式饿汉式懒汉式双重检查静态内部类枚举类单例模式注意工厂模式简单工厂模式工厂方法模式抽象工厂模式原型模式建造者模式适配器模式对象适配器接口适配器(缺省适配器模式)桥接
- 设计模式学习-责任链模式
一个不会码代码的小恐龙
unity设计模式学习责任链模式
概念使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止.代码编写usingUnityEngine;usingSystem.Collections;publicclassChainOfResponsbilityStucture:MonoBehaviour{voidStart{Handlerh1=newConcr
- 设计模式学习-简单的命令模式例子
一个不会码代码的小恐龙
设计模式学习命令模式unity
上一章节介绍过了命令模式,这一篇文章就简单的做一个小案例来巩固学习搭建场景简单的搭建一个场景就行,随便准备一个物体放在场景中位置Reset一下即可。代码编写定义接口(或者抽象类)ICommand用来规范Command的行为。注意在命令模式中命令是桥接作用负责接受者和执行者之间的联调。所以一般会有很多的命令,每个命令都会有ICommand规范的方法同时也可以添加其他的方法。publicinterfa
- 设计模式学习笔记 - 设计原则与思想总结:2.运用学过的设计原则和思想完善之前性能计数器项目
陈建111
设计模式-实战设计原则思想实战
概述在《设计原则-10.实战:针对非业务的通用框架开发,如何做需求分析和设计及如何实现一个支持各种统计规则的性能计数器》中,我们讲解了如何对一个性能计数器框架进行分析、设计与实现,并且实践了一些设计原则和设计思想。当时提到,小步快跑、逐步迭代式一种非常实用的开发模式。所以,针对这个框架的开发,我们分多个版本来逐步完善。《设计原则-10.实战:针对非业务的通用框架开发,如何做需求分析和设计及如何实现
- 设计模式学习笔记 - 规范与重构 - 7.实践:通过一段ID生成器代码,学习如何发现代码质量问题
陈建111
设计模式-实战代码质量重构
前言前面讲了重构相关的知识点。用一句话总结:重构就是发现代码质量问题,并且对其进行优化的过程。今天借助一个ID生成器代码,给你展示以下重构的大致过程。背景介绍在软件开发中,ID常用来表示一些业务信息的唯一标识,比如订单的单号、数据库中的唯一主键。假设你正参与一个后端业务系统的开发,为了方便在请求出错时排查问题,在写代码的时候会在关键路径上打印日志。某个请求出错后,希望能搜索出这个请求对应的所有日志
- 设计模式学习笔记 - 规范与重构 - 8.实践:程序出错返回啥?NULL、异常、错误吗、空对象?重构ID生成器,处理各函数的异常
陈建111
设计模式-实战程序出错时返回内容
概述我们可以把函数的运行结果分为两类。一类是预期结果,也就是正常情况下输出的结果。一类是非预期的结果,也就是函数在异常(或出错)情况下输出的结果。在正常情况下,函数返回数据的类型非常明确,但是在异常情况下,函数的返回数据类型确非常灵活,有多种选择,比如异常(Exception)、错误码、NULL值、特殊值(比如-1)、空对象(比如空字符串、空集合)等。在异常情况下,函数到底该返回什么样的数据类型,
- 设计模式学习笔记
谷谷谷雨
语言设计模式笔记
创建型把对象的创建和使用相分离1工厂方法定义工厂接口和产品接口,但如何创建实际工厂和实际产品被推迟到子类实现,从而使调用方只和抽象工厂与抽象产品打交道调用方尽量持有接口或抽象类,避免持有具体类型的子类,以便工厂方法能随时切换不同的子类返回,却不影响调用方代码。好处:屏蔽创建产品的细节,可能创建新产品,也可能返回缓存//抽象工厂-接口,返回抽象产品NumberpublicinterfaceNumbe
- 设计模式学习笔记 - 学前简述
陈建111
设计模式-实战设计模式
1.为什么学习设计模式?学习设计模式的原因:应对面试中的设计模式相关问题;写出高质量代码,告别让人吐槽的烂代码;提高复杂代码的设计和开发能力让读源码、学习框架爱事半功倍;为职场发展铺垫。设计模式作为一门与编码、开发有着直接关系的基础知识,是你现在就要开始学习的。早点学习,以后的项目就都可以拿来锻炼,每写一行代码都是对内功的利用和加深,是可以收益整个事业生涯的一个技能。2.如何写出高质量代码,如何评
- 设计模式学习专栏四--------装饰者模式
你的头发真的好长
设计模式学习专栏四--------装饰者模式场景设计星巴兹咖啡,主体(DarkRoast等)+配料(摩卡,奶泡等),顾客在购买咖啡时,也可以要求在其中加入各种调料,如蒸奶(SteamedMilk),豆浆(Soy),摩卡(Mocha)或者奶泡.星巴兹会根据所加入的调料收取不同的费用.所以订单系统必须考虑到这些调料部分刚开始的实现方式思路:为每一种主体+配料的搭配生成一个类,然后计算价格主体咖啡ima
- 设计模式学习笔记05(小滴课堂)
抹茶味的西瓜汁
设计模式设计模式学习笔记
讲解Adapeter设计模式和应用场景接口的适配器案例实战代码:定义一个接口:编写适配器:写我们的商品类:会员类:这样我们不同的需求可以根据需要去实现不同的接口方法,而不用实现全部接口方法。适配器案例实战,生产环境得的接口需要兼容新的业务适配器案例实战,类的适配器代码:旧类:写一个接口包含旧类方法和新类方法:写个适配器对两个方法做整合:我们可以随时添加接口中的方法。我们测试一下:我们就可以不用修改
- 设计模式学习15(Java实现)——代理模式
康小庄
写在前面记录学习设计模式的笔记提高对设计模式的灵活运用学习地址https://www.bilibili.com/video/BV1G4411c7N4https://www.bilibili.com/video/BV1Np4y1z7BU参考文章http://c.biancheng.net/view/1317.html项目源码https://gitee.com/zhuang-kang/DesignPa
- 设计模式学习笔记03(小滴课堂)
抹茶味的西瓜汁
设计模式设计模式学习笔记
介绍常见的工厂设计模式和应用电商支付里面的案例-简单工厂模式的实践指南和应用1.先创建一个抽象类:创建实现类:3.创建工厂类测试:总结:如果我们只是简单的对象的创建,是不需要使用工厂类设计模式的,直接new一个对象,然后调用其的方法即可。但是如果涉及非常复杂的对象,里面涉及非常多的方法,我们就得用这种设计模式了。工厂方法模式的实践指南和应用《上》工厂方法模式的实践指南和应用《下》我们之前创建了抽象
- 设计模式学习笔记04(小滴课堂)
抹茶味的西瓜汁
设计模式设计模式学习笔记
1.创建基础类:调用它进行类对象的复制:但是如果属性都是基本数据类型确实像这样很简单,但是如果属性中也包含复杂的数据类型呢?再去测试一下:我们发现person1和person2的list属性值的内容是同步的,这显然是不对的。所以下面就让我们来解决这个问题。实现序列化接口。测试:建造者模式具体实现:1.先创建产品:2.创建抽象建造者3.创建具体实现类1-低配版电脑4.创建具体实现类2-高配版电脑创建
- 设计模式学习(四):Strategy策略模式
玉面大蛟龙
架构策略模式设计模式javajvm
一、什么是Strategy模式Strategy的意思是“策略”,指的是与敌军对垒时行军作战的方法。在编程中,我们可以将它理解为“算法”。无论什么程序,其目的都是解决问题。而为了解决问题,我们又需要编写特定的算法。使用Strategy模式可以整体地替换算法的实现部分,能让我们轻松地以不同的算法去解决同一个问题,这种模式就是Strategy模式。用一句话概况:可以整体地替换算法。二、Strategy模
- 设计模式学习笔记02(小滴课堂)
抹茶味的西瓜汁
设计模式设计模式学习笔记
江湖传言里的设计模式-单例设计模式单例设计模式中的懒汉方式实战这种方式是线程不安全的,多个线程同时调用会创建多个对象。所以我们就要给它加锁:我们去测试一下:因为构造函数已经私有化,所以不能直接用new的方式去创建对象。现在我们使用第二种方式,通过加锁:这第三种方式,如果同时两个线程都过来了,但是都释放锁,也无法保证绝对单例,那如何保证多线程下的单例呢?单例模式中的懒汉实现+双重检查锁定+内存模型改
- [GN] 23种设计模式 —— 常见设计模式学习总结
GGood_Name
设计模式设计模式学习
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言创建型模式——创建的艺术结构型模式——组合的艺术适配器模式--不兼容结构的协调对象适配器类适配器模式优缺点适用场景组合模式--树形结构的处理例子优缺点适用场景外观模式--提供统一入口例子优缺点适用场景代理模式--对象的间接访问常用的几种代理模式优缺点适用场景行为型模型——交互的艺术命令模式--请求发送者与接受者解耦例子优化
- Python设计模式学习笔记
闫辉_13510215218
PythonPython设计模式
作者:闫辉Email:
[email protected]创建型设计模式抽象工厂(AbstractFactory)"""*这种模式是什么?在Java和其他语言中,抽象工厂模式用于提供接口,创建相关/依赖的对象,而无需指定对象的实际类。其思想是,将依赖于业务逻辑、平台选择等因素的对象创建,进行抽象。在Python中,我们使用的接口是一个简单的callabe,它是“内置”的接口。在Python中,一般情况下
- 设计模式学习笔记_策略模式
小仙女好棒棒
定义策略模式定义了算法族,将其分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。结构策略模式UML类图在策略模式中,涉及到以下三个角色:1、环境角色(Context):持有一个抽象策略角色(Strategy)的引用2、抽象策略角色(Strategy):一个抽象角色,通常是由一个接口或者抽象类来实现,作用为为具体策略角色(ConcreteStrategy)提供所需的接口3
- uniapp微信小程序-前端设计模式学习(下)
bug总结
uni-app微信小程序前端
1、适配器模式用于将一个类的接口转换成客户期望的另一个接口。//旧系统类classOldSystem{//旧系统的方法request(){//oldsystemlogicconsole.log("OldSystemRequest");}}//适配器类classAdapter{constructor(oldSystem){//在适配器内部保存旧系统的实例this.oldSystem=oldSyste
- uniapp微信小程序-前端设计模式学习(中)
bug总结
uni-app设计模式学习前端
三、工厂模式通俗解释(理解记忆)假设我们有一个汽车工厂。我们可以让工厂根据用户的选择生产不同型号的汽车,而用户无需知道具体的汽车制造过程。工厂模式的优势在于,它隐藏了对象的创建细节,让客户端代码更简洁,同时使得系统更容易扩展。如果有新的汽车型号加入,只需要在工厂中添加相应的生产逻辑,而不需要修改客户端代码。//接口或基类classCar{constructor(model){this.model=
- 设计模式学习——简介
weixin_30511039
设计模式java
设计模式(Designpattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模
- Android源码设计模式学习笔记-适配器模式
e小e
适配器模式在我们开发中使用率极高,从代码中随处可见的Adapter可以判断出来。从最早的ListView,GridView到现在最新的RecyclerView都需要使用Adapter,并且在开发过程中遇到的优化问题,出错概率较大的地方也基本都出自Adapter,这也是一个让人又爱又恨的角色.说到底,适配器是将两个不兼容的类融合在一起,它有点像粘合剂,将不同的东西通过一种转换使得它们能够协作起来。这
- 设计模式学习笔记-设计模式简介
weixin_38166557
设计模式测试人工智能
原文:http://www.runoob.com/design-pattern/design-pattern-intro.html我这边只是参考学习下。设计模式简介设计模式(Designpattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的
- 设计模式学习笔记--工厂模式
冰路梦
编程开发设计模式工厂模式designpattern
设计模式学习笔记简介设计模式(Designpattern),是世界顶级优秀开发者长期经验的科学总结。有助于设计开发出优秀的程序应用和解决开发过程中的一些问题。使用设计模式利于代码的工程化,可靠性。每一种设计模式都是优秀工程师针对特定问题抽象模型而建立的解决方案。GOF(四人帮,全拼GangofFour)DesignPatterns-ElementsofReusableObject-Oriented
- 设计模式学习总结
qq_56876713
设计模式java开发语言
责任链模式使用方法:1.创建接口2.定义实现类,每个实现类实现接口,并拥有一个ArchiveHandle的成员,用作责任链的链接publicinterfaceArchiveHandle{ voidhandle(ArchiveVOarchiveVO);}publicclassArchivePreHandleimplementsArchiveHandle{@AutowiredprivateArch
- Android源码设计模式学习笔记-观察者模式
e小e
观察者模式主要是用于一对多模块之间通信的解耦.它的基本UML如下image.pngSubject:抽象主题,也就是被观察者角色,抽象主题角色把所有观察者对象的引用都保存到一个集合里,每个主题可以有任意数量的观察者,抽象主题提供一个接口,可以增加和删除观察者对象.ConcreteSubject:具体主题,该角色将有关状态存入具体,在具体主题的内部状态发生改变时,给所有注册过的观察者发出通知,具体主题
- 设计模式学习(二):Observer观察者模式
玉面大蛟龙
架构设计模式观察者模式java
一、什么是Observer模式在Observer模式中,当观察对象的状态发生变化时,会通知给观察者。Observer模式适用于根据对象状态进行相应处理的场景。简单一句话概况就是:观察者会发送观察对象状态变化的通知。二、Observer模式示例代码下面示例程序中,observer将观察一个会生成数值的对象,并将它生成的数值结果显示出来。不过,不同的观察者的显示方式不一样。Digitobserver会
- 戴尔笔记本win8系统改装win7系统
sophia天雪
win7戴尔改装系统win8
戴尔win8 系统改装win7 系统详述
第一步:使用U盘制作虚拟光驱:
1)下载安装UltraISO:注册码可以在网上搜索。
2)启动UltraISO,点击“文件”—》“打开”按钮,打开已经准备好的ISO镜像文
- BeanUtils.copyProperties使用笔记
bylijinnan
java
BeanUtils.copyProperties VS PropertyUtils.copyProperties
两者最大的区别是:
BeanUtils.copyProperties会进行类型转换,而PropertyUtils.copyProperties不会。
既然进行了类型转换,那BeanUtils.copyProperties的速度比不上PropertyUtils.copyProp
- MyEclipse中文乱码问题
0624chenhong
MyEclipse
一、设置新建常见文件的默认编码格式,也就是文件保存的格式。
在不对MyEclipse进行设置的时候,默认保存文件的编码,一般跟简体中文操作系统(如windows2000,windowsXP)的编码一致,即GBK。
在简体中文系统下,ANSI 编码代表 GBK编码;在日文操作系统下,ANSI 编码代表 JIS 编码。
Window-->Preferences-->General -
- 发送邮件
不懂事的小屁孩
send email
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.MultiPartEmail;
- 动画合集
换个号韩国红果果
htmlcss
动画 指一种样式变为另一种样式 keyframes应当始终定义0 100 过程
1 transition 制作鼠标滑过图片时的放大效果
css
.wrap{
width: 340px;height: 340px;
position: absolute;
top: 30%;
left: 20%;
overflow: hidden;
bor
- 网络最常见的攻击方式竟然是SQL注入
蓝儿唯美
sql注入
NTT研究表明,尽管SQL注入(SQLi)型攻击记录详尽且为人熟知,但目前网络应用程序仍然是SQLi攻击的重灾区。
信息安全和风险管理公司NTTCom Security发布的《2015全球智能威胁风险报告》表明,目前黑客攻击网络应用程序方式中最流行的,要数SQLi攻击。报告对去年发生的60亿攻击 行为进行分析,指出SQLi攻击是最常见的网络应用程序攻击方式。全球网络应用程序攻击中,SQLi攻击占
- java笔记2
a-john
java
类的封装:
1,java中,对象就是一个封装体。封装是把对象的属性和服务结合成一个独立的的单位。并尽可能隐藏对象的内部细节(尤其是私有数据)
2,目的:使对象以外的部分不能随意存取对象的内部数据(如属性),从而使软件错误能够局部化,减少差错和排错的难度。
3,简单来说,“隐藏属性、方法或实现细节的过程”称为——封装。
4,封装的特性:
4.1设置
- [Andengine]Error:can't creat bitmap form path “gfx/xxx.xxx”
aijuans
学习Android遇到的错误
最开始遇到这个错误是很早以前了,以前也没注意,只当是一个不理解的bug,因为所有的texture,textureregion都没有问题,但是就是提示错误。
昨天和美工要图片,本来是要背景透明的png格式,可是她却给了我一个jpg的。说明了之后她说没法改,因为没有png这个保存选项。
我就看了一下,和她要了psd的文件,还好我有一点
- 自己写的一个繁体到简体的转换程序
asialee
java转换繁体filter简体
今天调研一个任务,基于java的filter实现繁体到简体的转换,于是写了一个demo,给各位博友奉上,欢迎批评指正。
实现的思路是重载request的调取参数的几个方法,然后做下转换。
- android意图和意图监听器技术
百合不是茶
android显示意图隐式意图意图监听器
Intent是在activity之间传递数据;Intent的传递分为显示传递和隐式传递
显式意图:调用Intent.setComponent() 或 Intent.setClassName() 或 Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。
隐式意图;不指明调用的名称,根据设
- spring3中新增的@value注解
bijian1013
javaspring@Value
在spring 3.0中,可以通过使用@value,对一些如xxx.properties文件中的文件,进行键值对的注入,例子如下:
1.首先在applicationContext.xml中加入:
<beans xmlns="http://www.springframework.
- Jboss启用CXF日志
sunjing
logjbossCXF
1. 在standalone.xml配置文件中添加system-properties:
<system-properties> <property name="org.apache.cxf.logging.enabled" value=&
- 【Hadoop三】Centos7_x86_64部署Hadoop集群之编译Hadoop源代码
bit1129
centos
编译必需的软件
Firebugs3.0.0
Maven3.2.3
Ant
JDK1.7.0_67
protobuf-2.5.0
Hadoop 2.5.2源码包
Firebugs3.0.0
http://sourceforge.jp/projects/sfnet_findbug
- struts2验证框架的使用和扩展
白糖_
框架xmlbeanstruts正则表达式
struts2能够对前台提交的表单数据进行输入有效性校验,通常有两种方式:
1、在Action类中通过validatexx方法验证,这种方式很简单,在此不再赘述;
2、通过编写xx-validation.xml文件执行表单验证,当用户提交表单请求后,struts会优先执行xml文件,如果校验不通过是不会让请求访问指定action的。
本文介绍一下struts2通过xml文件进行校验的方法并说
- 记录-感悟
braveCS
感悟
再翻翻以前写的感悟,有时会发现自己很幼稚,也会让自己找回初心。
2015-1-11 1. 能在工作之余学习感兴趣的东西已经很幸福了;
2. 要改变自己,不能这样一直在原来区域,要突破安全区舒适区,才能提高自己,往好的方面发展;
3. 多反省多思考;要会用工具,而不是变成工具的奴隶;
4. 一天内集中一个定长时间段看最新资讯和偏流式博
- 编程之美-数组中最长递增子序列
bylijinnan
编程之美
import java.util.Arrays;
import java.util.Random;
public class LongestAccendingSubSequence {
/**
* 编程之美 数组中最长递增子序列
* 书上的解法容易理解
* 另一方法书上没有提到的是,可以将数组排序(由小到大)得到新的数组,
* 然后求排序后的数组与原数
- 读书笔记5
chengxuyuancsdn
重复提交struts2的token验证
1、重复提交
2、struts2的token验证
3、用response返回xml时的注意
1、重复提交
(1)应用场景
(1-1)点击提交按钮两次。
(1-2)使用浏览器后退按钮重复之前的操作,导致重复提交表单。
(1-3)刷新页面
(1-4)使用浏览器历史记录重复提交表单。
(1-5)浏览器重复的 HTTP 请求。
(2)解决方法
(2-1)禁掉提交按钮
(2-2)
- [时空与探索]全球联合进行第二次费城实验的可能性
comsci
二次世界大战前后,由爱因斯坦参加的一次在海军舰艇上进行的物理学实验 -费城实验
至今给我们大家留下很多迷团.....
关于费城实验的详细过程,大家可以在网络上搜索一下,我这里就不详细描述了
在这里,我的意思是,现在
- easy connect 之 ORA-12154: TNS: 无法解析指定的连接标识符
daizj
oracleORA-12154
用easy connect连接出现“tns无法解析指定的连接标示符”的错误,如下:
C:\Users\Administrator>sqlplus username/
[email protected]:1521/orcl
SQL*Plus: Release 10.2.0.1.0 – Production on 星期一 5月 21 18:16:20 2012
Copyright (c) 198
- 简单排序:归并排序
dieslrae
归并排序
public void mergeSort(int[] array){
int temp = array.length/2;
if(temp == 0){
return;
}
int[] a = new int[temp];
int
- C语言中字符串的\0和空格
dcj3sjt126com
c
\0 为字符串结束符,比如说:
abcd (空格)cdefg;
存入数组时,空格作为一个字符占有一个字节的空间,我们
- 解决Composer国内速度慢的办法
dcj3sjt126com
Composer
用法:
有两种方式启用本镜像服务:
1 将以下配置信息添加到 Composer 的配置文件 config.json 中(系统全局配置)。见“例1”
2 将以下配置信息添加到你的项目的 composer.json 文件中(针对单个项目配置)。见“例2”
为了避免安装包的时候都要执行两次查询,切记要添加禁用 packagist 的设置,如下 1 2 3 4 5
- 高效可伸缩的结果缓存
shuizhaosi888
高效可伸缩的结果缓存
/**
* 要执行的算法,返回结果v
*/
public interface Computable<A, V> {
public V comput(final A arg);
}
/**
* 用于缓存数据
*/
public class Memoizer<A, V> implements Computable<A,
- 三点定位的算法
haoningabc
c算法
三点定位,
已知a,b,c三个顶点的x,y坐标
和三个点都z坐标的距离,la,lb,lc
求z点的坐标
原理就是围绕a,b,c 三个点画圆,三个圆焦点的部分就是所求
但是,由于三个点的距离可能不准,不一定会有结果,
所以是三个圆环的焦点,环的宽度开始为0,没有取到则加1
运行
gcc -lm test.c
test.c代码如下
#include "stdi
- epoll使用详解
jimmee
clinux服务端编程epoll
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linu
- Hibernate对Enum的映射的基本使用方法
linzx0212
enumHibernate
枚举
/**
* 性别枚举
*/
public enum Gender {
MALE(0), FEMALE(1), OTHER(2);
private Gender(int i) {
this.i = i;
}
private int i;
public int getI
- 第10章 高级事件(下)
onestopweb
事件
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- 孙子兵法
roadrunners
孙子兵法
始计第一
孙子曰:
兵者,国之大事,死生之地,存亡之道,不可不察也。
故经之以五事,校之以计,而索其情:一曰道,二曰天,三曰地,四曰将,五
曰法。道者,令民于上同意,可与之死,可与之生,而不危也;天者,阴阳、寒暑
、时制也;地者,远近、险易、广狭、死生也;将者,智、信、仁、勇、严也;法
者,曲制、官道、主用也。凡此五者,将莫不闻,知之者胜,不知之者不胜。故校
之以计,而索其情,曰
- MySQL双向复制
tomcat_oracle
mysql
本文包括:
主机配置
从机配置
建立主-从复制
建立双向复制
背景
按照以下简单的步骤:
参考一下:
在机器A配置主机(192.168.1.30)
在机器B配置从机(192.168.1.29)
我们可以使用下面的步骤来实现这一点
步骤1:机器A设置主机
在主机中打开配置文件 ,
- zoj 3822 Domination(dp)
阿尔萨斯
Mina
题目链接:zoj 3822 Domination
题目大意:给定一个N∗M的棋盘,每次任选一个位置放置一枚棋子,直到每行每列上都至少有一枚棋子,问放置棋子个数的期望。
解题思路:大白书上概率那一张有一道类似的题目,但是因为时间比较久了,还是稍微想了一下。dp[i][j][k]表示i行j列上均有至少一枚棋子,并且消耗k步的概率(k≤i∗j),因为放置在i+1~n上等价与放在i+1行上,同理