自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hfx_fmxd的博客

自我学习的记录

  • 博客(44)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java对超过百万级数据的Excel的处理方式(读取和写入)

目录说明写入XLXS写入一个Excel写入多个excel读取txt和csvxls 和 xlsx载体对象xls读取xlsx读取说明帮助测试做的工具。测试需要对多个导出的结果进行比较,并将比较的结果写入到一个Excel中。导出的文件格式包括:txt, csv, xls, xlxs写入的文件格式为:xlxs由于最终的写入方式是一致的,先说写入。涉及到客户产品信息,代码仅举例子说明,具体的逻辑嵌套请自行处理(测试组要求比较数据的时候需要读取的时候同步写入)。写入XLXS由于写入的数据量不确定,最少

2020-05-25 18:00:39 7905

原创 ForkAndJoin初步使用总结

目录说明代码示例任务调用1 使用invoke调用2 使用sumbit总结一下说明初次使用ForkAndJoin框架来操作task,总结一下调用任务的两种方式。代码示例任务private static class TestTask extends RecursiveAction { private String name; private int a; private Map<String, String> map;

2021-07-10 21:42:22 247

原创 设计模式-装饰器模式

装饰器模式在软件开发过程中,有时想用一些现存的组件。这些组件可能只是完成了一些核心功能。但在不改变其结构的情况下,可以动态地扩展其功能。所有这些都可以釆用装饰器模式来实现。定义装饰器模式(Decorator Pattern)属于对象结构型模式。在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)。优点装饰器是继承的有力补充,比继承灵活,在不改变原有对象的情况下,动态的给一个对象扩展功能,即插即用通过使用不用装饰类及这些装饰类的排列组合,可以实现不同效果装饰器模式完全遵

2021-01-05 21:32:49 120

原创 设计模式-桥接模式

桥接模式当一个抽象可能有多个实现时,通常用继承来进行协调。抽象类定义对该抽象的接口,而具体的子类则用不同的方式加以实现。继承机制将抽象部分与它的实现部分固定在一起,使得难以对抽象部分和实现部分独立地进行修改、扩充和重用。如果一个抽象类或接口有多个具体实现子类,而这些子类之中有内容或概念上重叠,需要我们把抽象的共同部分各自独立开来:即原来是准备放在一个接口里,现在需要设计两个接口——抽象接口和行为接口。然后再分别针对各自的具体子类定义抽象接口和行为接口的方法和调用关系。简单来说,就是把一个对象的描述和行

2021-01-05 21:31:49 107

原创 设计模式-适配器模式

适配器模式适配器模式(Adapter Pattern)把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。优点客户端通过适配器可以透明地调用目标接口。复用了现存的类,程序员不需要修改原有代码而重用现有的适配者类。将目标类和适配者类解耦,解决了目标类和适配者类接口不一致的问题。在很多业务场景中符合开闭原则。缺点适配器编写过程需要结合业务场景全面考虑,可能会增加系统的复杂性。增加代码阅读难度,降低代码可读性,过多使用适配器会使系统代

2021-01-05 21:30:45 108

原创 设计模式-代理模式

目录说明问题来源解决方案优点缺点模式结构应用场景示例工厂工厂接口食品工厂饮料工厂静态代理代理工厂调用检查动态代理代理处理方案调用检查总结Spring中的代理第一种方式,使用xml配置第二种方式,使用注解说明在代理模式(Proxy Pattern)中,我们创建具有现有对象的对象,以便向外界提供功能接口。一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。问题来源在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些

2021-01-05 21:29:40 86

原创 设计模式-工厂模式(简单工厂模式、工厂模式、抽象工厂模式)

工厂模式前提开发者创造的实体类代码并不会提供给客户端,只是开放了一个接口,即工厂类。客户端在获取系统中的对象的时候,只能通过工厂类来获取对象(即使用者除了工厂类和一些简单条件,对其余代码一无所知。)定义定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。分类简单工厂模式(Simple Factory Pattern):又叫作静态工厂方法模式(Static Factory Method Pattern),有一个具体

2020-12-28 21:14:09 218

原创 设计模式-建造者模式

建造者模式建造者模式,又称生成器模式:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。三个角色:建造者、具体的建造者、监工、使用者(严格来说不算)建造者角色:定义生成实例所需要的所有方法;具体的建造者角色:实现生成实例所需要的所有方法,并且定义获取最终生成实例的方法;监工角色:定义使用建造者角色中的方法来生成实例的方法;使用者:使用建造者模式。示例一般来说,去快餐店点单的时候,一个套餐可能会有很多的选择,可以只需要基础的汉堡和饮料,也可以增加一些别的东西。如果定义一

2020-12-28 21:12:33 75

原创 设计模式-原型模式

