- 博客(48)
- 收藏
- 关注
原创 Java--String、StringBuffer、StringBuilder之间的区别:
在Java语言中,共有byte、short、int、long、float、double、boolean、char 8个基本数据类型,其中char类型表示单个字符。在实际的编程过程中,我们比较常用的是由多个字符组成的“字符串”,由于没有表示“字符串”的基本数据类型,所以Java提供了一个被final修饰、不能被继承的类String,从而为我们能够使用字符串类型提供了方便。随着Java语言的不...
2020-03-03 12:14:38
210
原创 [ 算法 ] -- 堆排序,Java实现
堆的基本概念:堆是一棵所有元素按完全二叉树的顺序存储方式存储的完全二叉树。堆的性质: --堆中某个节点的值总不大于或不小于其父节点的值; --堆总是一棵完全二叉树。小根堆:每个节点的值小于等于左、右孩子的值(根节点最小的堆)大根堆:每个节点的值大于等于左、右孩子的值(根节点最大的堆)父节点 n ==&g...
2019-08-23 23:38:38
255
原创 maven管理工具连接MySQL时报出错误:不建议在没有服务器身份验证的情况下建立SSL连接
连接数据库出现的警告:Sat Aug 10 22:26:00 CST 2019 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL...
2019-08-10 23:00:51
4190
原创 IDEA中安装 Lombok 插件及遇到的问题
Lombok的简介:lombok是一个通过注解以达到减少代码的Java插件,用于帮助开发人员消除Java代码的冗长(尤其对于简单的Java对象),减少get()、set()、构造方法等的编写。Lombok的安装:1. 打开IDEA,选择插件:File --> Setting --> Plugins2. 选择Browse repositories,双击3. 搜...
2019-08-08 17:39:35
3336
1
原创 [ 算法 ] -- 归并排序,Java实现
归并排序基本思想:归并排序是建立在归并操作上的一种有效的排序算法,采用“分治”思想。归并排序将已经有序的子序列合并成一个序列,得到的序列完全有序;二路归并:将两个有序表合成一个有序表归并排序的特点:时间复杂度:O(n*logn)空间复杂度:O(n)稳定性:稳定归并排序的步骤:1. 分解:将待排序的序列平均分解成两个元素个数相同的子序列;2. 合并:合并两个有序...
2019-08-05 19:53:00
119
原创 [ 算法 ] -- 快速排序(递归、非递归、优化),Java实现
快速排序思想:快速排序使用“分而治之”的思想,在待排序的元素中选取某一元素作为基准值,通过一趟快速排序将待排序序列分割成两部分,基准值左边部分的所有元素均小于基准值,右边部分的所有元素均大于基准值,之后分别对这两部分重复上述过程,直到所有元素排在相应位置,即完成本次快速排序。时间复杂度:平均:O(n*logn);最坏:O(n^2)空间复杂度:O(log n),最坏:O(n)-->...
2019-07-27 11:03:57
523
原创 [ 算法 ] -- 选择排序,Java实现
选择排序:每次从待排序的数据元素中选出最小(或最大)的元素,存放在起始位置,直到全部待排序的数据全部排完。实现思路1:每一趟排序,j = i + 1;当arr[j]<arr[i],交换,否则不交换实现思路2:先选出待排序数据中的最小元素,再进行交换时间复杂度:O(n^2)空间复杂度:O(1)选择排序是不稳定的排序思路1代码实现:import java...
2019-07-25 18:12:10
159
原创 [ 算法 ] -- 希尔排序,Java实现
希尔排序:希尔排序又称为缩小增量法,是对直接插入排序算法的最坏情况的优化。实现过程:先将数据分成不同的组,对每一组进行排序,然后再对所有元素进行一次插入排序,减少数据交换和移动的次数。在进行希尔排序时,要先知道数组的长度,根据长度确定步长大小。当步长为1时,采用直接插入排序。具体实现由下图所示:时间复杂度:希尔排序的时间复杂度与增量(步长len)的选取有关。...
2019-07-25 11:21:31
132
原创 [ 算法 ]-- 直接插入排序,Java实现
直接插入排序:在一个已经有序的序列中插入一个新的数,使得插入之后的序列依然有序。插入排序的基本思想是将一个数插入到已经有序的序列中,得到一个新的、个数加一并且依然有序的序列。基本实现思路:对于给定的元素个数为n的数组,已知只有一个元素的数组一定有序,即将第一个元素自动看成一个有序数组,其余的元素为无序;从第二个元素开始到第n个元素,依次向有序序列中执行直接插入操作,得到有n个元素的...
2019-07-24 17:32:33
173
原创 编程题--链表分割
题目描述:编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割后保持原来的数据顺序不变解题思路:import java.util.*;/*public class ListNode { int val; List...
2019-07-24 11:08:20
237
原创 Linux下升级gcc版本(9.1.0版本)
1. 普通用户中下载gcc的最新源码包:wget http://ftp.gnu.org/gnu/gcc/gcc-9.1.0/gcc-9.1.0.tar.gz2. 解压安装包tar -xzvf gcc-9.1.0.tar.gz3. 进入目录gcc-9.1.0cd gcc-9.1.04.运行download_prerequisites脚本./contrib...
2019-07-03 11:11:09
10231
10
原创 编程题--最后一词
题目描述:给定一个可能由任意数量的字母和空格组成的字符串序列,序列中每个只包含字母,不包含任何空格的子序列称为一个单词。请输出一个序列中最后一个单词的长度。输入描述:一个有字母和空格组成的字符串输出描述:字符串中最后一个单词的长度示例1:输入:carpe diem输出:4解题思路:1. 将输入的字符串序列转换为字符数组;2. 遍历数组,查找字...
2019-06-30 21:25:52
386
原创 软件测试--测试分类
按开发阶段分:分为单元测试、集成测试、系统测试(包含回归测试、冒烟测试)、验证测试测试金字塔与业务测试分析:单元测试:对软件组成单元进行测试又称为模块测试测试目的:检验软件基本组成单位的正确性测试阶段:编码前或者编码后(TDD)测试对象:软件设计的最小单位--模块测试人员:白盒测试工程师或开发工程师测试依据:代码和注释+详细设计文档测试方法:白盒...
2019-06-30 18:09:48
1235
原创 软件测试--测试用例的相关概念及设计方法
相关概念:测试用例的概念:测试用例时为了实施测试而向被测试的系统提供的一组集合,其中包括:测试环境、操作步骤、测试数据、预期结果等好的测试用例是一个不熟悉业务的人也能依据用例来很快地进行测试;测试:向被测试的程序输入的一组集合;测试用例解决的问题:1. 不知道是否较全面地测试了所有功能;2. 测试的覆盖无法衡量;3. 对新版本的重复测试很难实施;4. 存在大量冗...
2019-06-29 16:08:53
808
原创 软件测试--缺陷
软件测试的生命周期:需求分析 --> 测试计划 --> 测试设计、测试开发 --> 测试执行 --> 测试评估软件测试&软件开发生命周期:1. 需求阶段:测试人员了解需求、对需求进行分解,得出测试需求;2. 计划阶段:根据需求编写测试计划、测试方案;3. 设计阶段:包括概要设计和详细设计,测试人员适当的了解设计,对于设计测试用例很有帮助,测试人员...
2019-06-28 16:57:28
836
原创 软件测试--软件测试模型:V模型和W模型
软件测试 V模型:测试流程: V模型测试流程:需求分析--概要设计--详细设计--软件编码--单元测试--集成测试--系统测试--验收测试V模型最早有Paul Rook在20世纪80年代后期提出的,目的是改进软件开发的效率和效果,是瀑布模型的变种。软件测试V模型指出:单元和集成测试应检...
2019-06-26 22:59:11
2468
原创 软件测试--软件测试的五种开发模型
软件工作的范围不仅局限在程序编写,而且扩展到了软件的整个生命周期,如软件基本概念的形成、需求分析、设计、实现、测试、安全部署、运行维护,指导软件被更新和替换新的版本。软件工程还包括过程管理、产品管理、资源管理和质量管理等技术性的管理工作。软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用于作为软件工作的基础。软件的生命周期指从软件产品的设想开始到软件不再使用...
2019-06-26 16:41:25
1380
原创 编程题--求1+2+3+...+n的和,不能用for、while、if等
题目描述: 求1+2+3+...+n的和,要求不能使用乘除法、for、while、if、else、switch、case等关键字 及条件判断语句(A?B:C)。解题思路: 可以使用短路算法&&,当"n = 0"时发生短路。代码实现:public class Solution { public int Sum_Solution(...
2019-06-25 22:28:26
658
原创 编程题--左右最值最大差
题目:给定一个长度为N(N>1)的整型数组A,可以将A划分成左右两个部分,左部分A[0..K],右部分A[K+1..N-1],K可以取值的范围是[0,N-2]。求这么多划分方案中,左部分中的最大值减去右部分最大值的绝对值,最大是多少?给定整数数组A和数组的大小n,请返回题目所求的答案。测试样例:[2,7,3,1,1],5返回:6分析:本题的要求是“数组左边部...
2019-05-17 17:54:29
357
原创 Java--方法重载与方法覆写(方法重写)的区别
方法重载(Overload):https://mp.csdn.net/postedit/88760397方法覆写(Override): https://mp.csdn.net/postedit/902419381.概念不同重载:方法名相同,参数的列表或返回值不同,与返回类型无关 覆写:方法的名称、返回值类型、参数类型及个数完全相同2.关系不同重载:同一个类中方法之间的关系,是水...
2019-05-15 19:08:39
647
原创 Java--覆写
概念:子类定义与父类相同的方法或属性时,该操作称为覆写1.方法的覆写(研究抽象类和接口的第一步)概念:子类定义了与父类方法名称、参数类型及个数完全相同的方法注意:子类被覆写时不能够拥有比父类更为严格的访问控制权限 你当前使用的对象是通过哪个类new的 当调用某个方法时,如果该方法已经被子类所覆写,那么调用的一定是被覆写过的方法举例:class People...
2019-05-15 19:05:50
174
原创 Java--面向对象->多态
概念:多态是指一个类的实例的相同方法在不同情形下有不同的表现形式从而得到良好的设计1.多态的核心表现1.1方法的多态性方法的重载:同一个方法名称可根据参数的类型或个数不同调用不同的方法体 方法的重写:同一个父类的方法,可根据实例化子类的不同有不同的形式1.2对象的多态性(抽象类和接口才能体会到实际用处)对象多态性的前提:方法覆写对象的向上转型:父类 父类对象 = 子...
2019-05-15 17:48:38
122
原创 Java--面向对象->继承
继承的作用:继承可以使用现有类的全部功能,并在无需重新编写原来类的情况下对功能进行扩展1.继承的实现在Java中,继承用extends关键字实现,定义的语法:class 子类 extends 父类举例:未扩重新属性class People{ private String Name; private int age; public void ...
2019-05-15 17:41:19
173
原创 Java--面向对象->内部类
一、概念内部类是一个类的内部进行其他类结构的嵌套的操作简单定义:package com.wl;//内部类的简单定义class Outer{ private String msg = "Hello World!"; //定义一个内部类 class Inner{ //内部类中的普通方法 public void print(...
2019-04-11 16:40:14
149
原创 Java--面向对象->代码块
定义:代码块是用 {} 定义的一段代码分类:(根据代码块定义的位置以及关键字分)普通代码块、构造块、静态块、同步代码块1.普通代码块普通代码块是定义在方法中的代码块举例:package com.wl;public class Test { public static void main(String[] args) { //直接使用{}定义...
2019-04-02 22:24:50
189
原创 Java--面向对象-> 封装
封装是面向对象的三大特征之一。封装是指将客观事物封装成抽象的类,类将自己的数据、方法、属性或者实现细节的处理方式让可信的类或者对象操作,对不可信的类或对象进行信息隐藏(即内部操作对外部而言不可见)。 封装也可以理解为选择性的公开或隐藏默写信息,解决了数据额安全性问题。要使对象不能直接操作属性(即实现内部操作对外部不可见),可使用private进行封装。用private进行封装的属性,...
2019-04-02 19:37:21
225
原创 Java--方法的定义与使用,方法重载,方法递归
1.方法定义方法是一段可以被重复调用的代码块方法声明:如果方法以 void 关键字声明,那么该方法无返回值;若有返回值,返回值可以为基本类型和引用类型。 方法以 void 声明时,可以用 return 结束调用(与 if 语句配合使用)public class Main { public static void main(Strin...
2019-03-23 14:50:05
1214
原创 Java--Java中抽象类的定义、抽象方法的定义、抽象类的使用
一、抽象类与抽象方法的定义抽象类:只在普通类的基础上扩充了一些抽象方法 抽象方法:只声明而未实现的实体(即抽象方法没有方法体)所有的抽象方法和抽象方法所在的类都要使用abstract关键字定义,用abstract关键字定义的抽象方法所在的类称为抽象类抽象类中包含抽象方法,抽象方法不包含方法体,即抽象类中没有具体实现,所以抽象类中不能直接产生实例化对象举例:创建一个简单的抽象...
2019-03-01 12:56:04
13845
2
原创 Windows环境下安装MySQL
1. 下载MySQL安装包百度网盘下载:下载链接:https://pan.baidu.com/s/1RcBM9F57zdurgvxB2PTfpQ 提取码:2fev 检查系统是否已安装MySQL如果系统已安装MySQL,建议卸载之后重新安装2. 开始安装2.1执行安装包执行安装包后,同一授权许可,继续下一步2.2 选择安装类型Developer Default...
2018-12-08 00:16:04
486
原创 给定一个英文字符串,写一段代码找出字符串中首先出现三次的英文字母
输入描述:输入数据为一个字符串,包括字母,数字输出描述:输出首先出现三次的那个英文字符示例:输入:Hava you ever gone shopping and 输出:e程序代码如下:public class Test2 { public static char FindThreeChar(String str){ if(str=...
2018-12-05 21:11:20
1167
原创 Java--面向对象的三大特征:继承性、封装性、多态性
一、面向对象的三大特征:继承性:继承是指一种能力,是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法,它可以用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类继承方法...
2018-11-29 22:11:26
868
原创 Java--String类“==”与equals的区别
String类“==”与equals()的区别:“==”:进行的数值比较,比较的是两个字符串对象的内存地址数值。“equals()”:可以进行字符串内容的比较用"=="比较,“”==比较是针对两个String类型的变量的引用,如果两个String类型的变量,它们所引用同一个String对象(即指向同一块内存堆),则"=="比较的结果是true。用equals()比较,Strin...
2018-11-28 23:34:20
266
原创 Java--Java注释、标识符与关键字
Java的注释 单行注释:// 注释内容(用的最多) 多行注释:/* 注释内容*/(不推荐) 文档注释: /** 文档注释 */(常见于方法和类之上描述方法和类的作用),可用来自动生成文档Java的标识符 Java语言中,对于变量,常量,函数,语句块也有名字,我们统统称之为Java标识...
2018-11-21 15:08:17
196
原创 Java--使用 Java 语言分别计算 1.1+2+...+100 和 2. 10! 的值
使用Java语言计算:1. 1+2+. . .+100 的值;2. 10!的值。程序代码如下:public class Test5{ public static void main(String[] args){ //1~100 int result1=sum(100); System.out.println("1+2+...+100="+result1);//计算...
2018-11-20 22:23:20
811
原创 Java--使用Java语言编写程序,打印乘法口诀表
程序代码如下:public class Test2{ public static void main(String[] args){ for(int i=1; i<10; i++){ for(int j=1; j<=i; j++) { System.out.print(j+"*"+i+"="+j*i+"\t"); } System.out...
2018-11-20 16:42:46
4224
原创 Java--Java语言编写“猜数字游戏”
题目要求:用Java语言编写猜数字游戏,首先生成[0,100)的随机数,玩家进行猜数字游戏,猜错后继续输入数字,直到猜对,并输出玩家总共猜的次数。本文共写了两段程序,第一段是只能玩一次游戏,猜对后即退出程序;第二段是可以重复玩多次,直到按0或者其他错误命令退出程序。只能玩一次游戏的情况,程序代码如下:import java.util.Random;import java.util...
2018-11-20 13:50:53
5839
原创 数据结构--合并两个有序链表,合并后依然有序
解题思路: 假设有两个有序单链表List1、List2首先创建新的空链表,用于存放结果如果两个有序单链表均为空,结果链表为空;如果有一个有序单链表为空,则结果链表为另一个链表;如果两个有序单链表均不为空,则根据以下方法进行合并合并结束的条件:两个链表有一个为空//合并两个有序链表,合并后依然有序ListNode * MergeOrderedList(ListNode...
2018-11-17 14:40:24
1981
原创 C语言判断某一年份是否为闰年
我们首先要知道闰年的判断条件:1. 该年能够被4整除但不能够被100整除;2. 该年能够整除400下面是具体的程序代码:#include <stdio.h>int main(){ int n; printf("请输入年份"); scanf("%d",&n); if(((n%4)==0)&&((n%100)!=0)||((...
2018-11-17 12:51:14
2883
原创 什么是软件测试?测试与研发有什么区别?
什么是软件测试?定义:验证软件功能是否满足用户的需求软件测试是在软件投入使用之前通过手动或自动的方法对软件进行测试,以找出与预期结果不相符的地方,以检验软件功能是否符合用户的需求测试与研发的异同:测试的任务是发现程序中的缺陷;测试贯穿于软件开发的整个生命周期。一、不同点1.完成的工作不同: 测试主要由测试人员和开发人员来执行,测试人员完成黑盒测试(功能...
2018-11-14 18:42:08
9972
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人