致宁的大博客!

记录自己的每一次进步啊!
私信 关注
致宁
码龄2年

不安于现状才能不断努力

  • 130,185
    被访问量
  • 135
    原创文章
  • 35,654
    作者排名
  • 68
    粉丝数量
  • 毕业院校 西安科技大学
  • 于 2018-09-16 加入CSDN
获得成就
  • 获得116次点赞
  • 内容获得15次评论
  • 获得337次收藏
荣誉勋章
兴趣领域
  • #测试
    #selenium#测试用例
TA的专栏
  • 刷题小本本
    27篇
  • shell命令
    4篇
  • Python
    3篇
  • C语言啊
    29篇
  • Java
    15篇
  • 日常小练习
    5篇
  • 知识点总结
    17篇
  • 数据结构
    9篇
  • 网络相关知识总结
    12篇
  • 软件测试总结
    18篇
  • 图像处理
    5篇
  • 操作系统
    3篇
  • MySQL
    7篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

[练习] 网页新闻推荐功能 -测试用例的编写

原创
489阅读
0评论
0点赞
发布博客于 2 年前

C语言-操作符归纳

操作符指令系统的每一条指令都有一个操作符,它表示该指令应进行什么性质的操作。不同的指令用操作符这个字段的不同编码来表示,每一种编码代表一种指令。组成操作符字段的位数一般取决于计算机指令系统的规模。C语言中的操作符有位操作符、算术操作符、赋值操作符等。1. 位操作符’<<’——左移位把一个数的二进制位整体向左移动N个位,’>&
原创
180阅读
0评论
1点赞
发布博客于 3 年前

循环链表_约瑟夫环

 约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时把编号从0~n-1,最后结果+1即为原问题的解。clist.h文件#define _CRT_SECURE_NO_WARNINGS...
原创
125阅读
0评论
0点赞
发布博客于 3 年前

链表的操作

 #define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>typedef struct Node //定义结点{ int data; struct Node* next;}Node,List;typedef struct Header //定义头结点{...
原创
49阅读
0评论
0点赞
发布博客于 3 年前

字符串—左旋右旋

函数功能:输出字符串左旋右旋K次的结果,这里就只输出左旋。 输入两个字符串str1、str2判断str2是不是str1的旋转后的字符串左旋:revolve左旋1次是evolver ;左旋2次是volvere;右旋即相反旋转;思路:左旋的实质:就是把字符串第一位(0)的字符放到最后一位(len-1),再依次向前移动一位,循环K次即可。比较两个字符串,就是把str2和str1的...
原创
360阅读
0评论
1点赞
发布博客于 3 年前

Collection接口及其常用子类(java.util包)

1. Collection接口Collection是单个集合保存的最大父接口。每一次进行数据操作的时候只能够对单个对象进行处理。public interface Collection<E> extends Iterable<E>Iterable是一个迭代器接口。接口Iterable,该接口包含一个能够产生Iterator接口的iterator()方法,并且I...
原创
6000阅读
0评论
1点赞
发布博客于 2 年前

测试流程详解

首先回顾一下,软件测试的生命周期需求分析→测试计划→ 测试设计、测试开发→ 测试执行→ 测试评估然后开始今天的讲解,测试流程:需求分析 -> 测试计划 -> 编写测试用例 -> 测试执行 -> 测试报告编写-------------------------------------准备工作----------------------------------------...
原创
400阅读
0评论
0点赞
发布博客于 2 年前

【leetcode】(中等)dp 64. 最小路径和

