自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (2)
  • 收藏
  • 关注

转载 开放API接口签名验证方式(开放平台+APP)

接口安全问题请求身份是否合法?请求参数是否被篡改?请求是否唯一?AccessKey&SecretKey (开放平台)请求身份为开发者分配AccessKey(开发者标识,确保唯一)和SecretKey(用于接口加密,确保不易被穷举,生成算法不易被猜测)。防止篡改参数签名按照请求参数名的字母升序排列非空请求参数(包含AccessKey),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA;在stringA最后拼接上Se

2021-07-22 15:30:07 1465

原创 对软件测试人员的要求

对软件测试人员的要求朱少民老师:​ 不少计算机软件业界人士认为,对软件测试人员要求比较低、容易招聘,只要他们会操作计算机、有一定的软件经验就可以了。他们认为,软件测试人员要一步一步操作所要测的软件,就能发现程序中的问题;或者依据软件产品规格设计说明书,通过和软件的实际表现进行对比就能够发现两者不一致的地方,发现缺陷,这些都不需要什么技术。​ 这种想法是错误的。测试工作的确是一项技术工作,不局限与功能测试,在进行集成测试和系统测试时,测试人员必须明白被测软件系统的实现原理、方法以及设计的各种第三方平台、

2021-05-20 20:21:04 1050 6

转载 使用Wireshark抓取https加密报文

Wireshark抓取https加密报文原文链接:https://segmentfault.com/a/11900000235689021. 通过浏览器的 SSL 日志功能目前该方案只支持Chrome和Firefox浏览器,通过设置SSLKEYLOGFILE环境变量,可以指定浏览器在访问SSL/TLS网站时将对应的密钥保存到本地文件中,有了这个日志文件之后wireshake就可以将报文进行解密了。首先设置SSLKEYLOGFILE环境变量:配置wireshake,首选项->Prot

2021-05-08 11:29:17 1327

原创 Selenium框架学习

Selenium框架学习参考资料:https://www.cnblogs.com/yyoba/p/12048866.html一、简介Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),[Mozilla Firefox](https://baike.baidu.com/item/Mozilla Firefox/3504923),Safari,Google Chrome,Opera,

2021-04-05 14:13:43 313 1

原创 HashMap集合(高级)

