设计模式学习之策略模式
策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。下面就以一个示意性的实现讲解策略模式实例的结构。 这个模式涉及
值得关注的开源软件推荐
看了值得关注的开源软件推荐,感觉很不错,作者接触开源软件十几年,协作开发了10多个开源项目,对开源软件的认识和实践确实让人大开眼界。 应用类:框架、企业应用、编辑器 数据类:数据科学、大数据、机器学习、汽车机器人 服务类:云计算、数据库、消息队列、服务器 系统类:操作系统、编译器、虚拟机、编程语言 作者按上面四类介绍了45个开源软件的特性和要点,包括目前工作中常用到的JVM、Nginx、Tomcat、Kafka等,估计是工作技术栈原因,里面没有讲到Spring、Spring Boot、Spri
poj1611(并查集)
The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 48053 Accepted: 23003 Description Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized as a global threat in mid-March 2003. To m
python3 基础一
一.python基本运行 1.python是动态类型,强类型的语言 2.python就是一种解释型语言,python的编译在python解释器中发生,Python的解释器完成字节编译的功能 3.pycharm中# !/user/bin/env python 表示指向 python 的路径,告诉操作系统执行这个脚本的时候,调用 /usr/bin下的python解释器 4.python代码先编译成字节码 .pyc(PyCodeObject),再根据字节码解释执行 5.python中执行一次后自动生
20155334 《网络攻防》 Exp9 Web安全基础
《网络攻防》 Exp9 Web安全基础 一、实验后回答问题 SQL注入攻击原理,如何防御: 原理: 就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 防御: 检查变量数据类型和格式只要是有固定格式的变量,在SQL语句执行前,应该严格按照固定格式去检查,确保变量是我们预想的格式,这样很大程度上可以避免SQL注入攻击。 过滤特殊符号:对于无法确定固定格式的变量,一定要进行特殊符号过滤或转义处理。 绑定变量,使用预编译语句:MySQL
在 ubuntu 6.10 上安装 oracle 10.2.0.1,并打补丁 10.2.0.5
特点: ubuntu 6.10 算是很古老的ubuntu了,其应该是基于 debian 4 的 tesing/unstable 分支。所以,毛病较多。 如何安装oracle10g? 几个技术关键点: 因为ubuntu 6.10的X还是 X11R6 (后续都是X11R7了),所以直接运行runInstaller是不行的。报locale不支持相关错误。 采用oracle的静默安装方式,其实不难,定制几个必要的参数即可。 特别注意的是:打补丁的时候,估计补丁包的runInstaller是有bug的,
LOJ 2130 软件包管理器
熟练剖分 路径到根直接向上跳 #include <iostream>
#include <cassert>
#include <string>
using namespace std;
const int MAXN=101111;
int N, M;
int P;
string com;
struct Vert{
int Fa, Son, Bro;
int Size, Dep;
int MainSon, Top;
int Dps, Dpr;
} V[MA
题解报告:hdu 2149 Public Sale(巴什博弈)
题目链接:acm.hdu.edu.cn/showproblem.php?pid=2149 Problem Description 虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没有拿到奖学金。现在等待他的,就是像FarmJohn一样的农田生涯。要种田得有田才行,Lele听说街上正在举行一场别开生面的拍卖会,拍卖的物品正好就是一块20亩的田地。于是,Lele带上他的全部积蓄,冲往拍卖会。后来发现,整个拍卖会只有Lele和他的死对头Yueyue。通过打听,Lele知道这场拍卖
存储器结构层次(三)
Generic Cache Memory Organization: 这个结构可以用一个四元组表示: (S, E, B, m) 图示: S表示set的数量,标志了s的长度。如果在address里的set index也为3,那么应该把这个缓存放在Set3 B代表cache block的大小,标志了b的长度。如果在adresss里block offset为5,那么应该将缓存放在B5。 E反应在tag上,t的值要和E吻合 m代表地址长度 所以知道了S,B,m,也就知道了address各段的划分长度
空间直线同任意形状椭球交点
空间直线同空间中三维椭球相交,其交点即为空间直线方程同椭球方程的解,对于空间直线方程,只要知道两点空间坐标即可,而欧拉角不为零的三维椭球方程则较难描述,但可以考虑对椭球进行变换,使其欧拉角为零,进而转化为标准椭球,标准椭球方程则容易描述,相应在对椭球进行变换的同时也许对空间直线进行相应的变换。由此,通过标准椭球方程同变换后的直线方程进行联立求解,即可获取交点坐标,下面简述求解过程及列出主要的计算公式。 约定本文采用右手系,空间旋转顺序为Z-Y-X。
pandas合并/连接
Pandas具有功能全面的高性能内存中连接操作,与SQL等关系数据库非常相似。 Pandas提供了一个单独的merge()函数,作为DataFrame对象之间所有标准数据库连接操作的入口 - pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True) Python 在这里,有以下几个参数可以使用 - left -
vue 之 介绍及简单使用
浏览目录 vue的介绍 vue的使用 vue的介绍 简介 vue官网说:Vue.js(读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。 关于渐进式和自底向上增量开发我们来看一下知乎的回答: vue.js的优点 1.易用 已经会了 HTML、CSS、JavaScript?即刻阅读指南开始构建应用! 2.灵活 不断繁荣的生态系统,可以在一个库和一套完整框架之间自如伸缩。 3.高效 20kB min+g
以骆驼祥子为例研究2018年数据库与索引技术的变化[图]
我们都知道,骆驼祥子是老舍的一部优秀的长篇小说,在初中阶段我们都学习过吧,那么今天, 我就以骆驼祥子为例,来分析一下2018年在建站的过程中,对于数据库和索引技术方面,百度和谷歌等搜索巨头有哪些变化,以此来帮助我们更好的优化数据库结构,少走一些弯路。 博客程序我是接触的比较早的,可能是因为我是小白,在技术方面没有什么强项,因此在建站的过程中,我一般都采用博客程序,当然了,你可以选择ZLBOG或者wordpress都可以,这两款程序系统是我比较喜欢用的,不过我不喜欢用PHP建站,因为技术方面存在
PwnAuth——一个可以揭露OAuth滥用的利器
一、简介 鱼叉式网络钓鱼攻击被视为企业最大的网络威胁之一。只需要一名员工输入自己的凭证或运行一些恶意软件,整个企业都会受到威胁。因此,公司投入大量资源来防止凭证收集和有效载荷驱动的社会工程攻击。然而,对于非传统但却同样危险的社会工程——OAuth滥用却没有给予足够重视。在OAuth滥用攻击中,受害者授权第三方应用程序访问其帐户。一旦获得授权,应用程序不需要凭证就可以访问用户的数据,并绕过可能存在的任何双因素身份验证。 今天,我发布了PwnAuth,这是一个让组织和渗透测试人员测试其检测和响应O
今日推荐
周排行