2021年之前写的
曾经写过的博客
沙拉路酱
热爱就是把一件事努力做到极致
展开
-
《利用python进行数据分析》第九章 绘图与可视化
9.1简明matplotlib API入门9.1.1图片与子图matplotlib绘制的图位于图片(Figure)对象中,使用plot.figure生成一个新图 fig = plt.figure()#不会有任何显示,无法用空白的图片绘图 需要使用add_subplot创建一个或者多个子图(subplot)fig = plt.figure()<matplotlib.figur...原创 2019-03-07 21:18:00 · 1142 阅读 · 0 评论 -
《利用python进行数据分析》第十三章 python建模库的介绍
13.1 pandas与模型代码的接口将Dataframe转换为Numpy数组,使用其.values属性转换回一个DataFrame,可以传递一个二维ndarray,可带有列名:最好当数据是均匀的时候使用.values属性,例如全是数值类型 如果数据是不均匀的,结果会是python对象的ndarray对于一些模型,如果只想使用列的子集,使用loc,用values作索引...原创 2019-03-15 20:53:40 · 566 阅读 · 0 评论 -
一文解决所有PCA问题——这是我看过最好的讲解PCA理论文章
转载:http://blog.codinglabs.org/articles/pca-tutorial.htmlPCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。网上关于PCA的文章有很多,但是大多数只描述了PCA的分析过程,而没有讲述其中的...转载 2019-05-05 15:33:05 · 4430 阅读 · 0 评论 -
操作系统基础知识
1、进程和线程进程:并发执行的程序,在执行过程中分配和管理资源额基本单位,是一个动态概念,竞争计算机系统资源的基本单位线程:线程是进程的一个执行单元,是进程内部的调度实体。是比进程更小的独立运行的基本单位。线程也是轻量级进程。一个程序至少一个进程,一个进程至少一个线程。线程是进程划分成的更⼩的运⾏单位,⼀个进程在其执⾏的过程中可以产⽣多个线程。线程和进程最⼤的不同在于基本上各进程是独⽴的,⽽各线程则不⼀定,因为同⼀进程中的线程极有可能会相互影响。线程执⾏开销⼩,但不利于资源的管理和保原创 2020-08-07 16:12:58 · 143 阅读 · 0 评论 -
Linux常用命令
转载 2020-08-04 14:29:09 · 95 阅读 · 0 评论 -
MySQL数据库的理解
0、索引0.1、什么是索引?特殊文件:包含对数据库中所有记录的引用指针InnoDB的索引:表空间的一个组成部分0.2 索引的优点:加快的对数据的检索速度 过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能缺点:时间方面:创建索引和维护索引要耗费时间,具体地,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,会降低增/改/删的执行效率; 空间方面:索引需要占物理空间索引类型:主键索引、唯一索引、普通索引、全文索引;0.3 索引的数据结构(1)原创 2020-08-25 16:58:50 · 486 阅读 · 0 评论 -
java集合【二】
1、java容器:2个Collection:存储对象的集合Map:存储着键值对(两个对象)的映射表collection 1. Set TreeSet(有序,唯一): 基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。 但是查找效率不如 HashSet,HashSet 查找的时间复杂度为 O(1),TreeSet 则为 O(logN)。 HashSet(无序,唯一): 基于哈希表实现,支持快速查找,但不支持有序性操作。 并且失去了元素的插入顺序信息,也.原创 2020-08-08 20:39:22 · 186 阅读 · 0 评论 -
谈谈你对JAVA面向对象编程思想的理解
面向过程:分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象:把构成问题的事物分解成一个个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。举个例子——下棋:面向过程:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用不同的方法来实现。面向对象:1、黑白双方,这两方的行为是一模一样的原创 2020-08-19 17:19:28 · 537 阅读 · 0 评论 -
对spring的理解
1、控制反转——IoC(Inverse of control)设计思想:将原本程序中创建对象的控制权,交给Sring框架管理使用某个对象,只需从Spring容器中获取需要使用的对象,不关心对象的创建过程,把创建对象的控制权交给了SpringSpring IoC 容器:管理和容纳我们开发的各种各样的BeanSpring IoC 容器的设计:基于以下两个接口:(1)、BeanFactory (最底层的接口)(2)、ApplicationContextApplicationCo原创 2020-08-20 11:10:52 · 196 阅读 · 0 评论 -
抽象类和接口
1、接口和抽象类抽象类和接口的对比抽象类是用来捕捉子类的通用特性的。接口是抽象方法的集合。从设计层面来说,抽象类是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。相同点:接口和抽象类都不能实例化 都位于继承的顶端,用于被其他实现或继承 都包含抽象方法,其子类都必须覆写这些抽象方法不同点:参数 抽象类 接口 声明 抽象类使用abstract关键字声明 接口使用interface关键字声明 实现 子类使用extends关键字来继原创 2020-08-31 16:52:34 · 168 阅读 · 0 评论 -
java基础【一】
1、重载和重写的区别:重载:overload 同一个方法能够根据输入数据的不同,做出不同的处理发生在同一个类中,方法名必须相同,参数类型不同,个数不同,顺序不同,方法返回值和访问修饰符可以不同。 重载就是同一个类中有多个名字相同的方法,但参数各不相同,方法根据不同的传参来执行不同的逻辑处理。 让类以统一的方式处理不同类型数据的一种手段 重载Overloading是一个类中多态性的一种表现 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性重写:over.原创 2020-08-08 17:21:58 · 451 阅读 · 0 评论 -
进程和线程的区别与联系
1、进程和线程的区别与总结根本区别:进程是操作系统资源分配的基本单位,线程是处理器(CPU)任务调度和执行的基本单位资源开销:每个进程都有独立的代码和数据空间(程序的上下文)程序之间的切换会有较大的开销; 同一类线程共享代码和数据空间,每个线程都有自己独立运行的栈和程序计数器(PC),线程之间的切换开销小包含关系:一个进程有多个线程,执行过程由多个线程共同完成内存分配:同一个进程的线程共享本进程的地址空间和资源;进程之间的地址空间和资源是相互独立的;...原创 2020-08-10 20:24:07 · 2812 阅读 · 0 评论 -
JVM理解与总结
0、java运行时数据区域线程私有:虚拟机栈、本地方法栈、程序计数器线程共享:堆、方法区、直接内存(非运行时数据区的一部分)(1)堆里面存放的是我们new的对象;(2)jvm栈是java方法运行时所需要使用的空间;(3)本地方法栈是native方法运行时所需要使用的空间;(4)方法区是用来存储类元信息:类方法属性信息、静态变量、常量等属性值(5)程序计数器主要存储的是程序运行指令当前所处的一个位置。用于控制程序的执行1、程序计数器:(1)字节编码器通过改变计数器的值选择下原创 2020-08-24 17:06:35 · 154 阅读 · 0 评论 -
进程死锁的概念,必要条件,处理方法
0、死锁的概念和产生原因概念:1、多个并发进程因争夺系统资源而产生相互等待的现象。 2、是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法 再向前推进原理:当一组进程中的每个进程都在等待某个事件发生,而只有这组进程中的其他进程才能触发该事件,这就称这组进程发生了死锁。 产生原因:a、竞争资源产生死锁中的竞争资源之一指的是竞争不可剥夺资源(例如:系统中只有一台打印机,可供进程...原创 2020-08-11 09:56:26 · 1316 阅读 · 0 评论 -
Cookie和Session的区别与联系
1、前言:http的无状态和无连接无连接:限制每次连接只处理一个请求,服务端处理完客户端的请求,并收到客户端的响应后,就断开连接无状态:没有记录用户的登录状态,在淘宝上点击添加购物车、点击收藏、点击我的订单每一步就必须得重新登录,非常麻烦2、解决方法:1)在用户端添加一个cookie,标记访问者的身份2)在服务器增加一个缓存区能同时解决数据缓存问题(1)缓存区作为一个数据缓冲,就不用一次次地访问数据库,浪费大量计算机资源,而是在最后统一归入数据库(2)缓存区,你就不用把临时的数据原创 2020-08-14 11:08:53 · 178 阅读 · 0 评论 -
计算机网络总结【一】
1、浏览器中输入URL会发生什么? 1、URL解析和DNS查询 DNS:将主机名和域名解析成IP地址 首先判断你输入的是一个合法的 URL 还是一个待搜索的关键词,并且根据你输入的内容进行自动完成、字符编码等操作 DNS查询: 2、浏览器和服务器建立TCP连接 三次握手,建立TCP连接,形成客户端到服务器端的稳定的通道 3、HTTP发送请求 http请求包含请求头,也可能包含请求体两部分,请求头中包含我们希望对请求文件的操作的信息,请求体中包含传递给后台的原创 2020-08-04 17:19:28 · 247 阅读 · 0 评论 -
TCP/IP 、HTTP、Socket的区别与联系
1、Socket和http的区别http: 如何封装数据;基于TCP协议,简单的对象访问协议,对应于应用层;(货物)tcp协议:数据在网络中的传输;对应于传输层;(卡车)IP协议:对应网络层;数据在网络中的传输(高速公路)TCP/IP:解决数据如何在网络中传输,HTTP:如何包装数据Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。Http连接:http连接就是所谓的短连接,及客户端向服务器原创 2020-08-10 17:37:24 · 2086 阅读 · 0 评论 -
理解DNS协议
1、IP—域名TCP/IP协议用IP地址+端口号,确定网络中某台计算机中的某个程序,但IP地址太长不方便记忆,出现了域名:www.baidu.comhosts文件:保存域名—IP对应关系早期,互联网信息中心管理hosts文件,有一个新的计算机想加入网络,或IP地址要修改需要到信息中心申请修改,其他计算机也需要定期修改,保证大家都能正常上网。以上,太麻烦。2、DNS系统DNS系统:管理维护系统内的每个主机IP和主机名的对应关系;如果,一个新的计算机想要加入网络,将该信息原创 2020-08-29 11:12:07 · 218 阅读 · 0 评论 -
HTTP协议面试题总结
1、状态码200 请求正常处理 204 请求成功,但没有实体的主体可以返回 206 get范围请求已经成功处理 301 永久重定向,资源已永久分配新URL 302 临时重定向,资源已临时分配新URL 303 临时重定向,期望使用get定向获取 304 发送的附带条件请求未满足 307 临时重定向,post不会变成get 400 请求报文语法错误或参数错误 401 需要通过http认证,或认证失败 40原创 2020-08-07 11:21:15 · 463 阅读 · 0 评论 -
TCP、UDP、HTTP首部报文
1、TCP最小长度是20字节2、UDP报文首段原创 2020-08-14 16:04:52 · 662 阅读 · 0 评论 -
TCP拥塞控制
1、网络拥塞路由器的内存是有限的,若同一时间到达某个路由器的数据太多,这个路由器将无法接收所有的数据,只能将一部分丢弃;或者同一台路由器数据太多,后面到达的数据将要等待较长的时间才会被转发。网络中的数据太多,导致某个路由器处理不过来或处理地太慢,这就是网络拥塞;对于TCP,当发生数据丢失时,重传数据将延长数据到达的时间;同时,高频率的重传,也将导致网络的拥塞得不到缓解。拥塞控制:1) 在网络中发生拥塞时,减少向网络中发送数据的速度,防止造成恶性循环;2) 在网络空闲时,提高发送数据的原创 2020-08-14 11:40:08 · 168 阅读 · 0 评论 -
对一些总结
1、对测试开发岗位的理解现在越来越强调互联网产品的用户体验,质量低体验差的产品很难长久的在市场发展下去,所以测试开发岗位也挺重要的。我理解的测试开发岗位不仅仅是“点点点”式的做黑盒功能测试,也需要和产品、研发、业务团队密切协作,提高产品的质量,保证良好的用户体验,维持好产品的交付质量。一个业务需求从发起到最终交付用户使用,都需要测试工程师的角色。从职责上来说:1、基于对用户需求和被测系统的理解、设计并执行完备高效的测试用例; 除了手工测试还要提高自动化测试水平;2、不断推动...原创 2020-08-19 20:43:06 · 666 阅读 · 0 评论 -
【leetCode】9、删除链表倒数第N个节点
方法一:两次遍历class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode dummy = new ListNode(0); dummy.next = head; int length=0; ListNode first =head; while(first != null){ l..原创 2020-08-18 15:12:47 · 96 阅读 · 0 评论 -
数组和链表的区别
一、数组(顺序存储结构)(1)数组的内存是,一块连续的区域,元素是相同数据类型;(2)使用数组时,需要提前申请所占用的内存空间,如果提前不知道内存空间大小,可能会浪费空间;(3)数组随机访问效率很高,O(1)(4)从数组头部进行插入和删除元素,效率很低,时间复杂度O(n)(5)数组适合 查询多,插入和删除少的操作;(6)数组从栈中分配内存;其他:数组的内存大小是固定的,不能动态扩展;如果要扩容,需要把新旧数组一起搬移;对内存的要求高,必须有足够的连续的内存空间;数组空间利用率原创 2020-08-29 10:31:45 · 233 阅读 · 0 评论 -
【LeetCode】2、两数之和
思路:1、链表2、将两个链表看成相同长度:987+23=987+023=10103、当前位的计算需要考虑上一位的进位,当前位计算完,也要考虑更新进位值4、最后一位如果相加完,还有进位值,则在新链表前方添加节点1,911+8225、技巧:链表问题,返回结果是头节点时,先初始化一个预先指针pre,该这指针指向真正的的头节点head;使用预先指针的目的:链表初始化时无可用节点值,而且链表构造过程中需要指针移动,可能会导致头指针丢失,无法返回结果/** * Definition ..原创 2020-08-18 11:05:48 · 160 阅读 · 0 评论 -
【剑指offer】4、二维数组中查找
一个n*m的二维数组中,每一行都按照从左往右递增的顺序排序;每一列都按照从上到下递增的顺序排序。实现一个函数:输入一个这样的数组和一个整数,判断这个数组中有没有这个整数思路:方法一:暴力遍历矩阵 matrix O(N M)方法二:矩阵逆时针旋转40°矩阵,得到二叉搜索树根节点对应的是 7 3 这两个数——称为标志数以3为本解法中的标志数:算法流程:1、从矩阵matrix 左下角 3开始遍历 索引(i,j),并与目标值对比:当 matrix[...原创 2020-08-19 15:38:57 · 102 阅读 · 0 评论 -
【剑指offer】7、重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树;假设输入的前序遍历和中序遍历的结果中都不含重复的数字。题目分析:前序遍历特点:节点按照[根节点——左子树——右子树]排序 【3,9,20,15,7】中序遍历:节点按照【左子树——根节点——右子数】【9,3,15,20,7】输入前序和中序遍历结果都不含重复的数字,所以每个节点都是唯一的class Solution {//前序遍历的第一个节点就是根节点,用这个根节点区分中序遍历的左子树和右子树 HashMap<原创 2020-08-19 16:13:14 · 115 阅读 · 0 评论 -
【剑指offer】3、数组中重复的数字
请找出数组中任意一个重复的数字方法——哈希表(set)使用哈希表记录各个数字,当查找到重复的数字直接返回;算法:1、初始化:新建HashSet 计为dic2、遍历数组nums中的每个数字num当num在dic中,说明重复,直接返回num; 将num添加到dic中;3、返回-1,一定会有重复的数字,返回多少都可以时间复杂度:O(N)空间复杂度:O(N)class Solution { public int findRepeatNumber(int[] num.原创 2020-08-19 15:13:25 · 122 阅读 · 0 评论 -
【LeetCode】1、两数之和——哈希表
描述:保持数组中的每个元素与其索引相互对应的最好方法——哈希表。一个简单的实现使用了两次迭代。在第一次迭代中,将每个元素的值和它的索引添加到表中。在第二次迭代中,将检查每个元素所对应的目标元素(target−nums[i])是否存在于表中。注意,该目标元素不能是 nums[i]本身!class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer, Integer>原创 2020-08-18 10:22:25 · 230 阅读 · 0 评论 -
【项目二】Mybatis+MySQL实现用例管理(1)
Case与系统的表结构设计 设计好的表结构——用户管理系统 用户管理系统的功能:添加用户,获取用户信息,获取用户列表,登录,更新删除用户信息 每一个表保存的是每一个接口的case 接口中要用到用户User 2.用户管理系统接口测试代码开发 2.1 基础配置文件的设计 <artifactId>httpclient</artifactId> <artifactId>testng</artifactId&..原创 2020-08-01 17:50:31 · 385 阅读 · 0 评论 -
【亲测一次成功】将本地代码上传到Gitee码云
1、在Gitee码云上创建仓库2、在本地新建一个文件夹3、右击新建的文件夹,使用git bush here4、输入 git init5、输入 git remote add origin + 仓库地址6、输入 git pull origin master7、把在本地要上传的代码放在刚开始新建好的文件夹8、输入 git add .9、输入描述 git commit -am “添加描述内容”10、输入 git push orig...原创 2020-08-13 17:18:44 · 1783 阅读 · 1 评论 -
【项目二】HTTPClient接口自动化测试工具(3)
1、接口测试的流程:获取接口信息: 用接口文档(找开发要)和抓包工具来获取接口的基本调用方式和返回 接口测试用例设计 根据获取到的接口信息,按照接口测试的用例设计方法,设计参数和预期返回结果 接口发包: 使用工具或编程向接口传递参数,向服务器发包 解包和验证结果 2、接口请求中包含的内容:http方法 url地址 相当于对方资源的地址 键:值 形式列出来的头域信息 请求体:发送的请求参数,get方法的请求体在url中进行传递 ?之后 一个简单的demo .原创 2020-08-02 15:53:15 · 330 阅读 · 0 评论 -
在开发工作中,如何定位BUG?
1、前端出现的问题:页面的展示和渲染:元素的位置、间距、颜色、按钮页面上发起的行为:点击、输入、长按、鼠标行为、提示方式、输入框、选择框等以上问题:定位到前端开发—UI开发工程师2、后端出现的问题:接口:数据处理功能:支付、登录、加购物车、定投基金5开头的状态码:一定是服务端的问题4开头的状态码:和接口文档对比:一致:服务端的问题;不一致:客户端的问题;3、安卓/ios客户端闪退;发现BUG的页面是不是H5页面...原创 2020-09-04 15:33:10 · 1426 阅读 · 0 评论