该文为课程笔记课程连接:bilibili:黑马程序员笔记参考:链接一、HashMap集合简介​ HashMap基于哈希表的Map接口实现,是以key-value存储形式存在,即主要用来存放键值对。HashMap的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。​ JDK1.8之前 HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决hash冲突(两个对象调用的hashCode方法计算的哈希码值一

2021-03-30 15:22:51 554

转载 ArrayList和LinkedList的区别、优缺点以及应用场景

https://blog.csdn.net/TTTZZZTTTZZZ/article/details/84916281?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.cont

2021-02-19 18:06:00 226

原创 剑指Offer10 斐波那契数列(普通递归,记忆化递归,动态规划)

剑指Offer10 斐波那契数列(普通递归,记忆化递归,动态规划)/** * @version V1.0 * @ClassName:Offer10_1 * @Description: 斐波那契数列 * @author:Daniel * @date:2021/1/25 上午10:59 */public class Offer10_1 { public static void main(String[] args) { System.out.println(fib3(4

2021-02-05 11:47:23 186 1

原创 LeetCode26 27 删除排序数组中的重复项、移除元素

双指针常见用法一、双指针法将时间复杂度O(n^2)的解法优化为 O(n)的解法,可以将时间复杂度一个数量级。27 移除元素15 三数之和18 四数之和二、 双指针来记录前后指针实现链表反转206 反转链表三、 使用双指针来确定有环142 环形链表2LeetCode26 删除排序数组中的重复项题目给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1)

2021-01-25 10:34:01 168

原创 剑指Offer06 从尾到头打印链表

剑指Offer06 从尾到头打印链表题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。思路​

2021-01-20 17:05:03 135

原创 剑指Offer05 替换空格

剑指Offer05 替换空格题目请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."限制:0 <= s 的长度 <= 10000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码/** * @v

2021-01-20 15:16:15 165

原创 剑指Offer03 数组中重复的数字

剑指Offer03 数组中重复的数字记录四种解法,逐步优化题目找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-

2021-01-20 10:25:22 136

转载 springboot项目中classpath路径到底指哪里?

https://blog.csdn.net/wppwpp1/article/details/106628669/https://www.cnblogs.com/eden-libinglin/p/13831822.htmlhttps://blog.csdn.net/qq_37434832/article/details/100096485

2020-12-18 09:54:43 1262

转载 Java静态内部类与非静态内部类的区别

Java静态内部类与非静态内部类的区别1 static 静态修饰符在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的。static修饰表示静态的,在类加载时JVM会把它放到方法区,被本类以及本类中所有实例所公用。在编译后所分配的内存会在一直存在,直到程序退出内存才会释放这个空间。如果一个被所有实例公用的方法被申明为static,那么就可以节省空间了,不用每个实例初始化的时候都被分配到内存。2.内部类定义在一个类内部的类叫内部类,包含内部类的类称为外部类。内部类可以声明public、pr

2020-12-17 10:27:40 361

原创 【尚硅谷数据结构】第 10 章 树结构的基础部分

1、二叉树1.1、为什么需要二叉树1.1.1、数组存储方式的分析优点: 通过下标方式访问元素, 速度快。 对于有序数组, 还可使用二分查找提高检索速度缺点: 如果要检索具体某个值, 或者插入值(按一定顺序)会整体移动,效率较低1.1.2、链式存储方式的分析优点: 在一定程度上对数组存储方式有优化(比如: 插入一个数值节点, 只需要将插入节点, 链接到链表中即可,删除效率也很好)。缺点: 在进行检索时, 效率仍然较低, 比如(检索某个值, 需要从头节点开始遍历)1.1.3、树存储方

2020-12-16 10:21:39 265

原创 【尚硅谷数据结构】第 9 章 哈希表

第 9 章 哈希表1、Google 上机题看一个实际需求, google 公司的一个上机题:有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id, 性别, 年龄, 住址…),当输入该员工的 id 时,要求查找到该员工的所有信息要求:不使用数据库,尽量节省内存,速度越快越好 => 哈希表(散列)2、哈希表基本介绍散列表(Hash table, 也叫哈希表) ,是根据关键码值(Key value)而直接进行访问的数据结构。它通过把关键码值映射到表中一个位置来访问记录,

2020-12-16 10:13:34 199

原创 【尚硅谷数据结构】第 8 章 查找算法

1、查找算法介绍顺序(线性)查找二分查找/折半查找 (前提是数组有序)插值查找斐波那契查找2、线性查找顺序查找代码public class SeqSearch { public static void main(String[] args) { int[] arr = {1, 9, 11, -1, 34, 89}; // 没有顺序的数组 int i = seqSearch(arr,11); if (i == -1) {

2020-12-16 10:11:49 188

转载 String、StringBuffer和StringBuilder区别

String、StringBuffer和StringBuilder的区别:StringString类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。这个是String类的解释,之前看到这个情况,不能理解上述的解释,如下String a = "123";a = "456";// 打印出来的a为456System.out.println(a)看到这里,不明白了,这不是明明已经对他进行修改了吗?为什么还说他是一个不可变类呢?经过学习

2020-12-11 11:20:09 6907 1

原创 CentOS7防火墙常用设置指令

一、防火墙的开启、关闭、禁止命令(1)设置开机启用防火墙systemctl enable firewalld.service(2)设置开机禁用防火墙systemctl disable firewalld.service(3)启动防火墙systemctl start firewalld(4)关闭防火墙systemctl stop firewalld(5)检查防火墙状态systemctl status firewalld 二、使用firewall-cmd配置端口(1)查看防火墙

2020-12-10 09:29:45 470

原创 【尚硅谷数据结构】第 7 章 排序算法

1、排序算法介绍1.1、排序算法的简介排序也称排序算法(Sort Algorithm), 排序是将一组数据, 依指定的顺序进行排列的过程。1.2、排序算法的分类内部排序:指将需要处理的所有数据都加载到内部存储器(内存)中进行排序。外部排序法:数据量过大, 无法全部加载到内存中, 需要借助外部存储(文件等)进行排序。常见的排序算法分类2、算法的复杂度2.1、时间复杂度的度量方法事后统计的方法:这种方法可行, 但是有两个问题:一是要想对设计的算法的运行性能进行评测,

2020-12-01 09:48:38 376

原创 Java多线程死锁案例及分析

1.Demo/** * @version V1.0 * @ClassName:DeadLockTest * @Description: 死锁测试 * @author:Daniel * @date:2020/11/28 下午9:37 */public class DeadLockTest implements Runnable{ A a = new A(); B b = new B(); public void init() { Thread.curr

2020-11-28 22:17:31 199

原创 【尚硅谷数据结构】第 5 章 栈

1、栈的基本介绍1.1 栈的实际需求请计算表达式:[7**2*2-5+1-5+3-3] 的值请问: 计算机底层是如何运算得到结果的? 注意不是简单的把算式列出运算,因为我们看这个算式 7 * 2 * 2 - 5,但是计算机怎么理解这个算式的对计算机而言, 它接收到的就是一个字符串, 我们讨论的是这个问题:栈1.2 栈的基本性质栈的英文为(stack)栈是一个先入后出(FILO-First In Last Out)的有序列表栈(stack)是限制线性表中元素的插入和删除只能

2020-11-25 16:21:23 306

原创 【尚硅谷数据结构】第4章 链表

第 4 章 链表1、链表(Linked List)介绍1.1、内存结构内存上来看:链表存储空间不连续(不像数组)1.2、逻辑结构逻辑上来看:链表属于线性结构1.3、链表特点链表以节点的方式来存储,是链式存储data域存放数据,next域指向下一个节点如内存结构图所示,链表的各个节点不一定是连续存储链表分==带头节点==和**没有头结点**的链表2、链表应用场景2.1、水浒英雄榜使用带 head 头的单向链表实现【水浒英雄排行榜管理】2.2、链表节点定义n

2020-11-10 14:14:51 435

转载 为什么打印ArrayList对象输出的不是地址?

为什么在打印一个ArrayList对象时,输出的不是此对象的地址,而是该集合中的值?是如何实现的?分析:Object类是Java中其他所有类的基类,没有Object类Java面向对象无从谈起,所有类都是Object类的直接子类或间接子类而在Object类的toString()方法中,返回的是 getClass().getName() + "@" + Integer.toHexString(hashCode())也就是地址值,打印ArrayList对象没有输出地址值,便可知道ArrayList重写了.

2020-11-06 16:54:57 2505

原创 【尚硅谷数据结构】第3章 稀疏数组与队列

第3章 稀疏数组与队列1、稀疏数组1.1 实际需求因为该二维数组的很多值是默认值 0 ,因此记录了很多没有意义的数据,我们将其转为稀疏数组进行存储1.2 稀疏数组的应用1.2.1 稀疏数组的处理方法稀疏数组把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模稀疏数组也是二维数组,行数由原数组的数据决定,列数一般为 3 列稀疏数组的第一行记录原数组一共有几行几列,有多少个不为零的值第一列:原数组的行数第二列:原数组的列数第三列:原数组有多少个不

2020-11-05 20:33:01 388

原创 Java中数组的定义方式

Java中数组的定义方式一维数组方法一int[] arr1 = new int[3]; // 给定数组长度,数值默认为0,长度必须给定ints[0] = 1;ints[1] = 2;ints[2] = 3;方法二int[] arr2 = new int[]{1,2,3}; // 创建数组时赋值方法三int[] arr3 = {1,2,3}; // 直接赋值,不使用new关键字二维数组动态初始化// 三种形式,第一种为常用// m为行数,n为列数,其中n可

2020-11-05 14:08:53 287

转载 ArrayList和LinkedList哪个更占空间?

一般情况下,LinkedList的占用空间更大,因为每个节点要维护指向前后地址的两个节点,但也不是绝对,如果刚好数据量超过ArrayList默认的临时值时,ArrayList占用的空间也是不小的,因为扩容的原因会浪费将近原来数组一半的容量,不过,因为ArrayList的数组变量是用transient关键字修饰的,如果集合本身需要做序列化操作的话,ArrayList这部分多余的空间不会被序列化。原文链接:https://zhuanlan.zhihu.com/p/166686856...

2020-10-18 14:24:10 466

原创 狂神说 Docker笔记

Docker概述Docker为什么出现?Docker的思想来自于集装箱;JRE – 多个应用(端口冲突)-- 原来都是交叉的!隔离 : Docker核心思想,打包装箱,每个箱子是互相隔离的。Docker通过隔离机制,可以将服务器利用到极致!Docker的历史Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。Docker能做什么之前的虚拟机技术虚拟机技术的缺点

2020-09-05 16:32:27 11222 3

转载 理解Java中字符流与字节流的区别

1. 什么是流Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列。和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序列的对象被称为输入流;能够向其写入一个字节序列的对象被称为输出流。2. 字节流Java中的字节流处理的最基本单位为单个字节,它通常用来处理二进制数据。Java中最基本的两个字节流类是InputStream和OutputStream,它们分别代表了组基本的输入字节流和输出字节流。InputStream类与Ou

2020-09-02 16:24:21 247

原创 黑马 SpringData JPA笔记

课程链接:https://www.bilibili.com/video/BV1Y4411W7Rx?from=search&seid=415951199875837982第一 orm思想​ 主要目的:操作实体类就相当于操作数据库表​ 建立两个映射关系:​ 实体类和表的映射关系 实体类中属性和字段的映射关系第二 hibernate框架介绍​ Hibernate是一个开放源代码的对象关系映射框架,​ 它对JDBC进行了非常轻量级的对象封装,​ 它将POJO与数据库表建立映射关系,

2020-08-24 14:29:03 5995 7

原创 狂神说 Redis笔记

狂神说 Redis一、Nosql概述为什么使用Nosql1、单机Mysql时代90年代,一个网站的访问量一般不会太大,单个数据库完全够用。随着用户增多,网站出现以下问题数据量增加到一定程度,单机数据库就放不下了数据的索引(B+ Tree),一个机器内存也存放不下访问量变大后(读写混合),一台服务器承受不住。2、Memcached(缓存) + Mysql + 垂直拆分(读写分离)网站80%的情况都是在读,每次都要去查询数据库的话就十分的麻烦!所以说我们希望减轻数据库的压力,我们

2020-08-20 10:46:54 59115 38

原创 【Mac】Alfred4有道翻译的workflow实现

一、在Github下载开源项目强烈推荐:https://github.com/whyliam/whyliam.workflows.youdao一定要找到对应自己Alfred版本的项目下载!作者给了相信的安装、配置方式,但是作者对于有道智云的配置没有做详细介绍,在此给大家做几点补充二、注册有道智云应用注册有道智云http://ai.youdao.com/新建应用新建一个自然语言翻译服务将翻译服务绑定到该应用查看应用的ID和密钥,配置到workflow..

2020-08-12 21:47:26 3068

原创 【Mac】2020 Homebrew安装避坑指南

【Mac】2020Homebrew安装避坑指南前言​ 博主Homebrew安装了很多次,网上的教程有很多都是坑,而且是几年前的安装方法,这里把我安装成功的方法整理推荐给大家,作者都是实时更新的不用担心版本陈旧的问题。​ Homebrew官网安装命令采用的github托管,所以安装比较慢,甚至安装失败。网上有很多解决安装慢的问题,对比之后我推荐大家使用国内脚本一键安装,大佬托管在gitee上的脚本(目前已经近800star),脚本和源都采用的国内镜像,安装和更新都很快。安装方法一键安装https

2020-08-07 17:45:41 331

原创 如何连接云服务器上的redis

1. 修改redis的配置文件vim /usr/local/bin/myconfig/redis.conf将只绑定本地注释保护模式改为 no允许后台运行2. 开放端口6379firewall-cmd --zone=public --add-port=6379/tcp --permanet重启防火墙服务systemctl restart firewalld.service3. 阿里云服务器控制台配置安全组4. 重启redis-server[root@Alib

2020-08-04 16:50:30 1986 3

转载 Redis分布式锁实现秒杀业务(乐观锁、悲观锁)

链接:https://www.cnblogs.com/jasonZh/p/9522772.html

2020-08-04 12:10:28 290

原创 linux命令ps aux|grep name和ps -ef|grep name有什么区别?

ps -aux:用BSD的格式来显示 java这个进程显示的项目有:USER , PID , %CPU , %MEM , VSZ , RSS , TTY , STAT , START , TIME , COMMANDps -ef :是用标准的格式显示java这个进程显示的项目有:UID , PID , PPID , C , STIME , TTY , TIME , CMD举例:ps -ef | grep -i redis查看含有redis字符串的进程,-i 参数为忽略大小写...

2020-08-03 20:39:40 429

转载 对Redis是单线程的理解

前言当面试官问你Redis是单线程还是多线程?你肯定会说:单线程!然后他就会问:单线程为啥还这么快?你就会说出这几条原因:1、Redis是基于内存的,内存的读写速度非常快,从内存中拿数据比从磁盘上更快。2、Redis是基于I/O多路复用(非阻塞IO),可以摆脱多线程上下文切换消耗的影响,你如果真这么说 那她可能也许大概不会太满意个人理解redis分客户端和服务端,一次完整的redis请求事件有多个阶段:1、客户端到服务器的网络连接2、redis读写事件发生3、redis服务端的数据处理(单

2020-08-03 10:31:08 257

原创 sklearn随机森林模型参数解释

sklearn随机森林模型关键参数解释n_estimators​ 随机森林决策树的数目,n_estimators越大越好,但占用的内存与训练和预测的时间也会相应增长,且边际效益是递减的,所以要在可承受的内存/时间内选取尽可能大的n_estimators。而在sklearn中,n_estimators默认为10。criterion​ gini or entropy 属性划分计算方式,gini系数和信息熵;splitterbest or random前者是在所有特征中找最好的切分点,后者

2020-08-02 17:18:04 2325

原创 狂神说 Linux

课程地址:https://www.bilibili.com/video/BV187411y7hFLinux一切皆文件:文件就 读、写、权限三种操作一、Linux常用指令关机关机sync # 将数据由内存同步到硬盘中。shutdown # 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:shutdown –h 10 # 这个命令告诉大家,计算机将在10分钟后关机shutdown –h now # 立马关机shutdown –h 20:25

2020-07-31 10:27:18 3471

原创 狂神说 MyBatisPlus 学习笔记

狂神说 MyBatisPlus 学习笔记一、快速入门文档:https://mp.baomidou.com/使用第三方组件:导入对应依赖研究依赖如何配置代码如何编写提高扩展技术能力步骤1、创建数据库 mybatis_plus2、创建user表DROP TABLE IF EXISTS user;CREATE TABLE user( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NU

2020-07-31 10:18:27 10065 3

转载 Linux和UNIX的关系及区别(详解版)

原文链接:http://c.biancheng.net/view/707.htmlUNIX 与 Linux 之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞生于 20 世纪 90 年代初,可以说 UNIX 是操作系统中的"老大哥",后来的 Windows 和 Linux 都参考了 UNIX。现代的 Windows 系统已经朝着“图形界面”的方向发展了,和 UNIX 系统有了巨大

2020-07-29 12:00:01 307

IDEA常用快捷键设置(根据eclispe设置)直接导入就可以使用

根据Eclipse常用更快捷设置 ,有48个快捷键,让你从快速上手IDEA,直接在项目中导入就可以使用,简单快捷,附说明文档和常用模板设置。

2020-07-03

jdbc公共类.txt

使用java连接mysql数据库,公共类为抽取公共代码可以实现获取连接、查询公共方法、更新公共方法、释放资源等功能,经过测试安全可靠。

2020-06-18

空空如也

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

TA关注的人

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