- 博客(36)
- 资源 (1)
- 收藏
- 关注
原创 Spring的RestTemplate自动重定向,如何拿到重定向后的地址?
背景:最近项目中需要对接第三方接口下载一些文件,访问下载地址链接会重定向到真正的uri,由于某些原因,需要拿到重定向后的地址,即302跳转后的uri,但是spring的RestTemplate提供的get方法会默认自动重定向,返回的即为200,因此需要取消自动重定向或者在重定向过程中拿到真正的uri。1.问题分析如何知道spring会自动重定向呢?先写一个简单的测试用例,例如百度app的下载地址,就是有会进行302跳转的url private static final String BAI.
2020-07-16 19:44:58 9009 3
原创 Java实现校验两个目录下的文件变更记录(二)
5.使用线程池(1)单线程版本上面是一次文件校验,假如说我们需要同时进行100次文件校验,那么就需要执行100次文件校验方法吗?这样显然是不可取的,我们首先改造一下文件校验方法,把主方法也实现Runnable方法,从而可以并行执行。先改造单线程版本的,把原来的文件校验方法写到run里面。 private String oldPath; private String newPa...
2019-08-20 20:59:38 334
原创 Java实现校验两个目录下的文件变更记录(一)
一个小工具,用来比较两个文件目录下的文件是否有增加、删除和修改。逻辑并不复杂,先计算文件的MD5码,然后循环遍历所有文件,依次比较即可。主要目的是想写一个多线程版本的,复习一下多线程方面的知识。1.新建一个maven项目,引入maven依赖 <!--做文件校验用的依赖--> <dependency> <groupId>commons-...
2019-08-20 20:57:41 639
原创 调用shutdown脚本关闭tomcat时,某些进程关闭不掉(二)
linux下的测试安装tomcat,略过ps -ef|grep tomcat显示所有的tomcat进程,先执行ps -ef 获取所有的进程,再执行过滤出来带有tomcat关键字的进程。ps -ef|grep tomcat|grep -v grep-v:过滤掉grep的行,也就是过滤掉本次执行查询进程的行。具体步骤:进入tomcat安装目录cd /opt/apache-tomcat-...
2019-08-10 22:32:14 585
原创 调用shutdown脚本关闭tomcat时,某些进程关闭不掉(一)
首先从Tomcat的启动过程出发:Tomcat启动的入口类:org.apache.catalina.startup.Bootstrap#mainmain方法是整个tomcat启动时的入口。在main方法中,使用bootstrap.init()来初始化类加载器和创建Catalina实例,然后再启动Catalina线程。bootstrap.init()方法,用于初始化容器相关,首先创建类加载器,...
2019-08-10 22:31:08 1058
原创 牛客网刷题笔记(二)
4.迷路的牛牛题目描述牛牛去犇犇老师家补课,出门的时候面向北方,但是现在他迷路了。虽然他手里有一张地图,但是他需要知道自己面向哪个方向,请你帮帮他。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含一个正整数,表示转方向的次数N(N<=1000)。接下来的一行包含一个长度为N的字符串,由L和R组成,L表示向左转,R表示向右转。输出描述:输出牛牛最后面向的方向,N表...
2019-08-10 22:27:01 267
原创 牛客网刷题笔记(一)
1.牛牛找工作题目描述为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含两个正整数,分别表示工作的数量...
2019-08-02 19:23:34 384
原创 基于模型的自动化测试工具GraphWalker(三):应用案例
8.工具应用案例8.1 案例概述8.1.1 概要GraphWalker是一个基于测试模型的用例生成工具。它主要应用于FSM, EFSM模型。可以用来它可以直接读取FSM, EFSM图形模型、json模型,生成测试用例。本案例中使用graphwalker对一个仿天猫网站的J2EE项目进行建模与测试。8.1.2 仿天猫网站项目详情:要在网上找一个J2EE项目是很容易的,随便在百度或者git...
2019-06-03 19:17:23 1975 1
原创 基于模型的自动化测试工具GraphWalker(二):使用介绍
5.工具使用介绍5.1 GraphWalker用途GraphWalker提供3种工作方式:5.1.1作为第三方库,可被java测试程序直接调用MBT中测试设计的目的是描述被测系统的预期行为。设计的结果看起来像一个具有许多边(也就是箭头,弧或过渡)和顶点(又称节点或状态)的模型,以及它们如何相互作用。模型会提醒您流行的测试状态转换图或有限状态图。边表示与SUT的动作,顶点表示应该测试的SU...
2019-06-03 19:11:57 2189
原创 SpringBoot构建电商秒杀项目实战(五)
第六章 秒杀模块开发6.1 秒杀模型管理——活动模型创建1.使用joda-time<dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.9.1</version></d...
2019-05-28 12:43:19 1402 1
原创 SpringBoot构建电商秒杀项目实战(四)
第五章 交易模块开发5.1 交易模型管理——交易模型创建1.先设计用户下单的交易模型//用户下单的交易模型public class OrderModel { //交易单号,例如2019052100001212,使用string类型 private String id; //购买的用户id private Integer userId; //购买的...
2019-05-28 12:41:54 973
原创 SpringBoot构建电商秒杀项目实战(三)
第四章 商品模块开发4.1 商品模型管理——商品创建1.首先设计商品领域模型public class ItemModel { private Integer id; //商品名称 private String title; //商品价格 private BigDecimal price; //商品的库存 private Integ...
2019-05-25 13:38:37 1166 2
原创 SpringBoot构建电商秒杀项目实战(二)
第三章 用户模块开发3.1 使用SpringMVC方式开发用户信息1.增加controller层、dao层创建UserController@Controller("user")@RequestMapping("/user")public class UserController { @Autowired private UserService userService;...
2019-05-25 13:37:00 2948 4
原创 SpringBoot构建电商秒杀项目实战(一)
源码地址:https://github.com/KiroScarlet/miaoshaproject慕课网SpringBoot构建电商基础秒杀项目,课程地址https://www.imooc.com/learn/1079第一章 课程介绍电商秒杀应用简介商品列表页获取秒杀商品列表进入商品详情页获取秒杀商品详情秒杀开始后进入下单确认页下单并支付成功第二章 应用SpringBoot...
2019-05-24 23:12:03 6867 6
原创 修复Ubuntu下MySQL无法访问的问题
在ubunt下使用sudo apt-get install mysql命令直接安装mysql,访问时会报一下错误mysql: [Warning] Using a password on the command line interface can be insecure.ERROR 1698 (28000): Access denied for user 'root'@'localhost'...
2019-05-09 19:36:42 1133
翻译 论文翻译:A Highly Accurate Prediction Algorithm for Unknown Web Service QoS Values
A Highly Accurate Prediction Algorithmfor Unknown Web Service QoS Values一种用于未知Web服务QoS值的高精度预测算法Abstract—Quality of service (QoS) guarantee is an important component of service recommendation. ...
2019-04-28 18:39:53 914
原创 Markdown使用教程(持续更新)
基础语法1.标题Makedown一共有六种标题,对应于html中的h1到h6# 这是一个一级标题# 这是一个二级标题# 这是一个三级标题# 这是一个四级标题# 这是一个五级标题# 这是一个六级标题显示效果如下:这是一个一级标题这是一个二级标题这是一个三级标题这是一个四级标题这是一个五级标题这是一个六级标题2.段落和区块引用使用Markdown分段非常简单,前后至...
2019-04-22 17:43:44 716
原创 二叉树的重建和其遍历
给出二叉树的前序和中序遍历,要求重建出二叉树并遍历之。前序遍历:4 2 1 3 6 5 7 8 10中序遍历:1 2 3 4 5 6 7 8 10二叉树如下图:import org.junit.Test;import java.util.LinkedList;import java.util.Queue;import java.util.Stack;public...
2019-04-17 15:02:27 209
原创 Spring中的动态代理
Spring AOP使用动态代理技术在运行期织入增强的代码,使用了两种代理机制:一种是基于JDK的动态代理;另一种是基于CGLib的动态代理。(1)带有横切逻辑的实例一个论坛管理的业务类,业务代码前后都是重复性能监控功能的代码。import org.testng.annotations.Test;public class ForumServiceImpl implements F...
2019-04-16 19:44:19 169
原创 Spring简单入门:IOC
IOC:控制反转,控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护。DI(依赖注入)是其一种实现方式。目的:创建对象并且组装对象之间的关系。Spring通过一个配置文件描述Bean和Bean之间的依赖关系,利用Java语言的反射功能(https://blog.csdn.net/m0_37657841/article/details/8901478...
2019-04-16 14:39:03 159
原创 Java反射机制
什么是反射?Java语言允许通过程序化的方式间接对Class进行操作。Class文件由类装载器装在后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息,如构造函数、属性和方法等。Java允许用户借由这个与Class相关的元信息对象间接调用Class对象的功能,这就是反射。一个简单的实例定义一个简单的汽车类,其拥有两个构造函数,一个方法和三...
2019-04-04 10:52:19 133
原创 《实战Java高并发程序设计》读书笔记(四):锁的优化与注意事项
第四章 锁的优化及注意事项4.1 有助于提高锁性能的几点建议1、减少锁持有时间即只在必要的时候进行同步。2、减小锁粒度如ConcurrentHashMap中并不是对整个HashMap进行加锁,而是对其分段,每段分别加锁。注:JDK1.8以后ConcurrentHashMap取消了Segment分段锁,采用CAS和synchronized来保证并发安全。数据结构跟HashMa...
2019-04-02 13:42:07 239
原创 《实战Java高并发程序设计》读书笔记(三):线程池
3.2 线程复用:线程池1、什么是线程池为了避免系统频繁地创建和销毁线程,我们可以让创建的线程复用。在使用线程池后,创建线程变成了从线程池中获得空闲线程,关闭线程变成了向线程池中归还线程(类似数据库连接池)。2、JDK对线程池的支持Executor框架提供了各种类型的线程池,主要有以下工厂方法:public static ExecutorService newFixedThre...
2019-03-26 16:34:00 284
原创 《实战Java高并发程序设计》读书笔记(二):JDK并发包
第三章 JDK并发包3.1 多线程的团队协作:同步控制同步控制是并发程序必不可少的重要手段。1、关键字synchronized的功能扩展:重入锁重入锁可以完全替代关键字synchronized。重入锁使用java.util.concurrent.locks.ReentrantLock类来实现。public class ReenterLock implements Runnab...
2019-03-25 16:10:47 384
原创 《实战Java高并发程序设计》读书笔记(一):线程
第一章 走入并行世界几个概念1、同步(Synchronous)和异步(Asynchronous)通常用来形容一次方法调用。同步方法调用一旦开始,必须等到方法调用返回后,才能继续后续的行为。异步方法调用更像是一个消息传递,一旦开始,方法调用就会立即返回,调用者可以继续后续的操作,异步方法通常会在另外一个线程中“真实”的执行。2、并发(Concurrency)和并行(Paralleli...
2019-03-24 23:19:55 321
原创 《深入理解JVM》学习笔记(二):垃圾收集与内存分配
第三章 垃圾收集器与内存分配策略3.1概述程序计数器、虚拟机栈、本地方法栈随着进程的产生而产生,随其消亡而消亡,可认为其在编译期就是可知的。垃圾收集(Garbage Collection,GC)关注的主要内存:Java堆和方法区3.2如何判断对象是否存活?1、引用计数算法给对象添加一个引用计数器,没有一个地方引用就+1,引用失效就-1,计数器为0就不可能使用。优点是实现...
2019-03-23 12:23:30 216
原创 《深入理解JVM》学习笔记(一)
书名:《深入理解Java虚拟机:JVM高级特性与最佳实践》第一章 走进JavaJDK:Java程序设计语言+Java虚拟机+JavaAPI类库,支持Java开发的最小环境JRE:JavaSE API子集+Java虚拟机,支持Java程序运行的标准环境Java发展史1991年4月,java语言的前身:Oak语言1995年,Java1996,JDK1.01998年...
2019-03-22 20:45:24 376
原创 基于模型的自动化测试工具GraphWalker(一):基本原理
原理1、测试模型 一个测试模型是有向图表示的FSM或者EFSM模型,由箭头和节点组成,如图所示。 一个箭头,代表了一次测试动作; 一个节点,代表一次测试验证。2、测试需求选择Test requirements selection目的:指导测试用例生成器( test generation)如何生成用例。测试需求选择包含3方面: 1)模型中的目标(结束条件) 2)覆盖准则...
2019-03-19 20:40:36 4727
原创 手写汉字识别的发展综述
一、手写汉字识别的研究背景与现状在上个世纪60年代,美国IBM公司开始进行了对印刷体汉字的模式识别研究工作,1996年Casey和Nag用模板匹配法成功的识别出了1000个印刷体汉字,在全球范围内,汉字识别开始展开了。而就在这个时候,研究界对手写汉字识别也掀起了高潮。因为汉字在日语中占有一定的地位,手写体汉字识别(HCCR)在一开始是由日本率先尝试研究的,在80年代,国内开始了对手写汉字的研究,...
2019-03-19 20:29:19 30398 4
原创 有限状态自动机(FSM)和扩展有限状态自动机(EFSM)
有限状态自动机比较简单,这里就不说了,简单贴张图吧: 扩展有限状态机模型是对有限机状态模型的一个扩展,它在FSM模型的基础上增加了变量、操作以及状态迁移的前置条件,可以更加精确的刻画软件系统的动态行为。EFSM是一个六元组:M=(S, s0, V, I, O, T )其中,S 是一个有限状态集合...
2019-03-18 22:06:39 6072
原创 什么是基于模型的测试?
基于模型的测试属于软件测试领域的一种测试方法。MBT步骤如下:常规测试一般是由人来设计几个特定的测试场景,然后断言测试结果。测试用例固定。缺少不确定性。基于模型的测试(Model-based Testing)是需要实现一个模型,然后制定行为和行为之间的关系以及行为和系统的关系(有限状态机),然后测试系统根据被测系统的状态、之前设置的限制条件和策略来生成很多用例(每执行一次生成的用例会不同),测...
2019-03-18 21:58:09 10537
原创 一个小工具,实现了模型检测中从程序图到状态转移图的转换算法
程序图定义如下:例如这样的两个程序:画成程序图就是这样的:它们之间可以并行操作,并行之后的程序图是这样的:而状态转移图定义如下:它们之间进行转化的形式化描述如下:上面的程序图转换成状态转移图如下:代码戳这里:https://github.com/KiroScarlet/ModelChecking参考书籍:Principles of Model Checking...
2019-03-18 21:44:15 1485
原创 BP神经网络训练算法的比较(课程小论文)
一、BP神经网络的原理1.人工神经网络概述人工神经网络(Artificial Neural Network,简称ANN)由大量神经元广泛互联组成,是人脑功能的某种简化、抽象及模拟。在神经网络中,通过大量神经元之间的相互联系存储知识与信息,神经元之间的相互作用实现知识信息的处理。一个经过训练的神经网络即具备类似人的模式识别、联想记忆的功能。神经元的结构模型如图1-1所示。图1-1 人工神经元...
2019-03-18 17:03:11 23430 3
原创 一个字符识别小项目
一.环境要求使用深度学习框架tensorflow,编程语言使用python,要求使用CUDA8.0对深度学习框架进行加速处理运算。二.项目概述本项目主要是对输入的图片中的字符进行识别,所识别的字符仅限于“0123456789+-*()”,项目采用神经网络作为主要的训练模型,神经网络主要前四层主要是卷积层,后面接入两层LSTM对卷积层提取的特征进行处理,最后输出为num_class(字...
2019-03-18 16:41:44 468
原创 PostgreSQL数据库应用:基于GIS的实时车辆位置查询
一、目的近年来,随着我国城市化进程的加快,不少城市的规模在扩大、人口在增加、道路在延伸,城市的公交线路也在不断地增加。在城市中,选择合适的公交车前往目的地就成为与广大普通市民出行密切相关的一个问题。地理信息系统(GIS)作为一门融计算机图形和数据库于一体,储存和处理空间信息的边缘综合性学科,能把地理位置和相关属性有机结合起来,根据实际需要准确真实、图文并茂地输出给用户,满足不同部门、不同用户对...
2019-03-18 12:52:00 3655
翻译 论文翻译:Discovering the Best Web Service:A Neural Network-based Solution
发现最佳Web服务:一种基于神经网络的解决方案 摘要 - 区分具有相似功能的Web服务正在成为Web服务发现的主要挑战。在本文中,我们提出了一个框架,使用以其泛化能力而闻名的人工神经网络(ANN)来实现Web服务的有效发现。该框架的核心是将新颖的神经网络模型应用于Web服务,以基于Web服务质量(QWS)的概念确定合适的Web服务。 QWS的主要概念是评估Web服务的行为和提供所请求...
2018-07-12 17:18:24 412
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人