自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mysterious superstar

没有依靠,只剩骄傲

  • 博客(191)
  • 收藏
  • 关注

原创 JAVA中的内存泄漏和需要手动关闭的资源

内存泄漏和需要手动关闭的资源

2023-11-06 20:36:32 220

转载 深入浅出讲解RPC

远程过程调用(Remote Procedure Call,简称RPC),在微服务大行其道的今天,得到了广泛的应用。因此,在分布式系统服务群中开发应用,了解RPC一些原理和实现架构,还是很有必要的。本文,将从大的框架层面来聊聊RPC原理和实现。前言远程过程调用RPC,就是客户端基于某种传输协议通过网络向服务提供端请求服务处理,然后获取返回数据(对于ONE WAY模式则不返还响应结果);而这种调用对于客户端而言,和调用本地服务一样方便,开发人员不需要了解具体底层网络传输协议。简单讲,就是本地调用...

2023-11-01 20:18:26 110

原创 JAVA项目中什么是DTO、DAO、PO、Controller、Common

2. **Controller**:在MVC(Model-View-Controller)设计模式中,Controller(控制器)负责处理用户的请求,并调用后端的业务逻辑,然后返回相应的视图。在这个示例中,`User`是领域模型,`UserPO`是持久化对象,`UserConverter`是用于在`User`和`UserPO`之间进行转换的转换器。例如,如果你有一个接收XML输入的方法,但你的数据是JSON格式,你可能会创建一个JSON到XML的适配器,将JSON数据转换为可以被方法接受的XML格式。

2023-10-23 20:17:47 820

原创 Jmeter压测http接口和java代码放在Jmeter执行

Jmeter压测http接口和java代码放在Jmeter执行

2023-10-15 20:26:41 465

原创 spring Boot使用Mybatis实践

Spring boot中使用Mybatis

2023-10-15 18:08:38 590 1

原创 JAVA中的锁

在JAVA中使用锁来保证程序操作临界资源的互斥性,使多线程在竟态条件下对临界资源合理准确的操作。

2023-09-17 18:25:27 99

原创 JAVA多线程介绍

一文搞懂JAVA多线程,线程创建、线程控制、线程间的同步和互斥

2023-09-03 21:19:15 54

原创 性能测试入门

性能测试入门

2022-09-12 11:54:09 528 1

原创 java VisualVM工具连接远程服务和实践

性能瓶颈分析JVM监控VisualVMjvisualvmcpu使用率过高Jconsole连接Dcom.sun.management.jmxremote

2022-09-04 18:54:11 4485 2

原创 刚接手的新产品怎么快速展开测试

刚接手的新产品怎么快速展开测试

2022-07-10 15:20:42 415

原创 接口测试与接口测试自动化

...

2021-01-09 22:00:46 4275

原创 最长上升子序列 最长公共子序列 最大字段和 最长不重复子串

1、最长递增子序列链接:https://www.nowcoder.com/questionTerminal/585d46a1447b4064b749f08c2ab9ce66来源:牛客网对于一个数字序列,请设计一个复杂度为O(nlogn)的算法,返回该序列的最长上升子序列的长度,这里的子序列定义为这样一个序列U1,U2...,其中Ui < Ui+1,且A[Ui] < A[Ui+1]。给定一个数字序列A及序列的长度n,请返回最长上升子序列的长度。测试样例:[2,1,4,3.

2020-09-14 18:43:54 397

原创 0 1背包 填表实现

01背包问题是一个经典的问题了,接下来使用动态规划思想,填表法来解决一下这个问题吧。填表法就基本的操作步骤 :第一步:分析问题的状态变化,将在所有物品里得到的最大价值分割成子问题,子问题:只有一个物品的时候,得到的最大价值,有两个物品的时候得到的最大价值,随着物品数不断增加,每增加一个物品得到的最大的价值。只有一个物品的时候,很容易得到最大的价值,升级为两个物品呢,这时候就有取舍了,就是在袋子当前的容量下要不要将物品放入袋子中?首先取决于,物品能不能放进袋子,如果能放进袋子里,价值怎么来衡量?带

2020-08-25 17:05:54 789

原创 字典树