原型模式定义用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。原型模式的克隆分为浅克隆和深克隆。浅克隆创建一个新对象,新对象的属性和原来对象完全相同,对于非基本类型属性,仍指向原有属性所指向的对象的内存地址。深克隆创建一个新对象,属性中引用的其他对象也会被克隆,不再指向原有对象地址。优点Java自带的原型模式基于内存二进制流的复制,在性能上比直接 new 一

2020-12-28 21:02:22 50

原创 设计模式-单例模式

单例模式在有些系统中,为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式。定义一个类只有一个实例,且该类能自行创建这个实例的一种模式。特点单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。优点单例模式可以保证内存里只有一个实例,减少了内存的开销。可以避免对资源的多重占用。单例模式设置全局访问点,可以优化和共享资源的访问。缺点单例模式一般没有接口,扩展困难。如果要扩展,则除了修改原来的代码,

2020-12-22 21:13:59 140

原创 设计模式

目录面向对象设计原则开闭原则(Open Closed Principle,OCP)里氏替换原则(Liskov Substitution Principle,LSP)依赖倒置原则(Dependence Inversion Principle,DIP)单一职责原则(Single Responsibility Principle,SRP)接口隔离原则(Interface Segregation Principle,ISP)迪米特法则(Law of Demeter,LoD)合成复用原则(Composite Reus

2020-11-27 21:06:16 63

原创 Java中的各种引用(强引用、软引用、弱引用、虚引用)(五)

目录前言问题问题一问题二前言Java中的各种引用(强引用、软引用、弱引用、虚引用)(一)Java中的各种引用(强引用、软引用、弱引用、虚引用)(二)Java中的各种引用(强引用、软引用、弱引用、虚引用)(三)Java中的各种引用(强引用、软引用、弱引用、虚引用)(四)这里先不说虚引用,先说一下引用队列ReferenceQueue。问题问题一第一个问题:当软引用和弱引用的引用对象因为GC或者内存不足被回收了以后,SoftReferences对象和WeakReferences对象是否还存在?

2020-11-02 22:20:55 188

原创 Java中的各种引用(强引用、软引用、弱引用、虚引用)(四)

目录前言实现特点TestCodeJVM设置Test1 内存充足的情况,不触发GCTest2 内存充足的情况下,触发GCTest3 不触发GC,内存不足结果分析结论前言Java中的各种引用(强引用、软引用、弱引用、虚引用)(一)Java中的各种引用(强引用、软引用、弱引用、虚引用)(二)Java中的各种引用(强引用、软引用、弱引用、虚引用)(三)这里介绍一下弱引用实现弱引用通过WeakReference对象来实现WeakReference<byte[]> reference1 =

2020-10-30 14:52:24 137

原创 Java中的各种引用(强引用、软引用、弱引用、虚引用)(二)

目录前言强引用举例准备测试说明结论前言在 Java中的各种引用(强引用、软引用、弱引用、虚引用)(一)里面已经说过了对象的创建和内存的分布,也提到了四种引用,这里说一下强引用。强引用强引用就是一般的对象引用。被强引用的对象,只有在完全没有任何引用的时候,才会被系统回收。只要该对象存在引用,系统宁可抛出OOM,也不会强制回收该对象。举例准备首先,需要对JVM的运行环境做一下设置,我们可以设置JVM的内存为20M,以方便观察。-Xms20M -Xmx20M测试package com.tes

2020-10-29 17:39:39 87

原创 Java中的各种引用(强引用、软引用、弱引用、虚引用)(一)

目录前言强引用软引用弱引用虚引用主要区别引用前言以下是自己学习的记录和一些尝试,如果存在不对的地方,请指出。多谢!强引用正常引用即为强引用。eg:Object o = new Object();软引用使用SoftReference获取的对象即为软引用对象。eg:SoftReference<Object> sr = new SoftReference<>(new Object());通过sr实现对对象new Object()的软引用。弱引用使用WeakRefe

2020-10-29 17:37:11 129

原创 Java中的各种引用(强引用、软引用、弱引用、虚引用)(三)

目录前言软引用实现特点codeTestJVM设置Test1 内存充足,触发GCTest2 内存不足,触发GCTest3 内存充足,不手动回收结果说明结论前言Java中的各种引用(强引用、软引用、弱引用、虚引用)(一)Java中的各种引用(强引用、软引用、弱引用、虚引用)(二)本文说一下软引用软引用实现软引用是通过创建SoftReference对象来实现的。 SoftReference<byte[]> reference = new SoftReference<>

2020-10-29 17:29:42 119

原创 使用POI处理Excel的一个问题

使用POI来处理Excel的时候,遇到了一个问题,分享一下。先看代码private Map<String, Map<String, String>> getData(String sheetName, String key) throws IOException { Map<String, Map<String, String>> result = new HashMap<String, Map<String, String&g

2020-10-14 10:37:44 1967 2

原创 TestNg对表格数据的处理

使用表格的时候,如果存在过多的行数,一般建议使用缓存的方式来处理。对于自动化测试来说,在不拖动滚动条的情况下,只能看到一部分的数据。针对这种情况,可以使用scrollTop来获取数据。需要两部分的WebElement String tableCss = "div.test > div > div.-table-body"; String rowsCss = "div.test > div > div.-table-body > div >

2020-09-12 11:16:16 97

原创 TestNg 切换多个页签

目录说明方案敲定code后记说明当前有一个项目,因为是多个网站之间存在相互的关联(其中一个网站属于管理者,管理其他网站的各种用户信息),因此在编写自动化测试用例的时候,需要同时打开这几个网站,并且可以自由来回切换。由于自动化测试的框架和基础组件以及公共方法是我帮他们做出来的,于是,测试部的同事们把这个任务又交给了我这边。方案敲定我提出了两个方案,并且给出了demo(这里先说下方案,后面会给出代码)。第一个方案:只有一个页签,每次需要到另一个网站的时候重新输入网址来重定向。第二个方案:每次需要

2020-06-28 20:47:48 155

原创 关于数字的位运算

目录说明正文十进制转换二进制方法<< 左位移>> 右位移| 或运算& 并运算^异或运算~取反运算说明这里主要就是研究一下关于位计算的一些案例,所有的举例参数都使用int来操作,结果输出也是如此正文十进制转换二进制方法 private String DecimalToBinary(int decimal) { return Integer.toBinaryString(decimal); }<< 左位移a <&lt

2020-06-16 21:00:51 487

原创 java各进制转换

目录说明代码说明自己记录一下一些关于进制转换的方法,主要是二进制、八进制、十六进制和十进制之间的转换。代码package com.myself.utils;/** * convert a num form a base to another base, the number must be bigger then 0 and less then 2147483647 */public class BaseConvertTools { /** * 10 -> 2

2020-06-16 20:53:55 143

原创 自动化测试TestNG导出HTML报告

目录说明测试工具重写IReporter接口添加到配置说明测试组要求将测试报告以HTML的格式输出,这里简介一下官方的做法测试工具测试组使用TestNG,maven工程,需要优先添加以下配置 <dependency> <groupId>com.aventstack</groupId> <artifactId>extentreports</artifactId>

2020-06-02 19:18:19 660

原创 java关于文件操作的一些注意事项

目录说明文件删除说明最近再做一些对文件的各种操作,期间踩到了不少的坑,这里总结一下。文件删除Java对文件删除存在两种方式:File file = new File(path);file.delete();file.deleteOnExists();对于第一种,file.delete()如果file不存在则会抛出异常。但是删除是即时生效的。后来,我建议他们在代码中使用这个代码块while (file.exists()) { try { file.delete();

2020-05-21 14:21:50 438

原创 Java执行CMD指令

代码如下:public void execute(String command) { System.out.println("Execute the command is: " + command); if (null == command || "".equals(command)) { return; } InputStream in = null; InputStream error = null

2020-05-15 10:55:48 183

原创 不需要处理的java异常

目录问题记录问题记录对于一些简单的异常,因为不会影响程序的运行,因此,我们不需要去处理它,只是需要捕获,保证程序的连续性不会中断就可以了。这个时候,使用try {} catch (Exception e) {}的话,在程序中可能会存在一定的警告。为了避免这种警告,可以使用以下方式。 try { //do something } catch (Exc...

2020-04-13 15:01:19 1203

原创 NSIS运行的一些检查项目

目录说明Script配置软件是否安装软件版本判断软件运行判断安装/升级程序运行判断说明安装软件或者升级软件的时候要做一下常规的检查,一般包括以下几项:软件是否已经安装软件版本是否正确(升级)软件是否正在运行安装/升级程序是否正常运行Script配置!define PRODUCT_NAME "Test"!define PRODUCT_VERSION "2.4.1"!defi...

2020-03-18 17:30:11 497

原创 NSIS替换文件内容

目录说明软件方法说明项目需要将java工程打包为可安装的exe文件,使用NSIS软件。打包的时候配置文件中的一些配置需要调整。此博客主要记录替换使用的方法脚本。软件NSISNisEdit方法使用NisEdit打包的教程很多,不再记录。生成*.nsi文件后,将方法添加到文件中(建议添加在“MUI end”之后)。替换的方法如下:Function AdvReplaceInFil...

2020-03-11 15:58:24 1501

原创 NSIS使用ant编译

这里写自定义目录标题说明下载需要的软件开始1. 安装配置环境2. 编译Ant脚本关键配置说明3.配置其他文件3.1 拷贝NSIS3.2 配置文件路径3.3 本地编译4. 配置环境说明目前的项目需要提交至Jenkins,因此需要做两个操作编译java项目成为一个可安装的exe文件编译Ant脚本实现Jenkins编译这里主要记录使用ant脚本编译的事情下载需要的软件我这次需要的软件主...

2020-03-11 10:42:11 252

原创 升级libraries引起的异常NoClassDefFoundError

对现有的rcp工程替换了一个jar包,只是做了版本升级,从6.0.0升级至6.0.1,但是出现了以下错误。问题报错信息如下:Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name '*****' defined in class path resource...

2019-12-04 15:34:56 168

原创 扫描文件内容时对注释的处理(java)

扫描文件内容时对注释的处理扫描文件内容时,一般会无差别的扫描所有内容,如果注释很多的话,会在扫描的结果中加入很多无意义的结果(因为我们不需要修改注释的内容);或者有时候只需要扫描注释的内容来获取一些信息,这个时候非注释的信息就属于干扰信息。这篇帖子就是针对注释进行处理的,但是仅仅以java作为例子。需要扫描的文件 test.java//----------------------------...

2019-11-19 16:54:29 440

原创 Resid使用一

前言如果计划使用SpringBoot连接Redis, 请先配置好使用的redis,并建立基础的SpringBoot工程。maven中心服务器https://repo.maven.apache.org/maven2/正文配置Redispom.xml加入dependency <dependency> <groupId>org.s...

2019-11-12 17:14:30 702

原创 SpringBoot日志Logback记录

SpringBoot日志说明SpringBoot支持四种日志格式:JavaLoggingSystemLog4jLoggingSystemLog4j2LoggingSystemLogbackLoggingSystemSpringBoot 默认使用的是LogbackLoggingSystem。已经整合了Log4jLoggingSystem和Log4j2LoggingSystem的一些特...

2019-11-11 14:08:00 89

原创 图片处理玩具

协助处理照片的玩具方案将一张照片修改为乱码组成的黑白照片,上图原始图片转换后基本方法如下(非全部代码,只是主要方法)获取原始像素点数据并转换public ConvertImage2Txt(String imagePath, String symbols) { this.imagePath = imagePath; this.symbols = ...

2019-10-28 16:18:09 288

原创 对指定文件查找指定内容

个人基础代码,工具类,大神勿扰—特别是涛神说明:从固定的文件路径下查找对应文件中的对应字段,并输出其文件名称,行号和对应的内容。逻辑:使用两个线程进行操作,一个线程负责检索所有文件,并写入一个list,另一个线程负责从list中读取已经检索到的文件,并对其内容进行检查,找出匹配的问题存储到结果中。代码实现检索文件线程 FileSearchTaskpackage com.mysel...

2019-10-18 13:58:29 365

原创 文件快速查找方法

@文件查找工具。开发使用的文件查找工具因为需要与Windows进行界面交互,因此需要的时间会较长。自己写一个查找代码,可以很快的找到需要查找的文件和信息,并在控制台展示。因为略去了界面交互的环节,可以新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;...

2019-10-17 21:20:14 322

原创 python学习笔记-------类(class)

面向对象编程–类 创建类 格式注:文件名:dog.pyclass Dog(): #1 """一次模拟小狗的简单尝试""" def __init__(self, name, age): #2 """初始化属性nam..

2018-04-09 21:05:35 251

原创 python学习笔记-------函数

函数 函数格式def function(args): doSomething#调用函数function(args1)def———-标示符 function—–函数名称 args———允许传入的参数(形参,可以不传,也可以传多个) doSomething–函数体 args1——–实际传入的参数(实参,和形参的格式保持一致) 注:1.传递参数时要按照函数的参数格式...

2018-04-03 21:01:56 180

原创 python学习笔记------输入和while循环

1 用户输入 1.1 语法————input()message = input("Tell me something, and I will repeat it back to you: ")print(message)1.2 获取数值message = int(message);1.3 求余(%)4%3 ==&gt; 1;4%2 ==&gt; 0;注:输入...

2018-03-28 20:54:55 236

原创 python学习笔记--字典操作

1 创建字典person = {'name':'fmxd', 'age':1, 'sex':'boy'}2 操作字典 2.1 获取其中的数据age = person['age']2.2 添加属性person[food] = 'milk'2.3 修改属性值father = {}father['name'] = 'fxd'father['age'] = 25fath...

2018-03-26 21:00:18 359

原创 python学习笔记-------列表操作

python 列表操作1.定义([])bicycles = ['trek', 'cannondale', 'redline', 'specialized']2.取值 2.1取第n个值bicycle = bicycles(n-1);2.2取最后一个值bicycle = bicycles(-1);3.增删 3.1末尾追加bicycles.append...

2018-03-24 21:14:09 209

seleniumhq.7z

JAVA自动化测试使用的jar包合集,在无法连接maven中心库时可以放到maven路径下直接导入使用

2020-04-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除