自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 收藏
  • 关注

原创 java之多态(面向对象编程)

一、向上转型及向下转型1、向上转型向上转型指的是将子类对象赋给父类引用(父类引用引用子类对象),例如实现:class Animal{ protected String name; public Animal(String name){ this.name = name; } public void eat(){ System.out.println(name+"eat"); } public void sleep(){

2021-04-26 17:34:32 268

原创 java之包的了解以及继承的了解

一、包java当中的包在Windows下可以理解为一个文件夹,在IDEA中创建一个包(package),例如:在

2021-04-21 17:27:27 238

原创 java之类和对象

文章目录一、类和类的实例化二、封装三、构造方法四、代码块五、匿名对象之前在C++中已经讲述过面向对象的概念,其实类就像模板,对象就是实体,通过一个类就可以产生多个对象。一、类和类的实例化用类类型创建对象的过程就成为类的实例化1、类的定义一个类由字段和方法组成,没有字段和方法的类不实用,例如:class Person{ //字段 public String name; public int age; static int size = 0;//静态成员变量

2021-04-16 12:04:43 187

原创 java之数组

一、一维数组java中数组内存在堆上,栈上存这块内存的地址,而在C语言中数组的内存在栈上,注意:java中的数组是引用类型1、数组的定义java中定义数组时无需指定大小,会自动匹配出数组大小,例如:int[] array1 = {1,2,3,4,5};int[] array2 = new int[]{1,2,3,4,5,6,7};int[] array3 = new int[4];//元素值为0,不是随机值也就是说array1、array2、array3都在栈上,存放的是对应内存的地址(引用

2021-04-15 19:53:12 147

原创 java程序逻辑控制以及方法的了解

java中的程序逻辑控制与C语言中的几乎相同,但是注意Java中if的条件只能为boolean表达式,while循环中的条件也只能为boolean表达式.下来着重介绍一下

2021-04-13 11:21:36 112

原创 java初识(数据类型和运算符)

文章目录一、java特点二、如何运行一个Java程序?三、数据类型与运算符1、变量八大基本数据类型2、引用数据类型(这里先介绍字符串数据类型)3、常量4、整型提升5、类型转换6、运算符一、java特点一次编译,处处运行,生态齐全。注意:(1)一个java文件中,只能有一个public的类;(2)类名需要和文件名相同;(3)编程规范建议:左括号时紧跟着当前行的;(4)类名一定要采用大驼峰的形式命名;(5)文件名不能为中文或者数字(6)main方法的public static一定要有二、如何

2021-04-06 11:55:30 170

原创 剑指offer(58---67)

文章目录58、对称的二叉树59、按之字形顺序打印二叉树60、把二叉树打印成多行61、序列化二叉树62、二叉搜索树的第k个结点63、数据流中的中位数64、滑动窗口的最大值58、对称的二叉树请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。首先考虑递归的方式,也就是对称的二叉树两边的子树要是对称的,也就是左子树的左边和右子树的右边要相同,左子树的右边要和右子树的左边相同,我们此时将根结点的左右子树当成两个数,使用一个函数实现看起是否对称即可(

2020-07-23 17:42:19 220

原创 剑指offer(51---57)

文章目录51、构建乘积数组52、正则表达式匹配53、表示数值的字符串54、字符流中第一个不重复的字符55、循环中环的入口结点56、删除链表中重复的结点57、二叉树的下一个结点51、构建乘积数组给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * … * A[n-1],B[n-1] = A[0] * A[1] * … * A[n

2020-07-21 22:21:41 145

原创 剑指offer(41---50)

文章目录41、和为s的连续正数序列42、和为s的两个数字43、左旋转字符串44、反转单词顺序列45、扑克牌顺子46、41、和为s的连续正数序列小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列?在看到这个题目时,我们可以想到一个类似

2020-07-20 18:32:10 157

原创 剑指offer(31---40)

文章目录31、整数中1的个数32、把数组排成最小的数33、丑数34、第一个只出现一次的字符35、数组中的逆序对36、两个链表的第一个公共结点37、数字在排序数组中出现的次数38、二叉树的深度39、平衡二叉树40、数组中只出现一次的数字31、整数中1的个数求出1到13的整数中1出现的次数,并算出100到1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任

2020-07-17 22:37:02 176

原创 剑指offer(21---30)

文章目录21、栈的压入、弹出序列21、栈的压入、弹出序列输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)class Solution {public: bool IsPopOrder(vector<int> pushV,vec

2020-07-16 20:10:51 154

原创 剑指offer(11---20)

文章目录11、二进制中1的个数12、数值的整数次方13、调整数组顺序使奇数位于偶数前面14、链表中倒数第k个结点15、反转链表16、合并两个排序的链表17、树的子结构18、二叉树的镜像19、顺时针打印矩阵20、包含min函数的栈11、二进制中1的个数输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。一般拿到这种问题,我们首先想到的算法就是判断最低位是不是1,也就是将这个数与1做与运算,看是否是1,如果是1,个数+1,然后这个数右移一位,进行循环直到这个数为0,但是这种方法在遇到

2020-07-15 16:24:29 134

原创 剑指offer(1---10)

文章目录1、二维数组中的查找2、替换空格3、从尾到头打印链表4、重建二叉树5、用两个栈实现队列6、旋转数组的最小数字7、斐波那契数列8、跳台阶问题9、变态跳台阶1、二维数组中的查找在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数从题目看这个二维数组的规律是从上到下,从左到右是依次递增的,这里就可以利用二分查找的思想来实现,将数组看成一个矩阵,这里有一个特殊的

2020-07-14 22:28:56 140

原创 点餐系统

文章目录项目简介1、项目背景2、市场调研3、技术调研项目设计1、概要设计2、详细设计项目测试项目简介1、项目背景随着社会餐饮行业的不断发达,许多小餐馆逐渐火爆,但由于人手不足,顾客流量大,无法对顾客所选订单进行人工订餐,因此设计点餐系统使人工解放出来,编写一个点餐系统服务器,能够支持顾客在浏览器上查阅菜单,并且进行下单点菜,且支持管理员在后台对菜单以及订单进行管理;2、市场调研许多中小型...

2020-07-14 13:22:37 5214 3

原创 持续集成--jenkins

持续集成的核心价值1、持续集成中的任何一个环节都是自动完成的,不需要太多的人工干预,有利于减少重复过程以节省时间、费用和工作量。2、持续集成保障了每个时间点上团队成员提交的代码是能够成功集成的,也就是任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能。3、持续集成有利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情境中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心。jenkinsjenkins是一个开源CI服务器,是基于java的持

2020-06-27 18:56:29 174

原创 性能测试之loadrunner的使用

性能测试方案调研测试需求1、测试业务范围:关键的、常用的、压力较大的、有代表性的、不宜过多;2、测试环境:硬件环境(主机型号、配置)、软件环境(操作系统、数据库)、网络环境(带宽、交换机、防火墙);3、测试目的:上线前调优,查找缺陷;4、性能指标:业务性能指标(首先从需求和设计中分析出性能测试需求)、系统性能指标(CPU使用率、内存使用率)测试策略和测试资源需求测试工具、测试方式、测试执行人力资源:明确所需的人员类型、由何方提供、明确职责分工;loadrunner使用进行性能测试的流

2020-06-23 23:12:40 408

原创 软件测试---性能测试

关于性能测试,首先要考虑5个WWHY:为什么要进行性能测试?WHAT:关注的性能测试内容;WHO:哪些人员关注性能?WHERE:性能测试关注的领域;WHEN:什么时候进行性能测试。为什么要进行性能测试1、为了看应用程序能否快速响应用户的要求;2、为了看应用程序能否处理预期的用户负载并且具有盈余能力;3、为了看应用程序能否处理业务所需要的事务数量;4、在预期和非预期的用户负载下,应用程序能否稳定;5、是否能够确保用户在真正使用软件时获得舒服的体验;注意:不是提高硬件配置就能提高

2020-06-23 18:51:54 717

原创 mysql:索引和事务

索引索引就类似于书籍的目录,通过索引,可以提高表中数据的查询速率;作用:快速定位,检索数据;使用场景:(1)适用于海量数据进行条件查询;(2)适用于查询经常的依据列,这些列一定很少进行修改操作;(3)索引会占用额外的磁盘空间;尽量避免给不定长字符串的字段设置索引字段;索引的使用在创建主键约束、唯一约束、外键约束时,会自动创建对应列的索引;1、查看索引:如图为查看学生表已有的索引(表在上一篇博客已经提到)2、创建索引,对于非主键、非唯一约束、非外键的字段,可以创建普通索引,例如给班级

2020-06-06 22:40:55 173

原创 mysql---表的设计

三大范式范式就是表设计的准则,目的是让表的设计更加合理第一范式第一范式表示表中的每个字段,都是不可分割的,如图:可以看出address字段是可以分割的,可以分割为:这种情况就不满足第一范式;第二范式第二范式就是在第一范式的基础上,表中所有字段都应该与表中的主键全部关联,而不是部分关联,一般常见于组合主键,如图:可以看出这个表有两个主键订单号和产品号,产品数和产品单价都与订单号和产品号相关,但是订单金额和订单时间只与订单号相关,不与产品号相关,这就不符合第二范式的特点,数据冗余,因此可

2020-06-06 22:11:34 206

原创 自动化测试:unittest框架学习

之前学习了selenium的脚本录制和webdriver的API,在进行脚本录制导出的脚本中,多了很多代码,这些代码就是unittest测试框架;unittest框架介绍unittest是Python单元测试框架,它提供了创建测试用例,测试套件以及批量执行的反感,在安装Python之后就自带了unittest,直接import unittest就可以使用;unittest是可以对程序最小模块的一种敏捷化的测试,利用单元测试框架,创建一个类,这个类继承unittest的TestCase,这样可以把每个c

2020-06-05 23:17:35 856

原创 mysql:数据库约束、聚合查询、分组查询学习

数据库约束非空约束(NOT NULL)非空约束就是指定某列不能存储NULL,例如我们创建一个学生表,指定id不能为NULL,如图:唯一约束(UNIQUE)主键约束(PRIMARY KEY)默认约束(DEAFAULT)CHECK子句外键约束(FOREIGN KEY )...

2020-06-03 16:16:08 299

原创 自动化测试:webdriver常用API

实现一个简单的脚本例如现在我实现以下脚本:

2020-06-01 22:24:34 296

原创 mysql基础----基础增删改查

数据库基础知识数据库是什么顾名思义,就是数据的仓库,存储介质就是磁盘或者内存;数据库和文件的区别(1)数据库集中管理,文件存储数据不安全;(2)文件不利于查询和管理;(3)文件不利于海量数据存储;(4)文件不利于进程控制;数据库的分类数据库分为关系数据库和非关系型数据库,关系数据库就是数据以二维关系模型进行组织,而非关系型数据库也就是nosql不急于SQL实现的数据库;关系数据库有Oracle(收费,适合大型复杂项目)、mysql(开源免费,不太适合大型项目)、SQLserver(收费

2020-05-30 18:23:28 211

原创 自动化测试---selenium学习

自动化测试相关概念自动化测试就是在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果,也就是将人为的测试转为机器执行的过程;常见自动化测试工具QTP、selenium、jmeter(UI自动化)、appium(手机)、soapui(UI自动化)、Loadrunner等;自动化测试方法测试对象:UI、接口、代码;测试过程:系统测试、集成测试、单元测试;执行人员:测试人员、开发人员;自动化测试流程:(1)确定和搭建测试框架;(2)编写测试用例,将测试用例转为自动

2020-05-29 22:17:30 293

原创 淘宝购物车页面测试用例

淘宝购物车的功能测试点有很多,这里我只写一部分,如图:欢迎补充!!!!!!!!

2020-05-27 19:30:48 6075

原创 软件测试:测试阶段分类

测试金字塔和业务测试分析第一层:UI界面层,包含功能验证测试、兼容性与用户测试,兼容性测试主要是对硬件环境(设备)和软件环境(系统)进行测试,用户测试例如验收测试;第二层:业务逻辑层,包含客户端模拟测试(例如A为注册模块,B为登录模块,我们知道要先注册用户名和密码才能进行登录,但是此时注册模块还没有完成,要对登录模块进行测试,因此会写一个驱动生成用户名和密码,就可以对登录模块进行测试)、内外接口测试(内部接口和外部接口是相对而言的)、SDK接口测试(SDK就是软件中第三方开发工具包,这些工具一般都

2020-05-27 17:06:01 1011

原创 软件测试篇---测试用例设计方法

软件测试设计方法

2020-05-20 17:30:02 3841

原创 设计微信红包测试用例

从功能性、性能、界面、易用性、兼容性、安全性来设计,考虑一定要全面,尽可能将所有测试点写出来,如图:

2020-05-17 22:21:42 3645

原创 leetcode刷题篇---双指针

1、有序数组的 Two Sum:在有序数组中找出两个数,使它们的和为 target这个首先它的前提是有序数组,因此可以使用双指针结合二分查找的方式来进行,一个指针指向值比较小的,从头向尾移动,一个指针指向值比较大的,从尾向头移动,则可得:(1)如果两者相加结果sum==target,就得到想要的结果;(2)如果两者相加结果sum<target,则将指向值比较小的指针向后移动;(3)如果两者相加结果sum>target,则将指向值比较大的指针向前移动;实现代码:vector<.

2020-05-16 23:33:06 325

原创 软件测试:QQ登录测试用例

前言为了实现方便,这里我使用xmind来写出测试点,分为功能测试、性能测试、易用性测试、兼容性测试、安全性测试,如图为QQ登录测试用例

2020-05-16 11:38:19 4320

原创 软件测试篇---基础知识

软件测试的生命周期(软件测试的流程)软件测试生命周期:(1)需求分析:测试人员了解需求,对需求进行分解,得出测试需求;(2)测试计划:根据需求编写测试计划/测试方案;(3)测试设计、测试开发:测试人员适当了解设计,设计测试用例;(4)编码阶段:测试人员一般不需要编码,但是白盒测试人员可以计划执行单元测试,完善化测试用例以及调整测试计划和方案;(5)测试执行阶段:根据测试用例和计划执行测试,记录、管理缺陷,测试完成后编写测试报告;(6)测试评估(运行维护):对遗留bug,软件遗留问题,以及解决.

2020-05-15 16:18:13 187

原创 软件测试:设计保温水杯的测试用例

前言为了实现方便,我这里就先不写标题,测试环境(测试设备,测试系统),测试数据,测试步骤,预期结果,只写一些测试点即可如图为实现的报文水杯的测试用例(欢迎补充)

2020-05-14 21:53:48 1390

原创 Linux项目:基于HTTP协议的自主web服务器

描述采用B/S模型或者C/S模型(浏览器/服务器模型),编写支持中小型应用的http,理解常见互联网应用行为(从上网到关闭浏览器的所有操作)技术网络编程、多线程技术、cgi技术、shell脚本开发环境centos 7、 vim、gcc、gdb (语言为C++);...

2020-03-04 13:14:51 394

原创 算法总结:动态规划学习笔记

在动态规划中,状态与状态转移方程以及初始值是最重要的,只有给出了状态和状态转移方程,一切就好办了。Fibonacci要求输入一个整数n,请输出fibonacci数列的第n项我们一般的方法是使用递归的方法,但是它的时间复杂度是O(2^n),当n这个数字很大时,效率会很低,甚至栈溢出,此时我们就可以使用动态规划的方法来解决这个问题;首先,我们给出这个问题的状态:求F(n)状态转移方程是:F(...

2020-02-24 22:23:07 227

原创 delete this的问题

在复习this指针部分时,遇到了一个常考的面试题class A{ public: ~A() { delete this; }};请问这段代码会出现什么问题,首先我们可以从两部分来分析:在编译阶段,他没有任何语法问题,编译通过;但是在运行阶段,代码会崩溃,因为在类的析构函数中调用delete this,delete this本身会调用本对象的析构函数,而析构函数中又调...

2020-02-11 20:41:25 377

原创 项目:“表情包”制作---利用ffmpeg制作Gif动态图

项目名称项目工具项目环境项目内容1、一开始:Win32程序入口函数:WinMain;Win32程序一般流程(1)设计窗口类:完善窗口类的结构体;(2)注册窗口类:窗口类的名字、提供窗口过程处理函数(3)创建窗口:CreateWindow();(4)显示窗口:ShowWindow();(5)更新窗口:Updatewindow();(6)消息循环:相当于一个死循环:WM_Cl...

2020-02-11 19:59:43 4369

原创 软件测试1---概念

1、为什么要做软件测试?2、什么是软件测试?3、调试 和测试的区别4、缺陷、5、软件生命周期、6、敏捷、7、软件开发五种模型、8、两种测试模型;

2019-12-20 21:38:00 208

原创 高级IO部分

如图:五种IO模型(钓鱼的例子)IO操作的流程=等待IP条件具备+数据拷贝;“等”的意思是等条件就绪,例如input等输入条件就绪,output是等输出条件就绪;那么高效IO=减少等的比重;阻塞IO在内核将数据准备好之前,系统调用会一直等待,所有的套接字默认都是阻塞方式,直到条件具备,完成IO操作后调用返回;如图:非阻塞IO为了完成IO操作发起调用,若当前不具备IO操作条件...

2019-12-06 20:18:22 181

原创 C++进阶:C++11

列表初始化在C++98中,我们可以使用花括号对数组元素进行统一的列表初始值设定,例如:int arr1[] = { 1, 2, 3, 4, 5 };int arr2[5] = { 0 };对于一些自定义类型,无法使用花括号进行初始化,例如:vector<int> v{ 1, 2, 3, 4 };无法通过编译,导致每次定义vector时,都需要先把vector定义出来,然...

2019-12-02 16:24:11 392

原创 网络:网络基础3(重点)之数据链路层

以太网“以太网”不是一种具体的网络,而是一种技术标准以太网帧格式如图:源地址和目的地址指的是网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固化的;帧协议类型字段有三种值:分别对应IP、ARP、RARP;帧末尾是CRC校验码;MAC地址用来识别数据链路层中的相连的节点,长度是6个字节(48位),在网卡出厂时就确定了,不能修改,Mac地址通常是唯一的(虚拟机中的Mac地...

2019-11-24 16:55:39 204

空空如也

空空如也

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

TA关注的人

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