今天做了一道题时间复杂度超了,看了一种新的解法,记录一下。https://leetcode-cn.com/problems/maximum-xor-of-two-numbers-in-an-array/给定一个非空数组,数组中元素为 a0, a1, a2, … , an-1,其中 0 ≤ ai < 231。找到 ai 和aj最大的异或 (XOR) 运算结果,其中0 ≤ i,j < n。你能在O(n)的时间解决这个问题吗?暴力破解的方式行不通,见到了字典树的解决方式,...

2020-08-25 00:47:57 145

原创 丑数

把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。解析题意:一个数的因子只包含2、3、5,按照题意,因子的含义是,不包含1和它本身,组成它因数的因数。最初的想法是:暴力破解,即逐个去判断一个数是否符合条件,那么,求一个数的因数,这个过程的时间复杂度就很高了,有没有及简便方法呢,肯定有:因为因子就是组成这个数的最小单元,并且这些最小单元已经给出了,那就用这些因子去组...

2020-08-16 16:54:11 263

原创 git 操作

git config配置本地仓库常用git config --globaluser.name、git config --global user.emailgit config --list查看配置详情git init初始一个仓库,添加--bare可以初始化一个共享(裸)仓库git status可以查看当前仓库的状态git add“文件” 将工作区中的文件添加到暂存区中,其中file可是一个单独的文件,也可以是一个目录、“*”、-Agit commit -m '备注信息'将暂存...

2020-08-13 15:13:56 110

原创 将一个数分解成多个加数相加的形式

看到这个命题首先想到的是暴力递归,除了这个办法看起来好像没有更好的办法。。。不知道是不是。举个栗子:比如 4首先想到的是1+1+1+1,来抽象一下,数字n,它的所有组合情况一定是这样的:1+f(n-1)2+f(n-2)3+f(n-3)..................n-1+f(1)哈哈,有没有看到一丝规律呢,其实递归退出条件都被你看到了。再往下写一个 f(n-1) = 1+f(n-1-1)哈哈哈,仿佛看到了亮闪闪的for循环,你说对了,每次递归初始值都是从1开..

2020-08-08 23:18:43 2414

原创 线程池和生产者消费者模型

线程池: 线程池是一个异步进程,程序员只需要把要执行的函数和参数丢进线程池,线程池就能处理这个函数,要注意的是,使用异步线程处理的函数,对临界资源的访问和修改是否满足同步和互斥,一般用异步线程处理的数据最好是线程独有的。 实现方式:首先有一个线程池类,成员变量:条件变量、锁、线程安全队列、最大线程数。成员函数:构造、析构、线程处理函数。(条件变量和锁分别保护临界资源“队列”的同步和互斥性)。一个函数任务类,通过这个任务类统筹管理要出用异步线程处理的函数,包括函数名、参数,可以直接将任务类...

2020-08-02 14:02:49 866

原创 socket详解

套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口。套接字的接口介绍:1、创建套接字#include <sys/types.h>/* See NOTES */#include <sys/socket.h>int socket(int domain, int type, int protocol);domain:地址域--选择使用哪种地址结构,iPV...

2020-07-12 23:37:24 389

原创 select / poll / epoll 讲解

典型IO五种典型的IO模型/多路转接IO模型:select/poll/epoll五种典型IO模型:阻塞IO / 非阻塞IO / 信号驱动IO / 异步IO / 多路转接IO IO的过程就是等待与数据拷贝的过程阻塞IO:发起IO调用后,若当前不具备IO条件则阻塞等待,信号驱动IO:自定义一个IO信号的处理方式,收到IO信号则认为IO就绪,在信号的回调函数中发起IO调...

2020-07-12 16:09:42 216

原创 回溯

今天理解了一点回溯的相关知识,记录一下。链接:https://www.nowcoder.com/questionTerminal/57d85990ba5b440ab888fc72b0751bf8?answerType=1&f=discussion来源:牛客网给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],...,k[m]。请问k[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,

2020-07-03 23:34:11 204

原创 2-3树 B树 b+树