class Solution { public int minPathSum(int[][] grid) { int m =grid.length, n = grid[0].length; for(int i =0; i<m; i++){ for(int j=0; j<n; j++){ ...
原创
74阅读
0评论
0点赞
发布博客于 1 年前

【leetcode】(中等)236. 二叉树的最近公共祖先

class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { //结束条件 if(root == null) return root; //root即为最近公共祖先 if(root == ...
原创
62阅读
0评论
0点赞
发布博客于 1 年前

【leetcode】(中等)347. 前 K 个高频元素 hash & heap

class Solution { public List<Integer> topKFrequent(int[] nums, int k) { //用map统计频数 HashMap<Integer,Integer> map = new HashMap<>(); for(int i:nums){ ...
原创
56阅读
0评论
0点赞
发布博客于 1 年前

【leetcode】(中等)递归 24.链表中相邻的结点交换

看到了一个很厉害的递归,逐行注解一下写递归不要关注里面的内容,只关注它的功能。内容的话,想好终止条件,和最后一次循环的操作思路。比如这个递归到最深的一层就是,head所指->next所指->null最后要得到 next所指 -> head所指 -> null/** * Definition for singly-linked list. ...
原创
93阅读
0评论
0点赞
发布博客于 1 年前

【leetcode】(中等)dp 647.回文子串数 5. 最长回文子串

1.回文子串数这道题我是用dp,创建一个dp二维数组,用来存放dp[i][j]这个字串是不是回文串。也可以表达:如果最后一个字符和第一个字符相等,而且中间的子串是一个回文串,那么i-j就是回文子串dp[ i ] [ j ] = dp[ i+1] [j-1]&& ( s.charAt( i ) == s.charAt( j ) )要注意的是,中间的...
原创
152阅读
0评论
0点赞
发布博客于 1 年前

shell命令删除30天以前的log日志文件

find . -type f -mtime +30 -exec rm -rf {} \; 在当前目录下查找文件,时间要大于30天前,将上一步查询的结果rm删除并且递归删除。
原创
678阅读
0评论
0点赞
发布博客于 1 年前

SED实用基础

sed是一种linux的轻量级流编辑器。(字符串截取命令)主要用来对数据进行选取、替换、删除、新增。格式:sed [选项] ‘[动作]’ 文件名sed ‘/正则表达式/p’1. 选项-n 会只将处理后的数据输出到屏幕-e 多项编辑-i 直接修改文件sed 's/old/new/g' text.txt 预修改,只是缓存并没修改sed -i 's/ol...
原创
30阅读
0评论
0点赞
发布博客于 1 年前

AWK实用基础

shell编程中的awk命令非常强大,里面可以加入循环、判断等,因此也被称为awk编程。一般情况下awk更多的是获取指定列内容,格式化输出等。格式如下:awk ‘条件1 {动作1} 条件2 {动作2} ……’ 文件名awk ‘/正则表达式/’条件相当于输入,没有条件就会把整个文件内容执行后面的动作。动作相当于输出,流程处理后格式化输出。1. 输出列$num...
原创
33阅读
0评论
0点赞
发布博客于 1 年前

vim的三种模式以及相互转换

一共有12中模式最常用三种: 普通模式 删除、撤销、恢复撤销 插入模式 插入数据,进行编辑 底行模式 保存退出 vim设置 普通模式完成编辑文件最常见的操作光标移动 hjkl ——左右上下 w/b——按单词右/左移动 ctrl+f/b——向下/上翻页 gg/G——文档首行/尾行 复...
原创
765阅读
0评论
0点赞
发布博客于 1 年前

Python中的类与对象

一、定义类class 类名: 类内容(包括属性、函数)二、类里面的函数1. 类函数是指不需要创建类对象实例,就可以调用的函数在函数前加@classmethod标识class Student: name='hx' age = 12 @classmethod def classmethod(cls): print(...
原创
42阅读
0评论
0点赞
发布博客于 1 年前

python3六个基本数据类型

摘取Python3教程:https://www.runoob.com/python3/python3-data-type.htmlPython3 中有六个标准的数据类型:Number(数字)String(字符串)List(列表)Tuple(元组)Set(集合)Dictionary(字典)Python3 的六个标准数据类型中:不可变数据(3 个):Number(数字)、Stri...
原创
91阅读
0评论
0点赞
发布博客于 1 年前

Python中的序列

视频资源:B站小甲鱼视频博客参考:https://www.cnblogs.com/forwardfeilds/p/10451794.htmlPython的序列类型非常丰富,包括了列表(list),元组(tuple),字符串(str), 字节数组(bytes),队列(deque)能否存放不同类型数据容器序列:能存放不同类型的数据。存放的一般是引用。list、tuple、collectio...
原创
88阅读
0评论
0点赞
发布博客于 1 年前

【LeetCode】SQL(简单)627. 交换工资

思路:就像不用中间变量交换两个数值一样,还记得有一种方法是用异或,所以可以用这种思路想这道题代码:update salary set sex=char(ascii('f')+ascii('m')-ascii(sex));...
原创
71阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】SQL(简单)182.查找重复的电子邮箱

思路:通过看评论大神和解题有以下几种方法解决:通过多表联查;两次访问Person表,找到id不同但是Email相同的Email并输出,需要注意的是要把输出结果进行去重(distinct)。通过分组;将Person表按照Email分组,并count出每个组中的Email总数,将大于1的Email输出。【最快】代码:select distinct p1.Emailfrom Pers...
原创
49阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)7.整数反转

思路:1.一开始是想转成字符数组,反转之后再转成int类型,不知道怎么就一直通过不了。看了评论和解题,将x的最后一位迭代10,然后更新最后一位。2.就像这样,res = res10 + x%10 ; x /=10;代码:class Solution { public int reverse(int x) { //防止数据溢出,使用long long...
原创
27阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)14.最长公共前缀(java,substring)

import java.util.*;class Solution { public String longestCommonPrefix(String[] strs) { if(strs.length ==0) return ""; String res = strs[0]; for(int i =1; i<strs.lengt...
原创
34阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)20. 有效的括号(java,Satck解决)

代码:思路在备注都很清楚了import java.util.*;class Solution { public boolean isValid(String s) { if(s == null) return false; Stack<Character> stack = new Stack<>(); cha...
原创
41阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)141.环形链表(双指针法)

思路:链表类的题,一般要想到指针,双指针法。链表相交,链表成环等。在成环链表中,快慢指针一定会相遇,就比如说在操场跑步,同一起点,快的人跑两圈,慢的人只跑一圈,第一圈一定不会相遇,第二圈一定会相遇。那么如果不是操场那样的圈,而是笔直的公路,那就是快的人先到达终点,然后结束。代码:public class Solution { public boolean hasCycle(L...
原创
62阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)231. 2的幂(3种思路)

思路:最普通的思路就是无限的给这个n除以2,看它最后是不是等于1。但是这个方法特别耗内存,性能较低。看leetcode评论说,2的幂一定可以被2的31次幂整除,这也可以判断。最最最精妙的方法就是用二进制来做。如果这个数的二进制只有一位1,那就是2的幂。那怎么判断是不是只有1位呢。举个例子,8的二进制是1000,7的二进制是0111,在《剑指offer》上有过怎么消除最低位的1的方法。那就...
原创
23阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)155. 最小栈(空间解决时间,2种方法)

思路:要求O(1)复杂度找到,不遍历整个集合是不可能的。但如果牺牲空间复杂度来满足这个要求 也是可以的。有两种思路:用两个栈。一个存储元素本身,一个存储当前最小的元素。那么入栈就得两个都入,出栈也是。用一个栈,但是存两倍个数的元素。第一层存元素本身,第二层存当前最小值,入栈入两次,第二次判断最小元素并存入。出栈也是。接下来就只看第二种方法的代码:class MinStack {...
原创
221阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)26. 删除排序数组中的重复项(双指针法)

代码:至于思路都已经备注了,双指针法class Solution { public int removeDuplicates(int[] nums) { if(nums.length<=1) return nums.length; //mark是标记插入位置的,comp是标记下一个元素和谁比较 int mark =1; int c...
原创
48阅读
1评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)160. 相交链表(四种方法,java)

思路1:1.先确定两个链表有没有相交2.有的话,最后一个结点一定相同3.遍历两个链表到末尾,判断相同与否,顺便计算两个链表长度4.计算长度差,然后求出相交链表的头节点代码1:public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { ...
原创
37阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)9. 回文数

思路1:将问题转为判断回文字符串代码1:class Solution { public boolean isPalindrome(int x) { if(x <0) return false; if(x ==0) return true; //int转为String String str = I...
原创
28阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)21. 合并两个有序链表

思路:这个和归并排序一样,两个数组中先挑小一点的连接到新链表上,当有一个链表遍历完成之后,将另一个链表的所以结点都续到新节点最后即可。代码:class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { //新链表的起点 ListNode newhead ...
原创
23阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)169. 多数元素

思路:出现次数大于数组长度的一半,意思就是,排序后n/2下标一定是那个数,不然就小于了一半。代码:import java.util.*;class Solution { public int majorityElement(int[] nums) { Arrays.sort(nums); return nums[nums.length/...
原创
32阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)235. 二叉搜索树的最近公共祖先

思路:1. 还是那句话,关于二叉树的问题一定要想到用递归,而递归是不关心方法的具体实现的。2. 再想想二叉搜索树的特点,root的值是比左边大,比右边小的。所以如果p和q一个在左一个在右,那最近的公共祖先就是root。3. 如果都在左边,那就把left结点传进方法中作为root结点,继续寻找公共祖先。反之。代码:class Solution { publi...
原创
35阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)136. 只出现一次的数字

思路:1. 利用map集合存储,key存储数值,value存储出现次数;空间复杂度为O(n),时间复杂度为O(n)2. 利用异或运算,首先知道一个结论,i ^ i = 0; 0 ^ i = i ; 所以两个相同的数异或等于0;在和出现一次的那个数值进行异或得到的就是那个数;空间复杂度O(1),时间复杂度O(n)代码:以第二种简单的方法为主:class Solution...
原创
26阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)344. 反转字符串

思路:1. 最偷懒的应该是把字符数组从后向前打印一遍,但是实质上并没有更改数组内容,不推荐;2. 和交换两个元素一样,把数组从中间分开,两两交换;而交换的方法就有两种种,异或、开辟新空间。3. i ^= j; j ^= i; i ^= j; 这样就交换了i和j的值; 可以这么理解,i和j异或后,得到了一个中间的钥匙,i和这个钥匙异或就得到了j,反之,j和这个钥匙异或就得到了i;...
原创
29阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)557. 反转字符串中的单词 III

思路:最好想到的就是用空格把单词分开,挨个反转,最后再把空格加上。至于这个反转,StringBuilder和StringBuffer中有方法可以直接用。当然自己写也可以,完全没难度。代码:class Solution { public String reverseWords(String s) { String[] strs = s.split(" ");...
原创
27阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)292. Nim 游戏

思路:先说结论:作为先手,如果堆中石头的数量n不能被4整除,那么你总是可以赢得 Nim 游戏的胜利。原因:1.小于3块的话,你作为先手就可以全拿走,结束游戏。2.如果刚好4块的话,作为先手一定会输,因为对手一定会拿走最后一块。所以在自己的回合中应避免自己剩下4个。3.但是如果不是4倍数的话,就可以控制将4个留给对手,那么自己必定会赢。比如7,那就先把后四个排除,剩下3个...
原创
28阅读
1评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)104. 二叉树的最大深度(一行代码实现)

思路:关于二叉树的题目,一定要想到递归;递归的话,无需关注方法内部怎么实现的,只需使用它即可。有一个寻求最大深度的方法,它的作用就是寻找最大深度,那么一个结点的所构成树的最大深度就是寻求其左右子树的最大深度较大的那个 加上root的这一层深度,也就是加1;具体看代码。代码:import java.lang.Math;class Solution { publ...
原创
29阅读
0评论
0点赞
发布博客于 2 年前

信息素养与信息检索

信息与人的关系信息是一种资源可以被人感知人类认识的基础信息素养构成:知识、道德、意识(不会就查)、能力信息资源的类型:加工深度(0、1、2、3)、载体形式(印刷、声像、机读、缩微)、出版形式(文献、电子、网络)、传递范围、表达形式按加工程度分:(分散、无序、多 —> 集中、有序、少)一次为主要利用对象零次信息资源:书稿、图纸、日记一次信息资源:期...
原创
440阅读
0评论
0点赞
发布博客于 2 年前

shell中head、tail使用

headhead [-n -k]…[file]…显示前10行可以认为数字前默认为+号1、head -10 file.txt 【省略了n,所以前面的-是短横线】2、head -n 10 file.txt 【默认含义】3、head -n +10 file.txt 【加上+号】除最后k行,显示其它所有可以认为第k行分界,显示上半部分head -n -10 file.txt 【数字前面加...
原创
85阅读
0评论
0点赞
发布博客于 2 年前

Java—线程池

https://blog.csdn.net/weixin_43214609/article/details/101616329说到创建线程的方法,少不了提到线程池,因为其有以下优点:1.降低资源消耗(创建开销)2.提高响应速率(无需等待)3.提高可管理性(统一分配)1.线程池的构成1.核心线程池大小2.阻塞队列:四种(数组、链表、同步、优先级)3.最大线程池大...
原创
31阅读
0评论
0点赞
发布博客于 2 年前

Java—Lock锁

https://blog.csdn.net/weixin_43214609/article/details/101627433参照上面的博客,得知Synchronized锁是一个重量级的锁,效率很低,而且隐式加解锁,非常不方便。那么Java中也有一个自己实现的锁机制——Lock锁。Lock锁是纯用Java实现的,可以看到底层源代码的那种。1.Lock在Java中是一个接口,是J...
原创
25阅读
0评论
0点赞
发布博客于 2 年前

Java—Synchronized锁

1.Synchronized是一个关键字,JVM级别的锁。锁的是对象!!同时是一个悲观锁、重量级锁。(悲观锁就是老往最坏情况考虑)隐式加解锁(monitor支持可重入)。2.使用1.同步代码块2.同步方法区别:锁的粒度不同【同步代码块】必须传入要锁住的对象 !!! public void run() { for(int i=0;i<...
原创
67阅读
0评论
0点赞
发布博客于 2 年前

Java—多线程

1.进程和线程进程:可以看作是一个应用程序,是操作系统中资源分配的最小单位。线程:一个程序中必定要执行多个任务,那一个任务对应的就是一个线程,所以线程是任务调度的基本单位。线程依附进程而存在,相对进程而言,线程的创建、销毁、切换都更加轻便和灵活。同一个进程的所有线程共享进程的一套资源。而Java就可以支持多线程,也是一大特色。2.Java中创建线程一共有四种方法1.继承...
原创
37阅读
0评论
0点赞
发布博客于 2 年前

泛洪攻击、

Dos攻击DoS即DenialOfService,拒绝服务的缩写DoS攻击:是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地耗尽被攻击对象的资源。目的:让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务系统停止响应甚至崩溃,而在此攻击中并不包括侵入目标服务器或目标网络设备。这些服务资源包括网络带宽,文件系统空间容量,开放的进程或者允许的连接。这种攻击会导致资源的匮乏,无...
原创
158阅读
0评论
0点赞
发布博客于 2 年前

正则表达式-常用语法

1. re1.re2其中的.代表一个字符。比如f.o,就可以匹配fao、fet等;f..o就可以匹配feao等2. ^re匹配字符串开头比如^From,可以匹配Fromchina3. $re匹配字符串结尾比如$test,可以匹配Mytest4. re*匹配0-n次re比如5*,就可以匹配5、55、555、445.re+匹配 1-n次re比如5...
转载
31阅读
0评论
0点赞
发布博客于 2 年前

接口测试是什么?关注什么?

1. 基本概念接口测试:是测试系统组件间接口的一种测试。(以及系统内部各个子模块之间的接口)[内部接口、外部接口]作用:用于检测外部系统与系统之间以及内部各个子系统之间的交互点。目的:检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等,尽早地避免一些错误的出现。2. 用例设计与单元测试有相似之处。都需要用到如:边界值法,等价类法等基本测试方法。一个很好...
原创
315阅读
0评论
0点赞
发布博客于 2 年前

主键和外键

1. 主键关系型数据库中的某一个属性组能唯一标识一条记录,该属性组就可以成为一个主键主键只能有一个,不能有重复的,不允许为空,用来保证数据完整性主键在物理层面上只有两个用途: 1. 惟一地标识一行。 2. 作为一个可以被外键有效引用的对象。2. 外键外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。表的外键是另一表的主键, 外键可以有重复的, ...
原创
39阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)100.相同的树

做了这么多题,看到题总得会提炼条件、输出,就做对了一半。条件:1.树的结构相同 2.每个结点对应的值也相同输出: true 或者 false首先吧,树类型的题一定先去用递归思考。因为树的结构问题,它的左右子树又可以被看作一颗独立的树。递归跳出条件:当两个树都是空结点时,说明遍历到了树的叶子节点。成立条件:1.两棵树都不为空 2.根节点的值相等不满足成功条件的就是返回false...
原创
36阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)206.反转链表

我之前把它刷过两遍,遇到后又有点懵……随即我打算记录一下我的思路。首先有三个指针完成:dummyHead—始终指向链表头部(一开始创建作为虚拟头节点,以防空指针)pre—主要记录下一次要旋转的结点的前一个结点的位置cur—主要记录这次要插到dummyHead位置的结点他们的位置在每次迭代前后都必须是dummyHead—pre—cur核心代码:pre.next = cur.next...
原创
38阅读
0评论
0点赞
发布博客于 2 年前

【LeetCode】(简单)290.单词规律

技术:java+hashMap这道题说的是对应关系,那首先想到的集合就是Map是要将key(a)-value(dog)存在一起,每当遇到一个字母就去查看对应的单词。map< 字母 , 单词>成功:1.key存在,查看key对应的value和当前的单词是否对应。2.key不存在,在value中查找单词,没查到的情况下,存下对应关系。失败:1.key存在,经过查找字母...
原创
114阅读
0评论
0点赞
发布博客于 2 年前

AVL树、红黑树、B树的插入

BST树二叉搜索树保证左孩子小于根,右孩子大于根AVL树二叉搜索树+平衡因子1. 左结点小于根,右节点大于根2. 左右孩子的高度差不超过13. 其下面任意一棵树都是平衡树高度:logn(允许是一颗空树)这就导致插入的时候不仅仅要找到合适的位置,还要维护父节点的平衡因子。插入平衡因子{0,-1,1}(按右-左)1.新节点插入后第一次检测-1 -> 0 新结点在右侧...
原创
59阅读
0评论
0点赞
发布博客于 2 年前

【网络基础】当我的浏览器上输入了“baidu.com”……

今天宏观的说一说网络传输的流程我在浏览器上输入baidu.com到底会发生什么?总的来说是这样的浏览器查找域名的IP地址(DNS服务器)封装好HTTP数据报TCP三次握手建立连接(商议MSS最长报文长度MSS=MTU-网络层-传输层)添加TCP/UDP头部(端口号80),发送HTTP数据(看情况决定要不要分段)添加IP协议头部,通过网络层管理地址、选择路径通过ARP转化IP地址...
原创
59阅读
0评论
0点赞
发布博客于 2 年前

ConCurrentHashMap在JDK7和JDK8对比(结构、初始化、Size和添加元素)

推荐阅读:https://www.jianshu.com/p/e694f1e868ec0.特点ConcurrentHashMap在java.util.Concurrent包下,最大的特点是安全、性能较同样安全的HashTable更高。它的设计与实现非常精巧,大量的利用了volatile,final,CAS等lock-free技术来减少锁竞争对于性能的影响。ConcurrentHas...
原创
151阅读
0评论
0点赞
发布博客于 2 年前

JDK8中的Arrays.sort源码解析

在Java中总是能很方便的调用别人已经写好的方法,无论是导入的jar包还是JDK自带的工具包。就比如JDK中对数组的排序功能,只要是个数组传进去就能排序,这无疑是大大提高了开发的效率,流行的排序有很多,那它里面到底是用了哪一种排序?接下来对照源码分析一波~sort支持各种各样类型数据数组的排序~我们就来看个int[ ]排序的源码叭,一进去是这样的~点进去~我也看不懂~但...
原创
300阅读
0评论
0点赞
发布博客于 2 年前

Jmeter与loadrunner的区别

转载:https://blog.csdn.net/weixin_33770878/article/details/87563654Jmeter与loadrunner是现时下比较火的两个软件,很多的测试人员在面临loadrunner与Jmeter的时候不知道该如何选择,其实当了解这两款软件之后就不会发生这种选择困难症了。下面通过一些异同点来了解一下Jmeter与Loadrunner的相同点...
转载
2889阅读
0评论
1点赞
发布博客于 2 年前

JMeter下载、介绍、主要构件、操作流程

下载http://jmeter.apache.org/download_jmeter.cgi1.下载,解压到指定路径 2.改环境变量!路径到jmeter那一层就ok(这个不用说了8~) 3.打开jmeter/bin/jmeter.bat文件(完成~) (需要中文的,把/bin/jmeter.properties里面的#language=en,改为: language=zh_CN)...
原创
42阅读
0评论
0点赞
发布博客于 2 年前

详谈HashMap源码以及哈希碰撞

0.底层结构首先看HashMap的底层结构和基本方法transient Node<K,V>[] table; //数组,hash表的桶//hash表每个桶下的链表 Node(int hash, K key, V value, Node<K,V> next) { this.hash = hash; this.key = key; ...
原创
202阅读
0评论
2点赞
发布博客于 2 年前

Servlet(生命周期、组成、执行原理)、tomcat和socket关系

先感谢博友们Socket与Servlet的简单理解:https://blog.csdn.net/sdjkjsdh/article/details/51569481servlet详解:https://www.cnblogs.com/whgk/p/6399262.htmltomcat:https://blog.csdn.net/yilaguandemei/article/details/7...
原创
96阅读
0评论
1点赞
发布博客于 2 年前

MySQL知识-基础题【持续更新……】

原创
55阅读
0评论
1点赞
发布博客于 2 年前

网络知识-基础题【持续更新……】

由题得1. 前28位是网络号,后4位是主机号2. 2^4=16,所以子网的主机数是16-2(网段和广播地址)=143. 子网掩码是11111111 11111111 11111111 111100004. 子网划分是:10101100 00010110 00100010 00100000 ~10101100 00010110 00100010 00101111172....
原创
37阅读
0评论
1点赞
发布博客于 2 年前

[练习] Excel插入图片 -测试用例的编写

原创
216阅读
0评论
0点赞
发布博客于 2 年前

[练习] 遥控器 -测试用例的编写

原创
420阅读
0评论
0点赞
发布博客于 2 年前

[练习] 电梯 -测试用例的编写

这个电梯没有说明是哪个类型的电梯,所以我们对两种电梯都进行了测试用例的编写。
原创
631阅读
0评论
2点赞
发布博客于 2 年前

Cookie和Session的区别

借阅:https://blog.csdn.net/qq_42651904/article/details/85543640用户第一次请求服务器的时候,服务器根据用户提交的相关信息,创建对应的Session,请求返回时将此Session的唯一标识信息SessionID返回给浏览器。浏览器接收到服务器返回的SessionID信息后,会将此信息存入到Cookie中,同时Cookie记...
原创
39阅读
0评论
0点赞
发布博客于 2 年前

操作系统-基础题

内存抖动:是指在短时间内有大量的对象被创建或者被回收的现象。原因:主要是频繁(很重要)在循环里创建对象。影响:是如果抖动很频繁,会导致垃圾回收机制频繁运行(短时间内产生大量对象,需要大量内存,而且还是频繁抖动,就可能会需要回收内存以用于产生对象,垃圾回收机制就自然会频繁运行了)。cache:是高速缓冲, 解决高速cpu和相对低速sdram的速度瓶颈而设计的。cache速度很快,和cp...
原创
119阅读
0评论
0点赞
发布博客于 2 年前

黑、白盒测试 和 动、静态测试

静态测试:静态测试是指不运行被测程序本身,通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。动态测试:通过运行被测程序来检查运行结果与预期结果的差异,并分析运行效率和健壮性等指标。静态、动态测试注重过程。(技术)黑盒测试:(也称功能测试)是基于规格说明(需求文档)的测试。测试人员不考虑/不关心软件内部结构,只关心程序的功能是否符合他的功能说明。黑盒、白盒测试注重结果。...
原创
2758阅读
0评论
3点赞
发布博客于 2 年前

压力测试、负载测试、渗透测试、容量测试、敏感度测试

压力测试(强度测试):是一种性能测试,是在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响。压力测试就是一种破坏性的性能测试,目的是找到高并发下的BUG;目标:是当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。测试系统的限制和故障恢复能力,它包括两种情况: 稳定性压力测试:在选定的压力值下,长时间持续运行。 可以考察各项性能指标是否在指定范围内,有无内存泄漏、有无...
原创
836阅读
0评论
1点赞
发布博客于 2 年前

白盒测试法的覆盖标准

白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:1.语句覆盖每条语句至少执行一次。2.判定覆盖每个判定的每个分支至少执行一次。3.条件覆盖每个判定的每个条件应取到各种可能的值。4.判定/条件覆盖同时满足判定覆盖条件覆盖。5.条件组合覆...
原创
1532阅读
0评论
0点赞
发布博客于 2 年前

数据库视图、用户创建、用户密码修改

视图视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是和正常的表一样操作。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。创建视图create view 视图名 as select语句;用户创建用户create user ‘用户名’@‘登陆主机/ip’ identified by ‘密码’;删除用户drop user ‘用户名...
原创
402阅读
0评论
0点赞
发布博客于 2 年前

数据库事务、隔离级别、脏读、不可重复读、幻读

1. 事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功,要么全部失败,是一个整体。MySQL提供一种机制,保证我们达到这样的效果。事务还规定不同的客户端看到的数据是不相同的。(《数据库系统概念》)是数据库种的一个单独的执行单元(Unit),由高级语言编写用户程序的执行所引起。当更改数据成功时,在事务中更改的数据就会被commit,不会再改变。否则,事务就会取...
原创
47阅读
0评论
0点赞
发布博客于 2 年前

MySQL中的索引、原理以及常见索引的添加、删除

索引:提高数据库的性能。常见的索引:主键索引(primary key)唯一索引(unique)普通索引(index)全文索引(fulltext)1. 主键索引(primary key)一个表中,最多有一个主键索引,当然可以使符合主键主键索引的效率高(主键不可重复)创建主键索引的列,它的值不能为null,且不能重复主键索引的列基本上是int1.1 创建在创建表的时...
原创
2141阅读
0评论
0点赞
发布博客于 2 年前

表的内连接、外连接

1.内连接内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,是使用的最多的连接查询。select 字段 from 表1 [inner] join 表2 on 连接条件 and 其他条件;-- 一般的写法 select ename, dname from EMP, DEPT where EMP.deptno=DEPT.deptno and ename='SMITH'; ...
原创
300阅读
0评论
0点赞
发布博客于 2 年前

MySQL基础命令,增删改查,约束,函数

1.对数据库(DataBase)的操作增加一个库create database 库名 [charset=utf8];删除一个库drop database 库名;使用/进入库use 库名;查看库show databases;数据库的备份#mysqldump [-P3306] -u root -P密码 -b sqltest > 文件备份路径导入备份库suorce 备份...
原创
93阅读
0评论
1点赞
发布博客于 2 年前

[练习] 微信朋友圈点赞 -测试用例的编写

这次我从功能(正常、异常)、性能、兼容性、安全、界面方面进行测试,用到的编写测试用例的方法有等价类法(时间划分、类型等)、场景法、错误推测法、边界值法(最多点赞人数)四种常用的方法。这仅仅是一个思维导图,等价类可以带入别的场景进行测试用例的编写。...
原创
6257阅读
0评论
8点赞
发布博客于 2 年前

α测试、β测试,以及它们的区别

1. α测试就是把用户请到公司内部进行测试使用。α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试;目的:是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。注意!α测试不能由程序员或测试员完成。2. β测试用户在不同场所进行测试。β测试是一种验收测试。β测试由软件的终用户们在一个或多个场所进行。3.区别α测试...
原创
19413阅读
0评论
8点赞
发布博客于 2 年前

进程(查看、关闭、创建)、孤儿进程、僵尸进程、1号进程

1.操作系统定义:是一个安装在计算机硬件上的软件目的:为了让计算机更加好用功能:合理统筹管理计算机软硬件资源管理:先描述、再组织操作系统通过硬件驱动管理、操作各个硬件,如下图:2.进程操作系统中通过pcb(进程控制块)控制一个进程pcb:就是一个结构体,是操作系统用来存储描述一个进程的一串数字。叫taskstruct,包括:上下文数据、内存指针、程序计数器。进程:正在进行中的程...
原创
1008阅读
0评论
1点赞
发布博客于 2 年前

[练习] 压缩软件 -测试用例的编写

功能需求: 正常压缩、解压各种类型文件文件类型:支持所有的文件压缩文件个数:最多压缩100个文件压缩大小:不超过5G性能需求: 压缩、解压缩文件不超过30分钟安全需求: 带有病毒感染的文件不能压缩易用性需求: 操作简单、方便界面需求: 布局、排版美观兼容性需求: windows7,windows8,windows10都可以使用...
原创
93阅读
0评论
0点赞
发布博客于 2 年前

软件测试的分类

1. 根据开发阶段划分1.1 单元测试其目的是检验软件基本组成单位的正确性。阶段:编码后测试对象:模块人员:白盒测试工程师/开发依据:代码+详细设计文档方法:白盒(看代码)内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试1.2 集成测试将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试。阶段:单元测试之后测试对象...
原创
70阅读
0评论
0点赞
发布博客于 2 年前

[练习] 公交卡 -测试用例的编写

改正的问题:学会初步划分测试用例的类型用Xmind写了思维导图,比较清晰大致已经分对了类,在编写过程中能及时发现方向偏差和类型划分;遇到的新问题:4. 写着写着就会扩大范围,比如这个公交卡,就会延伸到读卡机的功能方面。eg:余额显示、两个卡片叠加刷卡等。5. 测试用例划分还不很清晰,比如功能和性能方面经常混淆;6. 思想局限;要多看看,多听别人的新奇点;7. 编写时间较长;多练...
原创
323阅读
0评论
0点赞
发布博客于 2 年前

[练习]QQ/微信 表情收藏-测试用例的编写 [简洁思路]

QQ电脑版添加表情:微信添加表情:手机版QQ添加表情:总结上次经验,这次可以分成几个方向进行测试用例编写:1. 功能方面 :正常的功能能不能正常使用,图片上限2. 性能方面 :网络、时间、类型等3. 安全方面 :会不会携带不安全因素4. 兼容方面 :手机、电脑能不能同步等接下来具体地分:1. 功能方面正常情况电脑内存空间充足,图...
原创
1074阅读
0评论
1点赞
发布博客于 2 年前

实现简单的聊天室(单线程)

可以理解为socket是用来读写的一个对象(双全工)服务器和客户端都各自有一个,这也对应了,TCP四次挥手。服务器端package Single;import java.io.IOException;import java.io.PrintStream;import java.net.ServerSocket;import java.net.Socket;impor...
原创
397阅读
1评论
0点赞
发布博客于 2 年前

OpenCV+VS2017+暗通道法-> 实现图像去雾

在大雾天气,司机总是看不清前方交通情况而造成很多不必要的事故;在美丽的海底,光会由于海水的折射返回到相机里也就出现了一层“白雾”;有时候清晨拍的美景,也是因为一层雾而被蒙上了“面纱”;……怎么去除这层“面纱”?说到图像去雾,就不得不提到由何恺明博士等人提出的基于暗通道的图像去雾算法。这个算法因其新颖的思路和理想的效果而广受关注,相关论文也曾于2009年荣获CVPR最佳论文奖,同...
原创
623阅读
0评论
2点赞
发布博客于 2 年前

BUG的描述、级别、生命周期以及扭转

1. bug描述1、发现问题的版本2、问题出现的环境3、错误重现的步骤4、预期行为的描述5、错误行为的描述6、其他举个例子:故障发现版本:VPS20180226_01故障类别:兼容性故障优先级:中故障标题:ie下界面显示异常,界面文字有重叠故障描述: 测试环境:win7+IE8 测试步骤:1、打开vps首页,点击“通知”链接,进入通知页面 预期结果:...
原创
566阅读
0评论
1点赞
发布博客于 2 年前

软件测试的生命周期;测试工作之前的准备、争执处理;测试用例的编写

1. 软件测试的生命周期[6]需求分析→测试计划→ 测试设计、测试开发→ 测试执行→ 测试评估 需求阶段 –测试人员了解需求、对需求进行分解,得出测试需求 计划阶段 根据需求编写测试计划/测试方案 设计阶段 –测试人员适当的了解设计,对于设计测试用例是很有帮助的,测试人员搭建测试用例框架,根据需求和设计编写一部分测试用例 编码阶段 –测试人员一般是不需要编码...
原创
721阅读
0评论
0点赞
发布博客于 2 年前

C++实现Harris算法角点提取完整代码 结果图 Win10 + VS2017 + OpenCV

Harris角点检测基本思想:从图像局部的小窗口观察图像特征 角点定义:窗口向任意方向的移动都导致图像灰度的明显变化,标准就是响应函数R的值以及阈值Thr。 Harris算法实际上是对Moravec的改进,从四个方向上的变化分析增加到8个方向,利用Harris响应函数细化边缘要素、提取孤立点,而且具有了旋转不变性。1. 算法步骤确定一个n*n的影像窗口,对窗口内每一个像素进行一...
原创
725阅读
1评论
5点赞
发布博客于 2 年前

[练习]QQ登陆界面-测试用例的编写

(Test Case)是为了实施测试而向被测试系统提供的一组集合,包括:测试环境、操作步骤、测试数据、预期结果等要素。一条测试用例最终只有一个结果。一个功能点至少有一个测试用例。测试用例数/功能点数 = 测试的覆盖率(越大越全面)为什么有测试用例?1.全面的测试所有的功能2.衡量测试覆盖率3.易于对新版本重复测试4.大量测试会影响测试效率接下来,编写一组关于QQ登陆界面...
原创
7584阅读
0评论
12点赞
发布博客于 2 年前

Map接口及其常用子类

1.Map接口集合Map关注事物的映射和键值的唯一性HahsMap:键值对,不关心顺序。Hashtable:是线程安全版的HashMap,效率较低LinkedHashMap:键值对,关心插入顺序。TreeMap:键值对,关心元素自然排序。Map接口结构图,小结保存二元偶对象(键值对)的最顶层接口。public interface Map<K,V>所有的元...
原创
257阅读
0评论
0点赞
发布博客于 2 年前

4 IP协议浅层详解(网络层)

网络层是找到从源IP到目的IP的路径,它有能力跨网络把数据从A主机传输到B主机(TCP指使IP进行传输)网络层一个常用的协议叫IP协议。特点/作用:1.无连接、不可靠2.建立了物理层和传输层的统一3.寻址和路由1. IPv4协议 头部长度 也叫报头长度,有4位,4字节一个单位,分组头最小值为5,表示20字节,最大值为15,表示60字节;和T...
原创
214阅读
0评论
0点赞
发布博客于 2 年前

TCP的三次握手&四次挥手

1. 三次握手三次握手过程:第一步:client 发送 syn 到server 发起握手;第二步:server 收到 syn后回复syn+ack给client;第三步:client 收到syn+ack后,回复server一个ack表示收到了server的syn+ack(此时client的端口的连接已经是established)。从应用层角度深度理解TCP三次握手和队列:...
原创
80阅读
0评论
0点赞
发布博客于 2 年前

3 UDP协议和TCP协议的特点、区别以及TCP协议的优化(传输层)

传输层作用:负责数据能够从发送端传输接收端 。1. 端口根据网络传输中所说,传输层注重的是端口号,那就关注一下端口号的概念:就是标识了一个主机上进行通信的不同应用程序,通俗点说就相当于插线板(主机)的插孔(端口)。 一个端口号不能被多个进程绑定(当然一个插孔只能插一个插头),一个进程可以绑定多个端口号(但如果一个电器有很多接口、插头也不是不可能)。 传输只是点对点,不考虑过程...
原创
553阅读
0评论
1点赞
发布博客于 2 年前

java.util包中重要的接口、子类

java中比较重要必须要了解的包首先就是lang包、util包和io包了。今天总结一下java.util包中比较常用的一些知识。Java集合类框架实际上就是java针对于数据结构的一种实现。类集:实际上就是动态数组。在Java的类集里面(java.util包)提供了两个最为核心的接口:Collection、Map接口。用一张图大概的总结一下大框架,然后分块总结知识点。这些都是比较常用的...
原创
442阅读
1评论
0点赞
发布博客于 2 年前

5 ARP协议(链路层)+网络部分总结

首先说说链路层的作用,用于同一数据链路两个节点之间的传输。那么主机向路由器传输、主机向主机传输、路由器向路由器传输、路由器向主机传输都是链路层的工作。先来介绍几个概念网卡:(NIC)(网络适配器),是电脑与局域网相互连接的设备。处于 1. 物理层(PHY) :将数据封装成帧 2. 数据链路层(MAC):接收网络其他设备传来的帧(只接受该电脑的帧) M...
原创
284阅读
0评论
0点赞
发布博客于 2 年前

2 HTTP协议详解(应用层)

初识了大的网络传输框架,现在先来学习HTTP协议。应用层直接为用户使用的应用进程,通俗的来说就是程序员写的一个个解决实际问题的网络程序、APP。协议协议就是一种约定吧,双方或者多方达成统一的共识。就像接口的存在意义。因为应用层是程序员实现的程序,所以这个应用层协议也应该是程序员自己定的,但其实不用这么麻烦,已经存在的协议,譬如HTTP协议、HTTPS协议、FTP协议、DNS协议、SSH协...
原创
424阅读
0评论
1点赞
发布博客于 2 年前

1 初识网络传输

计算机之间传输媒介是光电信号,通过信号的强弱和频率来表示0和1,但是要知道大量0和1表达的真实意义,就要约定好数据格式。也就产生了各种各样的协议。而网络上的传输也需要协议来标准规范,也就相当于Java和C++中的接口的作用吧。1.协议分层为什么要分层?分层虽然会导致协议和传输更加复杂,但其最大的好处就是便于"封装"。接下来就大概讲述两个比较典型的分层模型:1. OSI开放系统互连...
原创
154阅读
0评论
1点赞
发布博客于 2 年前

Java快速排序以及其优化(双路快排、三路快排)

1.快速排序思想快速排序是属于交换排序的基本思想。选择一个基准值val,把比val小的放在前面,比val大的放在后面,最后把val放在两个区域中间,val就到了最终的位置。很明显快排是一个原地排序,也是一个不稳定排序。空间复杂度:1.可以是为新数组开辟额外空间O(n)2.当然也可以在原数组内交换得来O(1)时间复杂度:O(nlogn)代码实现1.把数组第一个元素作为v...
原创
786阅读
0评论
4点赞
发布博客于 2 年前

7大排序时间复杂度对比、以及优化

数据结构:计算机组织存储数据的方式算法:作用于特定数据集上的算法流程【排序算法很重要】如何衡量一个排序算法的优劣?1.算法的执行效率-要看最好、最坏、平均时间复杂度-有时候个数n太少也要考虑时间复杂度的系数、低阶、常数(冒泡和插入)-比较或交换的次数2.算法的内存消耗-通过空间复杂度来衡量-原地排序:特指空间复杂度为O(1)的排序算法(就是给定有限个数的空间)3.算法的稳定...
原创
1343阅读
0评论
0点赞
发布博客于 2 年前

深度图像+rgb转化点云数据、点云数据打开、显示以及保存

点云的打开// 创建点云(指针)pcl::PointCloud&amp;lt;pcl::PointXYZ&amp;gt;::Ptr cloud(new pcl::PointCloud&amp;lt;pcl::PointXYZ&amp;gt;); // 读入PCD格式的文件,如果文件不存在,返回-1if (pcl::io::loadPCDFile&amp;lt;pcl::PointXYZ&amp;gt;(&quot;cloud.p
原创
4175阅读
3评论
5点赞
发布博客于 2 年前

【亲测有效】VS调试成功后,弹出报错:找不到”***.dll“文件,建议重新安装程序。

64位windows系统C盘中会存在下面的两个文件夹:System32:Windows 操作系统的系统文件夹。是操作系统的中枢。存放运行64位程序所必须的组件(可以粗暴的理解为dll)SysWOW64:Windows操作系统的子系统,存放运行32位程序所必须的组件。所以后者可以理解成前者的虚拟机,以32位运行的程序所需的组件都要到SysWOW64里面找,64位的去System32里...
原创
8759阅读
0评论
8点赞
发布博客于 2 年前

点云处理以及三维重建 PCL滤波

点云处理方法https://blog.csdn.net/pdw521/article/details/82492428?utm_source=blogxgwz4三维重建https://www.cnblogs.com/wangyaning/p/7853894.htmlPCL函数查阅http://docs.pointclouds.org/trunk/index.html点云数据处理过程的方...
原创
1353阅读
0评论
5点赞
发布博客于 2 年前