静态工厂方法,也不知道为何叫这个名字。其实也就是一个静态函数,可以替代构造函数用。大名鼎鼎的 [guava](https://github.com/google/guava) 就大量使用这种模式,这是非常有用的模式。 ...
分类:
编程语言 时间:
2018-12-22 18:36:20
阅读次数:
178
spring web mvc和struts2都属于表现层的框架,spring web mvc是spring框架的一部分(所以spring mvc与spring之间不需要整合,它们是同一家公司出的),我们可以从spring的整体结构中看出来: ...
分类:
编程语言 时间:
2018-12-22 18:36:53
阅读次数:
196
一、 朴素的串匹配算法 最简单的朴素匹配算法采用最直观可行的策略 从左到右逐个字符串匹配; 发现不匹配时,转去考虑目标里的下一个位置是否与模式串匹配; 示例: 在初始状态0:两个字符串的起始位置对齐,顺序比较,立即发现第一对字符不同。将模式串右移动一位得到位置1。顺序比较第一对字符相同,但第二对字符 ...
分类:
编程语言 时间:
2018-12-22 18:38:02
阅读次数:
183
组内技术分享的内容,目前网上相关资料很多,但读起来都不太合自己的习惯,于是自己整理并编写一篇简洁并便于(自己)理解和分享的文章。 因为之前对密码学没有专门研究,自己的体会或理解会特别标注为“__个人理解__”,请注意甄别,如有必要可以自行查证。 阅读前需要树立一种观点:大部分场景都是基于概率的大小而 ...
分类:
编程语言 时间:
2018-12-22 18:38:13
阅读次数:
261
前言 Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 ...
分类:
编程语言 时间:
2018-12-22 18:38:23
阅读次数:
357
1、考虑用静态工厂方法代替构造器 2、遇到多个构造器参数时要考虑用构造器 3、用私有构造器或者枚举类型强化Singleton属性 4、通过私有构造器强化不可实例化的能力 5、避免创建不必要的对象 6、消除过期的对象引用 7、避免使用finalizer方法 8、重写equals方法时遵守通用约定 9、 ...
分类:
编程语言 时间:
2018-12-22 18:38:31
阅读次数:
124
主要方法: 暴力访问会破坏对象的封装性,解决方法为: ...
分类:
编程语言 时间:
2018-12-22 18:39:10
阅读次数:
229
KMP算法详细理解 从昨天开始看KMP算法到今天凌晨。。。。。 把一些知识点进行总结,其实KMP还是挺简单的(HHHHHH) 博客新地址: "https://miraitowa2.top/" 1:BF(暴力匹配)算法 假设现在我们面临这样一个问题:有一个文本串S,和一个模式串P,现在要查找P在S中的 ...
分类:
编程语言 时间:
2018-12-22 18:39:36
阅读次数:
175
在《C++并发编程实战》这本书中第3章主要将的是多线程之间的数据共享同步问题。在多线程之间需要进行数据同步的主要是条件竞争。 1 std::lock_guard<std::mutex> 在上述代码中使用了std::lock_guard<>模板,使用该模板定义的mutex在栈空间分配空间,在构造函数中 ...
分类:
编程语言 时间:
2018-12-22 18:39:47
阅读次数:
146
一.概念 1.对HBase JavaAPI的概述: 01.hbase使用java语言编写,自然支持java编程 02.支持CRUD操作 03.JavaAPI包含了所有的hbase的shell,甚至比这个还要多 04.JavaAPI是访问hbase的最快的方式 2.api 01.Configurati ...
分类:
编程语言 时间:
2018-12-22 18:40:13
阅读次数:
148
SpringCloud学习中遇到的一些bug分享给大家,避免再次踩坑 ...
分类:
编程语言 时间:
2018-12-22 19:04:20
阅读次数:
485
前面文章介绍了,如何调用webdriver接口方法来打开和关闭Firefox浏览器,本文介绍如何打开IE和Chrome浏览器。web项目,需要做兼容性测试,最重要的是浏览器兼容性测试。如果只考虑windows平台,相信应该很多公司必须要测试IE、Firefox、Chrome这三大浏览器。所以webu ...
分类:
编程语言 时间:
2018-12-22 19:04:43
阅读次数:
220
冒泡排序: 升序比较相连的元素。如果第一个比第二个大就交换他们的位置 每对相邻元素都重复上一步,这样最大的元素就到了最后 持续每次对越来越少的元素重复上面步骤,直到没有任何一对需要比较 选择排序 升序首先在未排序序列中找到最小的,存放在排序序列的起始位,然后再从未排序序列中继续寻找最小的排在以排序列 ...
分类:
编程语言 时间:
2018-12-22 19:05:15
阅读次数:
220
对COMP20003中排序部分进行总结,图片来自COMP20003 有部分内容来自http://www.cnblogs.com/eniac12/p/5329396.html 演示动画:https://www.cs.usfca.edu/~galles/visualization/ComparisonS ...
分类:
编程语言 时间:
2018-12-22 19:05:24
阅读次数:
212
前面文章,我们介绍了如何采用XPath表达式去定位网页元素,在掌握了如何抓取或者如何书写精确的XPath表达式后,我们可以开始写自己的第一个真正意义上的webui 自动化测试脚本,就相当于,你在学习Python,如何在控制台打印Hello,Python! 一样。 我们的测试用例是:打开百度首页,搜索 ...
分类:
编程语言 时间:
2018-12-22 19:05:40
阅读次数:
220
前一篇文章介绍了如何通过元素的id值来定位web元素,本文介绍如何通过tag name来定位元素。个人认为,通过tag name来定位还是有很大缺陷,定位不够精确。主要是tag name有很多重复的,造成了选择tag name来定位页面元素不准确,所以使用这个方法定位web元素的机会很少。 什么是t ...
分类:
编程语言 时间:
2018-12-22 19:05:48
阅读次数:
156
步骤1:下载jdk 我选择的jdk版本文件: jdk 8u131 linux x64.tar.gz 步骤2:创建单独的目录 sudo mkdir /usr/local/java 步骤3:将下载的文件复制到我们创建的文件夹下 sudo cp /home/lsk/Downloads/jdk 8u131 ...
分类:
编程语言 时间:
2018-12-22 19:06:04
阅读次数:
192
前面已经介绍了Python+Selenium基础篇,通过前面几篇文章的介绍和练习,Selenium+Python的webUI自动化测试算是入门了。接下来,我计划写第二个系列:练习篇,通过一些练习,了解和掌握一些Selenium常用的接口或者方法。 练习场景:在某一个网页上有些字段是我们感兴趣的,我们 ...
分类:
编程语言 时间:
2018-12-22 19:06:13
阅读次数:
167
在前面一篇文章,我们介绍了如何摘取页面字段,通过正则进行匹配符合要求的字段。如果感觉有点困难,不能立马理解,没有关系。把字符串摘取放到第一篇,是因为自动化测试脚本,经常要利用字符串操作,字符串切割,查找,匹配等手段,得到新的字符串或字符串数组,然后根据新得到的字符串进行判断用例是否通过。 本篇介绍如 ...
分类:
编程语言 时间:
2018-12-22 19:06:35
阅读次数:
164
开始写自动化脚本之前,我们先学习几个概念,在完全掌握了这几个概念之后,有助于我们快速上手,如何去编写自动化测试脚本。 元素,在这个教程系列,我们说的元素之网页元素(web element)。在网页上面的文本输入框,按钮,多选,单选,标签,和文字都叫元素,总之,凡是能在页面显示的对象都可以作为页面元素 ...
分类:
编程语言 时间:
2018-12-22 19:07:49
阅读次数:
256