STL里面的map和set底层结构都是红黑树,这种树虽然达到了近乎完美的平衡性,但是在维护这颗树上可是花了很大的时间在上面,在数据库海量数据的情况下,一个在一个红黑树插入一个节点可能要耗费比较长的时间,我们发现极致的平衡,在海量数据面前好像并不怎么适用,所以聪明的科学家就提出2-3树,这种数据结构。它是B树,B+树的祖先,让我们一窥它的奥秘。2-3查找树为了保证查找树的平衡性,我们需要一些灵活性,因此在这里我们允许树中的一个结点保存多个键。确切地说,我们将一棵标准的二叉查找树中的结点称为2-结点(含

2020-06-26 22:42:43 1163

原创 谈谈HTTP的那点事

HTTP作为应用广泛的应用层协议,接下来就让我们来揭开她神秘的面纱。一、URL结构HTTP使用统一资源标识符(URI)来传送数据和建立连接,URL(统一资源定位符)是一种特殊种类的URI,包含了用于查找资源的足够信息,我们一般使用的就是URL,URL一般包含以下几个部分。https://mp.csdn.net/console/editor/html/1069689831、协议部分:该URL协议部分采用的是HTTPS协议,后面的//为分隔符。2、域名部分:域名是mp.csdn.ne

2020-06-26 15:54:58 202

原创 无重叠区间

最近做题发现无重叠区间出现的比较多,在此做个记录,但愿你,思维活跃,逻辑缜密,多的不扯,坚持刷题^_^。https://leetcode-cn.com/problems/non-overlapping-intervals/给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。分析题意,说的是无重叠区间,那就是利用区间数字的大小做判断呗,所以对整体数组排序不会对整体结果造成影响。但是对做题人来说那就简单多了,有时候,看似没有规律的事情,分析到它的本质,就有可能发现题中的规律,千万不要

2020-06-24 00:09:40 224

原创 滑动窗口详解

算法简介:滑动窗口,顾名思义,就是有一个大小可变的窗口,左右两端方向一致的向前滑动(右端固定,左端滑动;左端固定,右端滑动)。可以想象成队列,一端在push元素,另一端在pop元素,如下所示:假设有数组[a b c d e f g h]一个大小为3的滑动窗口在其上滑动,则有:[a b c] [b c d] [c d e] [d e f] [e f g] [f g h] 使用范围:字符串或者子数组的问题。 求满足某一条件

2020-06-22 21:11:03 1540

原创 unittest一站式学习

unittest是python自带的自动动化测试库,使用的非常广泛,很容易上手。作为一名优秀的码农,不会使用unittest构建自动化测试框架怎么行呢,下文就让作者带你手把手构建自己的自动化测试框架吧。首先来了解一下unittest的基本框架吧,unittest由四个基类:test fixture, test case, test suite, test runner组成,下图展示了他们之间的一些关系。一个TestCase的实例就是一个测试用例,什么是测试用例呢,就是一个完整的测试流程,包括测试

2020-06-21 21:43:05 240

原创 TCP协议详解

TCP协议工作在传输层,是与UDP协议齐名的传输控制协议,让我们一起来了解她的前生今世。首先讲一下传输层是什么东西。传输层位于TCP/IP五层协议模型中,应用层和网络层之家,应用层就是我们能用真切看到的一些应用程序,随着互联网的出现,计算机之间可以使用它进行沟通了,那么问题来了,不同计算机之间怎么沟通成了一个急需解决的问题,ISO提出了七层通信模型,但是由于太复杂被弃用,现在被人们广泛使用的是TCP/IP五层协议模型。一次通信就像是一次寄快递的过程,包裹上必须有,发信人地址,电话,收信人地址电话,在

2020-06-20 21:54:35 2158

原创 守望相助

一、项目简介: 最近学完了Linux操作系统部分的知识,想做个项目整合一下所学的知识,发现自己平时学习过程中在电脑上保存了很多文件,但是电脑平时又不方便携带,想着能不能将文件保存在云端,自己不再电脑旁边的时候能够通过手机浏览器获取文件。说干就干吧。首先放出我的项目设计图。 项目的总体设计是:云服务器上的服务端用来将客户端上传的文件进行压缩存储,...

2020-04-01 11:20:35 303

原创 C++基础知识全面总结

需要原图的老铁,留下邮箱。

2020-03-24 12:42:11 266 1

原创 守口如瓶

一、项目简介 传统的对称加密,是甲方使用一种规则加密,乙方要使用相同的规则解密。这种加密方式的关键在于保证解密规则的安全性,往往这是一个让人头疼的问题。在1976年,两位美国的计算机学家Whitfifield Diffie和 Martin Hellman,提出了新的构想,在不传递加密规则的情况下对对数据进行加密。称为“非对称加密算法”,笔者对此非常感兴趣,决定自己实现,探索其中的奥秘。...

2020-03-23 18:35:31 247

原创 手撕一个二分查找你可以做到的

二分查找作为一种非常高效的查找算法,是非常值得我们学习和掌握的。首先二分查找是基于一个排序数组或者一个排序数组经过一定规则改变过的数组,这个是使用二分查找的前提。普通的二分查找,比如在排序数组中找一个数,算法通过不断的以二倍的方式缩小待查找的区间,所以提高查找的效率到O(long n)举例普通的二分查找int binarySearch(int[] nums, int target...

2020-03-17 14:03:31 208

原创 动态规划总结

动态规划是一种运筹学的思想,体现在程序上面就是通过状态转移方程穷举出所有的情况。状态转移方程的设定思想类似于数学证明上的“数学归纳法”,假设结果是正确的,假设的条件也是正确的,通过假设的条件和结果,推导出结论。说白了,状态转移方程是F(i)=F(i-1)+当前操作;当前的结果,仅仅取决于上一步的结果和本次的决定。解决动态规划问题中的 dp table(动态规划表)是一种常用的解法,(并...

2020-03-02 16:29:04 294

原创 回顾八大排序算法

常见排序算法一、直接插入排序:插入排序是从数组的首元素开始,遍历整个数组,遍历到每个元素的时候,将这个元素依次和它前面的元素进行比较,如果按照从小到大的方式进行排序的话,要求前面的所有元素的值小于它本身,使用一个中间变量,将这个元素保存起来,将大于它的元素依次往...

2020-02-14 16:42:55 937

原创 朋友圈

班上有N名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B的朋友,B 是 C的朋友,那么我们可以认为 A 也是 C的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个N * N的矩阵M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已知的朋友圈总数。示...

2020-02-09 13:03:49 248

原创 并查集

并查集并查集在逻辑上是一片森林,在物理上是一个数组。与堆类似,堆在逻辑上是二叉树,在物理上是数组,并查集用于解决人际关系的问题。下面通过一个实际的社会关系来认识并查集。如上图所示,一共有三个朋友圈(一般假设朋友的朋友也是朋友,可以组成朋友圈),使用并查集来...

2020-02-09 12:48:46 202

原创 岛屿数量 DFS

https://leetcode-cn.com/problems/number-of-islands/给定一个由'1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。输入: 11110 11010 11000 00000 输出:1力扣的题题目简短,首先应该将题目的意思...

2020-02-08 18:53:17 380

原创 BFS广度优先遍历详解

广度优先遍历 ---一石激起千层浪和...

2020-02-08 12:44:50 1952 1

原创 DFS搜索算法详解

深度优先搜索 ---一条道走到黑DFS其实叫深度...

2020-02-07 14:38:03 25588 1

原创 字符串通配符(动态规划超详细填表)

链接:https://www.nowcoder.com/questionTerminal/43072d50a6eb44d2a6c816a283b02036来源:牛客网问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。要求:实现如下2个通配符:*:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写。下同...

2019-12-08 22:46:51 560

原创 最短编辑距离(动态规划超详细填表法)

链接:https://www.nowcoder.com/questionTerminal/9649617be3bf42288f50758df4310655来源:牛客网UNIX系统下有一个行编辑器ed,它每次只对一行文本做删除一个字符、插入一个字符或替换一个字符三种操作。例如某一行的内容是“ABC”,经过把第二个字符替换成“D”、删除第一个字符、末尾插入一个字符“B”,这三步操作后,内容就...

2019-12-08 20:13:03 932

空空如也

空空如也

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

TA关注的人

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