- 博客(66)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 将博客搬至CSDN
欢迎访问我的主博客地址:https://www.cnblogs.com/zzzz76/以后部分文章会同步搬家到csdn,希望我的c币会慢慢的涨起来,呜呜呜~
2020-11-08 14:56:00
91
原创 【论文阅读】Parallel multi-objective artificial bee colony algorithm for software requirement optimization...
Abstract在软件产品的增量迭代过程中,产品的每一个版本都对应着一组新的需求。由于各种各样的现实问题,比如资金上的缺乏,时间上的缺乏,各种不同需求之间产生的相互依赖,导致所有的需求无法被同时满足。总而言之,要选择一个最优的需求组合,是非常困难的问题,其中存在着两个相互冲突的目标,如何在提高用户满意度的同时又能够降低开发所产生的成本。论文将这个问题归纳为next release probl...
2021-06-10 20:08:00
353
原创 人工蜂群算法
算法背景人工蜂群算法 (Artificial Bee Colony, ABC) 是由 Karaboga 于 2005 年提出的一种新颖的基于集群智能的全局优化算法,其直观背景来源于蜂群的采蜜行为。它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工蜂个体的局部寻优行为,最终在群体中使全局最优值突现出来,有着较快的收敛速度。蜜蜂是一种群居昆虫,虽然单个昆虫的行为极其简...
2021-06-06 14:36:00
2938
原创 【图解设计模式五】Singleton 模式
只有一个实例一、知识概述Singleton 模式是指,在任何情况下只生成一个实例,且该实例能够在程序上表现出来。该模式仅包含一种角色。Singleton:负责实现返回唯一实例的方法。二、示例程序以下为实现了Singleton模式的示例程序,这段示例程序的作用是,从外部获取唯一实例,并进行验证。类图示例程序清单/** * 只存在一个实例的类 */public class...
2021-02-21 14:36:00
202
原创 【图解设计模式四】Factory Method 模式
将实例的生成交给子类一、知识概述Factory Method 模式是指,在父类中定义生成实例的框架,在子类中实现具体处理。Factory Method 由Template Method 演变而来,其主要包含四种角色。Product:为产品,属于框架内部,负责声明产品实例所需的方法Creator:为创建者,属于框架内部,不仅负责实现模板方法,还负责声明在模板方法中所使用到的抽象方...
2021-02-20 22:05:00
141
原创 【图解设计模式三】Template Method 模式
将具体处理交给子类一、知识概述Template Method 设计模式是指在父类中定义处理流程的框架,在子类中实现具体处理。其主要包含两种主要的角色。AbstractClass: 为抽象类,不仅负责实现模板方法,还负责声明在模板方法中所使用到的抽象方法。ConcreteClass: 为具体类,负责具体实现AbstractClass角色中声明的抽象方法。二、示例程序以下为实...
2021-02-19 17:27:00
115
原创 【图解设计模式二】Adapter 模式
一、知识概述Adapter 设计模式用于填补“现有程序”和”所需程序“之间的差异,即现有的程序无法直接使用,需要经过适当的变换之后才能满足需求。Adapter模式包含四种主要的角色。Target: 为对象,负责声明所需的方法Client: 为请求者,负责使用Target角色所声明的方法进行具体处理Adaptee: 为被适配者,持有既定的方法Adapter: 为适配者,包装Ad...
2021-02-19 00:35:00
294
原创 【图解设计模式一】Iterator模式
一、知识概述Iterator 模式用于在数据集合中按照顺序遍历集合,其包含四种主要的角色:Iterator:意为迭代器,负责声明按顺序逐个遍历元素的接口apiConcreteIterator:为具体的迭代器,负责实现Iterator角色所声明的接口apiAggregate:意为集合,负责声明创建Iterator角色的接口apiConcreteAggregate:为具体的集合,...
2021-02-18 00:10:00
164
原创 Java 执行过程中的内存模型
一、前言本文的主要工作:尝试以时间顺序追踪一遍 Java 执行的整个过程,以及展示 JVM 中内存模型的相应变化。本文的主要目的:希望能够通过 Java 执行过程的冰山一角,增进对编程语言工作原理的理解。以下面这段代码为例,追踪它的执行过程:public class Car { private int speed; public void setSpeed(in...
2021-01-31 18:33:00
95
原创 Java验证码识别工具类
写了一个简单java工具类,用于验证码图片点阵打印+自动识别。为了提升识别精度和程序性能,此工具类是针对特定类型的验证码的,若要用于其他类型的验证码识别,需要做相应调整。输入验证码:程序运行结果:======= print and recognize captchapic ======="..............................................
2020-11-19 23:15:00
579
原创 Java识别静态验证码和动态验证码
写了一个简单java工具类,用于验证码点阵打印+自动识别。为了提升识别精度和程序性能,此工具类是针对特定类型的验证码的,若要用于其他类型的验证码识别,需要做相应调整。文章分两部分演示了此java工具类如何识别静态验证码图片和动态验证码gif。一、静态验证码图片识别输入验证码:程序运行结果:======= print and recognize captchapic ====...
2020-11-19 23:15:00
490
原创 Java 多线程计算累加数
【题意】:开6条线程计算累加1 -> 10000000【思路】:生产者-消费者 经典模型多个生产者负责生产(累加)作业生产者将生产结果存入共享仓库中消费者(主线程)从共享仓库中取出结果/** * 多线程计算累加数 */public class Accumulate { public static void main(String[] args) { ...
2020-11-13 22:57:00
801
原创 Java多线程加法计算
题意:要求开6条线程计算累加1 -> 10000000难点:如何获取子线程的执行结果并聚合思路一生产者-消费者 经典模型:多个生产者负责生产(累加)作业生产者将生产结果存入共享仓库中消费者(主线程)从共享仓库中取出结果/** * 多线程计算累加数 */public class Accumulate { public static void main(...
2020-11-13 22:57:00
520
原创 欢迎访问我的新博客
欢迎访问我的博客新地址:https://blog.csdn.net/zzzz76C由于c币实在不够用,以后会把部分文章转发到csdn上,呜呜呜~!
2020-11-08 14:56:00
94
原创 sort回调的简单模拟
本来是准备讲CPP中的std::sort,但因为最近Java用得多,不知怎么的便习惯性走Java角度看问题了,所以这篇文章看起来估计会有点奇怪...一、简单模拟sort回调std::sort函数本质上是一个静态回调函数,在回调中属于非常基本的操作,这里就不细讲,我们可以尝试进行模拟实现。顺序图以及相应代码:main.cpp#include <cstdio>#in...
2020-11-07 01:23:00
170
原创 hustoj实现远程判题的两种方案
hustoj实现远程判题需要对源码作添加或修改,对应流程图中的红色部分。方案一:在web中对接vjudge需要在web端创建子线程,使其处理表中的远程提交。同时修改core代码,使其不分配线程处理表中的远程提交。这里选择共用同一张solution表,是为了避免建立新表需要还原复杂的调用关系。方案二:在core中对接vjudgecore由两部分组成:负责感知任务并分配子线程的...
2020-08-22 00:49:00
377
原创 PhpStorm 断点调试
一、准备工作安装 php7.0安装 phpstorm安装 xdebug2.4安装 chrome 插件二、Web 工程创建添加 php 引擎添加 web 访问端口php 引擎配置:phpStorm -> settings -> Languages & Frameworks -> PHPPHP language levelCLI I...
2020-08-10 17:39:00
81
原创 简单理解cookie与session
cookie 保持会话Web应用程序的请求与响应基于HTTP,为无状态的通信协议。当用户的一次访问请求结束后,后端服务器就无法识别下一次来访问的是否为上一次的用户。cookie作为在浏览器存储信息的一种方式,用户通过对cookie的设置和读取,可以保持与后端服务器的交互状态。session 降低成本随着cookie个数的增多和访问量的增加,cookie的响应和请求将占用大量的网...
2020-08-07 22:02:00
103
原创 虚拟判题机对接文档
接口方法列表抓取题目API提交账号API提交解答API查询状态API抓取题目API接口定义http://localhost:8080/vjudge/problem/crawlProblem.action?id=${id}输入参数参数名类型示例值描述idint6题目编号返回示例{ "data": { "...
2020-08-04 12:36:00
98
原创 ubuntu16.04 安装 vjudge
一、安装 vjudge手动执行以下shell命令:#!/bin/bashapt-get updateapt-get -y install tomcat8 mysql-serverwget https://github.com/zhblue/vjudge/raw/master/vjudge.warcp vjudge.war /var/lib/tomcat8/webapps/#...
2020-07-08 17:21:00
202
原创 ubuntu16.04 安装 hustoj
一、安装 hustoj手动执行以下shell命令:#!/bin/bashapt-get updatesudo apt-get upgradeapt-get install -y mysql-server mysql-clientapt-get install -y php7.0apt-get install -y nginxapt-get install -y subv...
2020-07-08 11:36:00
206
原创 IDEA创建/部署/运行JavaWeb工程
一、准备工作安装 JDK1.8安装 tomcat8二、Web 工程创建创建 JavaWeb 工程创建 ./web/WEB-INF/classes 文件,用于存放编译后的 class 文件创建 ./web/WEB-INF/lib 文件,用于存放依赖的 jar 包JavaWeb 配置:File --> New --> Project --> Java ...
2020-06-23 13:20:00
105
原创 博客管理 web 平台
项目地址 ServletWeb ,小而全的 Java web 项目,仅作学习使用。实现博客管理的基本功能,用户可以对个人博客进行管理,并访问他人博客主页采用 MVC/Model2 架构模式,仅依赖 Servlet/JSP 库。存储采用 DAO 工厂设计模式,可实现 I/O 存储切换数据库存储。启动1、将项目导入IDEA/Eclipse,修改./web/WEB-INF/web...
2020-04-29 15:48:00
129
原创 土方法看源码
平常在看书、读论文的过程中,我们大都会遇到一个难题:书这么厚怎么看,论文这么晦涩怎么读?看书以及看论文,都有一定的技巧,我们应该结合自身所需,去寻求主要矛盾。看源码也是如此。源码优点在于它有最全的信息,我们可以从找到任何想要的答案;源码缺点在于内容太多,重点混淆。所以解决问题的思路有很多,这里选择将源码用uml图进行剖析,从而提取出有效信息。三种土方法:类图、时序图、流程图类图...
2020-04-20 18:15:00
77
原创 用C++写一款简单的JSON库
项目地址 jsoncpp ,此项目受到 leptjson 启发,实现了最基本的功能,仅作学习使用。提供简单的 parse() 和 generate() 方法将 JSON 文本解析成对象,反之亦然仅支持将基本类型为 Value 的 JSON 抽象语法树与 JSON 文本相互转换使用标准 C/C++ 语言 (C++11)不依赖第三方库启动启动此项目需要安装 gcc4.8 以...
2020-04-03 22:42:00
408
原创 出栈序列的求解方法
卡特兰数的概念假如现在有这么一个问题:一个序列从1到n依次入栈,那么可能的出栈序列一共有多少种?注意:在任意一个时刻,只要栈不为空,就可能有元素出栈,不是说元素全部入栈之后再出栈。这个问题的解其实等同于求n阶的卡特兰数(catalan)卡特兰数指的是在一个n*n的方格中,从左下角走到右上角。每一步只能往右或者往上,且在走的过程中不能越过从左下角到右上角的那条对角线。和入栈...
2019-02-21 00:44:00
1250
原创 计算机组成原理:存储系统的访问流程
什么是存储系统?存储系统大致可分为主存储器,辅助存储器,高速缓冲存储器三层,其中高速缓冲存储器用来改善主存储器与cpu的速度匹配问题,辅助存储器则用于扩大存储空间。课本上从存储系统的层次结构出发,对每一层次的概念、结构、工作机制等做了详细解释,回答了存储系统是什么的问题。存储系统的各层次之间是如何协作的呢?这篇文章通过贯穿整个存储系统的访问流程,展现出各个层次之间的协作关系...
2019-01-19 12:41:00
865
1
原创 如何规范的合并分支
通常在分支合并的过程中要做到两点:产生有效的合并结果提交日志记录具备可读性如果仅仅保证合并结果的正确性,却忽略日志记录的可读性,将产生不受约束的合并日志,导致代码仓库不可维护,影响项目后期开发。这里我们围绕日志记录的可读性(第二点),来探讨合并分支的各种方法,并归纳出不同场景下的最佳实践。场景一:功能分支开发完毕,并入主分支$ git checkout masterSwi...
2018-07-22 16:24:00
112
原创 为什么静态域与网络传输无关
首先静态域与网络传输没有关系,静态域不可以被序列化,也不会在网络中被传输。我们先通过一个例子验证这个问题,后面再分析静态域到底是怎样的一种存在。以下是一个socket通信过程,Client端负责实例的构造和发送,Server端负责监听和接收来自端口的实例,User类拥有静态变量和成员变量,这里将User的实例作为目标进行传输。import java.io.*;import java...
2018-07-19 21:56:00
72
原创 租房时被分期贷款坑了!!!
现今场景贷逐渐脱离本职,商家更在意如何利用场景贷的隐蔽性来绑定消费者,在租房子被摆了一手后,决定讲讲场景贷这玩意。不仅需要贷款的人会贷款,不需要贷款的人也容易“被贷款”租赁的分期套路现在一些租房中介公司,在租客不知情的情况下,通过三方平台将租客绑定成借贷消费合约里会提到房租分期,但是租房时并未说明借贷事宜,租客还自以为是在按月付房租实际上经过中介公司所谓的“受托支付”,...
2018-07-15 00:19:00
288
原创 JVM类加载全过程--图解
JVM规范允许类加载器在预料某个类将要被使用时就预先加载它,下图为实例方法被调用时的JVM内存模型,1~7完整的描述了从类加载开始到方法执行前的预备过程,后面将对每一个步骤进行解释在我们加载类的过程中经过了这些步骤第一步 加载目标字节码至方法区,并转化为方法区的运行时数据结构第二步 在堆区创建一个java.lang.Class对象,提供了访问方法区内的数据结构的接口第三步 为...
2018-07-09 11:31:00
156
原创 包装接口--模块化起步
今天看到一段代码,思考了一下觉得挺精妙的,围绕的是一个接口包装的问题,下面举个小栗子。场景:通常我们会利用接口来观测具有相同行为的对象,从而进行具体行为的派发,目的是为了解除调用方和行为对象的耦合,我们可以很方便的再次变换行为对象;但是我们往往会忽略,在调用方处理接口时形成的耦合。设想一个常见的场景,客户端调用服务端发送指令简单处理:服务端trait Trigger { ...
2018-07-03 01:56:00
94
原创 九大经典排序算法小结+自创简易测试框架
最近写了颇多笔试,下面归纳一下遇到过的经典排序算法1、为了方便调试这些排序算法,这里设计了一个的简易测试框架具体功能:当我们实现不同算法时,只需要关注方法本身的正确性和完整性,框架会自动化帮助我们完成对该方法的测试用例实现方式:我们在外层调用封装好的框架,将对象传入框架中进行自我检查,使目标方法得以调用,并进行所有测试用例的检测。package com.demo.so...
2018-03-26 01:20:00
216
原创 通过位操作实现四则运算
在最早学习四则运算的过程中,我们其实就已经掌握了进制算法,这一次我将对二进制运用这个进制算法来实现四则运算。四则运算math.c/** * 功能:通过位操作实现四则运算 * 算法:完全参照十进制的进制算法 * * Created with CLion * User: zzzz76 * Date: 2018-02-10 */#include <stdio.h&...
2018-02-13 02:38:00
88
原创 浅谈C与Java
Java的方法调用过程Java变量:基本类型变量、指针变量push压入新的栈桢在栈桢内部创建局部基本类型变量,接收参数值在栈桢内部创建局部指针变量,接收参数值后,该指针变量指向堆上实例pop弹出栈桢基本类型变量和指针变量均被销毁弹出原始栈桢指针变量被销毁,堆上实例被垃圾回收当然如果上层栈桢有接收,此实例将不会被回收C的函数调用过程C变量:基本类型变量、结...
2018-02-07 01:56:00
117
原创 健康上网的代理模型
昨天发现github上拉不动代码,晚上便整了一台代理服务器。由于以前一直没玩过服务器,所以这次觉得很新鲜很有趣,不妨谈谈我这次脑中的模型(玄学)远程设置代理服务器端首先我们可以选购一台国外服务器,除去那些托管的服务器硬件配置,供应商商会提供给我们机器的控制权:服务器Ip:如果把服务器比作一间房子,那么服务器Ip就是门牌号。管理员账户和密码:这间房子的超级管理员账户,一般为roo...
2018-01-26 16:50:00
95
原创 《深入分析Java Web技术内幕》读书笔记之JVM内存管理
今天看JVM的过程中收获颇丰,但一想到这些学习心得将来可能被遗忘,便一阵恐慌,自觉得以后要开始坚持做读书笔记了。操作系统层面的内存管理物理内存是一切内存管理的基础,Java中使用的内存和应用程序的内存一样是从物理内存申请下来的内存。物理内存也就是寄存器,通过地址总线与CPU相连,通常情况下地址总线与寄存器有着相同的位数,同时也决定了处理器最大可寻址的地址空间。为了提高物理内存的利用...
2018-01-23 00:19:00
97
原创 关于代码风格
我对代码风格的理解就是能使作者更好的写代码,能使阅者更好的读代码。方法如段落,类如章节,代码的美感正如文字的美感,代码应是一种艺术。代码该如何写在写代码的过程中最重要的便是对章节和段落的安排。和写文章一样,段落之间存在着引用,如同盘根错节的树结构。当行文没有着重点,有血肉却无骨架时,说明该分章节了。一个章节归纳了一类相关联的段落,当然也引用着本章或其他章节中的段落,章节安排得妥当,...
2018-01-21 12:18:00
98
原创 方法的执行过程
接昨天的文章顺便理一理方法的执行过程,这里借许令波大牛的图一用方法执行之前调用昨天的run工具,完成了目标源码的编译后;获取ClassLoader对象,加载目标字节码至方法区,在堆上创建Class< T >对象并初始化(总之对象就是一种有场景的半持久型数据)。方法的执行过程调用对象的方法,开始执行方法区指令,根据该方法的操作数栈深度,局部变量空间需求等在该线程栈上创建...
2017-12-31 23:56:00
133
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人