自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 『软件测试』GitHub_Crawler Test

项目需求:抓取 awesome-java 所提到的上榜项目,统计每个项目的活跃度(star,fork,opened_issue),并按照活跃程度排序,最终以柱状图形式展示。项目流程①抓取模块:获取服务器网页上的内容预期:抓取到Awesome_Java页面内容实际:Awesome_Java页面内容被提取分析:模块功能正确②分析模块:分析网页内容,解析出需要的数据预期:抓取每个项目的star、fork、opened_issue数实际:成功获取star、fork、opened_issue数

2020-06-21 20:09:49 907

原创 『JavaSE』抽象类与接口

抽象类抽象类概念:只给出方法定义而不具体实现的方法被称为抽象方法(子类会根据具体需求来具体实现,即方法的声名相同,但是方法功能主体不同)。包含一个或多个抽象方法的类称为抽象类。注意事项a.抽象方法不能是private的.b.方法前加上 abstract 关键字, 表示这是一个抽象方法,抽象方法是没有方法体的,在代码的表达上就是没有“{}”.c.抽象类中可以包含其他的非抽象方法,也可以包...

2020-03-28 10:55:07 277 1

原创 『JavaSE』面向对象三大特征

Java面向对象的三大特征:封装、继承、多态。封装Java中的封装是指一个类把自己内部的实现细节进行隐藏,只暴露对外的接口(setter和getter方法)。封装又分为属性的封装和方法的封装。把属性定义为私有的,它们通过setter和getter方法来对属性的值进行设定和获取。public class Person { private int id; private Stri...

2020-03-27 15:50:11 203

原创 『JavaSE』包

包(package)包是组织类的一种方式,使用包的主要目的是保证类的唯一性。导入包中的类Java 中已经提供了很多现成的类供我们使用. 例如public class Test { public static void main(String[] args) { java.util.Date date = new java.util.Date(); // 得到一个毫秒级别的时间戳...

2020-03-27 15:49:51 175

原创 『JavaSE』类和对象

1. 类与对象的初步认知C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。JAVA是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。面向过程注重的是过程,在整个过程中所涉及的行为,就是功能。面向对象注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将一个个功能实现连接起来面向过程: 1.把冰箱打开 2. 把大象放入 3...

2020-03-26 23:16:37 151

原创 『JavaSE』初识JVM内存区域划分

JVM 的内存被划分成了几个区域, 如图所示:程序计数器 (PC Register): 只是一个很小的空间, 保存下一条执行的指令的地址.虚拟机栈(JVM Stack): 重点是存储局部变量表(当然也有其他信息). 我们刚才创建的 int[] arr 这样的存储地址的引用就是在这里保存.本地方法栈(Native Method Stack): 本地方法栈与虚拟机栈的作用类似. 只不过保存的内...

2020-03-26 09:28:10 142

原创 『JavaSE』数组的定义

1. 数组基本用法1.1 什么是数组数组本质上就是让我们能 “批量” 创建相同类型的变量。在 Java 中, 数组中包含的变量必须是 相同类型。1.2 创建数组// 动态初始化数据类型[] 数组名称 = new 数据类型 [长度] { 初始化数据 };// 静态初始化数据类型[] 数组名称 = { 初始化数据 };int[] arr = new int[3]{1, 2, 3};...

2020-03-25 08:45:39 231

原创 『JavaSE』数组的使用

1 数组转字符串使用该后续打印数组就更方便一些import java.util.Arraysint[] arr = {1,2,3,4,5,6};String newArr = Arrays.toString(arr);System.out.println(newArr);// 执行结果[1, 2, 3, 4, 5, 6]实现一个自己版本的数组转字符串public static ...

2020-03-24 12:26:55 117

原创 『JavaSE』方法的使用

1、方法的基本用法1.1 什么是方法(method)方法就是一个代码片段. 类似于 C 语言中的 “函数”. 方法存在的意义:1)是能够模块化的组织代码(当代码规模比较复杂的时候).2)做到代码被重复使用, 一份代码可以在多个位置使用.3)让代码更好理解更简单.4)直接调用现有方法开发, 不必重复造轮子.1.2 方法定义语法基本语法// 方法定义public static 方法...

2020-03-23 23:29:27 594

原创 『JavaSE』程序逻辑控制

在Java中程序有三种结构:顺序结构、分支结构、循环结构1. 顺序结构顺序结构比较简单, 按照代码书写的顺序一行一行执行。System.out.println("aaa"); System.out.println("bbb"); System.out.println("ccc");// 运行结果// aaa// bbb // ccc2. 分支结构if语句语法:if(布...

2020-03-17 23:24:43 174

原创 『JavaSE』运算符

算术运算符Java支持所有基本的算术运算符:加,减,乘,除,求余,自加,自减等;增量赋值运算符public class Test{ public static void main(String[] args){ int numA = 10; System.out.println("numA: " + numA); //numA: 10 numA += 1; System...

2020-03-03 16:20:37 182

原创 『JavaSE』数据类型

Java里面包含8个基本数据类型,分别是:boolean、byte、char、short、int、float、douboe、long。整型变量byte占用存储空间:1字节,8位;表示范围:[-128~127];表示:byte num = 1;short占用存储空间:2字节,16位;表示范围:[-32768-32767];表示:short num = 1;int占用存储空间:...

2020-03-03 11:02:27 206

原创 『JavaSE』Java简介

Java是什么?Java是一门全球范围内使用最广泛的,面向对象的编程语言.Java语言具有功能强大和简单易用两个特征,它作为面向对象编程语言系列的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程.Java语言的优点1️⃣ .简单易学语法比较简单,学过计算机编程的开发者都能快速上手。2️⃣.跨平台跨平台是Java相对于其他语言最大的优势.Java只需要编写一...

2020-03-02 22:48:43 227

原创 『软件测试』测试分类

测试分类按开发阶段划分单元测试(Unit Testing)单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的小单 位:模块。又称为模块测试测试阶段:编码后或者编码前(TDD)测试对象:小模块测试人员:白盒测试工程师或开发工程师测试依据:代码和注释+详细设计文档测试方法:白盒测试测试内容:模块接口测试、局部数据结构测试、路径测试、错误...

2020-02-20 15:32:40 406

原创 『软件测试』测试用例的设计方法

测试用例的设计方法:基于需求的设计方法、等价类、边界值、因果图、正交排列、场景设计法、错误猜测法1、需求分析法RBT( Requirements-Based Testing)是基于需求的测试方法,按照需求去设计测试用例。有多细致的需求就有多细致的测试用例. 基于需求的测试是一种最根本的软件测试,重点关注以下两大关键问题。(1)验证需求是否正确、完整、无二义 性,并且逻辑一致。(2)要从“...

2020-02-18 17:09:29 625

原创 『软件测试』基础篇

软件测试的生命周期需求分析→测试计划→ 测试设计、测试开发→ 测试执行→ 测试评估软件测试&软件开发生命周期需求阶段: 测试人员了解需求、对需求进行分解,得出测试需求计划阶段: 根据需求编写测试计划/测试方案设计阶段: 测试人员适当的了解设计,对于设计测试用例是很有帮助的,测试人员搭建测试用例框架,根据需求和设计 编写一部分测试用例编码阶段: 测试人员一般是不需要编码...

2020-02-18 16:33:31 268

原创 『软件测试』概念篇Ⅱ

1、软件测试的目的和原则目的:验证软件有或没有问题。原则:以客户为中心,遵循软件测试的规范、流程、标准和要求2、需求用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。该 需求一般比较简略。软件需求:或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能。软件需求是测试人员进行测试工作的基本依据3、Bug①当且仅当规格说明...

2020-02-17 17:23:33 1484 2

原创 『软件测试』概念篇

什么是软件测试软件测试就是证明软件不存在错误的过程。验证软件功能是否满足用户的需求。为什么选择软件测试1、软件测试是一种趋势,它将在软件开发中占据越来越重要的位置;2、测试和开发是两个关注点不一样的工作。开发的目标是实现功能,测试的目标是确定功能是否能够正常运作。我选择测试主要是因为在这个过程中可以“发现”和“分析",软件测试讲究的是思路,尝试各种思路去发现问题,我觉得我可以在这方面充分的...

2020-02-17 15:21:15 421 1

原创 『Java』排序算法整合

直接插入排序直接插入排序(Straight Insertion Sort)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。 public static void insertSort(int[] a...

2020-02-15 00:07:45 268

原创 Java选择排序

直接选择排序原理:每一次从无序区间选出最大(或最小)的一个元素,存放在无序区间的最后(或最前) ,直到全部待排序的数据元素排完 。稳定性:不稳定复杂度:空间复杂度 O(1)时间的复杂度 O(n^2) public static void selectSort(int[]array){ for(int bound = 0; bound < array.leng...

2019-11-17 16:42:35 208

原创 Java 插入排序

直接插入排序原理:整个区间被分为有序区间和无序区间,每次选择无序区间的第一个元素,在有序区间内选择合适的位置插入。性能分析稳定性:稳定插入排序,初始数据越接近有序,时间效率越高如果当前序列很短,插入排序效率也很高。复杂度空间复杂度:O(1)时间复杂度:最好O(n) 平均O(n^2) 最坏O(n^2) public static void insertSort(in...

2019-11-17 13:21:05 147

原创 Java实现简单的图书管理系统

初步学习使用Java来编写一个简单的图书管理系统。在这个系统中实现以下几个功能。用户端:(1)查询书籍(2)借阅书籍(3)归还书籍(4)退出系统管理端:(1)查找书籍(2)增加书籍(3)删除书籍(4)打印所有书籍信息(5)退出系统书:有书名、编号、作者、类别、价格、是否被借阅等属性一本书籍的信息package package_bookmanager.book;pub...

2019-11-08 18:22:02 1679

原创 二叉树总结

树形结构树是一种非线性的数据结构,它是由n(n>=0)个有限个节点组成一个具有层次关系的集合。它具有以下特点:每个结点有零个或多个子结点;没有父 结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树。节点的度: 一个节点含有的子树的个数称为该节点的度;树的度:一棵树中,最大的节点的度称为树的度;叶子节点或终端节点:度为0的节点称为叶...

2019-11-08 16:45:22 248

原创 链表练习(二)

编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前public class Partition { public ListNode partition(ListNode pHead, int x) { if(pHead == null){ return null; } if(pH...

2019-11-03 00:42:44 144

原创 链表练习(一)

删除链表中指定的所有元素class Solution { public ListNode removeElements(ListNode head, int val) { if(head == null){ return null; } ListNode prev = head; ListNode n...

2019-11-02 17:28:20 165

原创 实现顺序表代码

public class SeqList { private int[] data = new int[10]; private int size = 0; //打印顺序表 public void display(){ System.out.print("["); for (int i = 0; i < size; i++){...

2019-11-02 13:59:17 237

原创 Java方法练习代码

求斐波那契数列的第 N 项 class Test{ public static void main(String[] args){ System.out.println(fib(100)); } public static int fib(int n){ if ( n == 1 || n == 2){ re...

2019-10-08 00:11:45 258

原创 条件与循环代码练习(二)

编写程序数一下 1到 100 的所有整数中出现多少个数字9class Test{ public static void main(String[] args){ int sum = 0; for(int i = 1; i <= 100; i++){ if(i % 10 == 9 ){ sum++; ...

2019-10-06 21:24:11 209

原创 条件与循环练习代码(一)

根据年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)import java.util.Scanner;class Test{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System....

2019-10-06 21:19:26 247

原创 Java 递归求N的阶乘 按顺序打印一个数字的每一位

方法调用执行的基本规则:·定义方法的时候,不会执行方法的代码,只有调用的时候才会执行。·当方法被调用的时候,会将实参赋值给形参。·参数传递完毕后,就会执行到方法体验代码。·一个方法可以被多次调用。注意事项:方法定义时, 参数可以没有. 每个参数要指定类型方法定义时, 返回值也可以没有, 如果没有返回值, 则返回值类型应写成 void方法定义时的参数称为 “形参”, 方法调用时...

2019-10-01 21:55:14 730

原创 Java 数组练习

// 数组转字符串int[] arr = {1,2,3,4};String newArr = Arrays.toString(arr);System.out.println(newArr);//执行结果[1, 2, 3, 4]//实现自己版本的拷贝数组public static int[] copyof(int[] arr){ int ret = new int[arr.l...

2019-09-28 14:45:03 156

原创 Java 实现单链表的基本操作

1.头插2. 尾插3. 获取长度4. 包含元素5. 移除元素import sun.plugin.javascript.navig.Link;class LinkedNode{ public int data = 0; public LinkedNode next = null; public LinkedNode(int data){ this...

2019-09-28 00:07:52 205

原创 给定两个 int 变量, 交换变量的值. 给定三个 int 变量, 求其中的最大值

给定两个 int 变量, 交换变量的值.public class Test{ public static void main(String[] args) { int[] arr={10,20}; swap(arr); System.out.println("a = "+ arr[0] + " b = " + arr[1]); }...

2019-09-20 17:54:53 383

原创 C语言实现动态通讯录

问题:之前实现的通讯录在存储方面只能支持静态的200人的存储量,如果联系人较少,则会造成较大的内存浪费,联系人较多时,就不能完成存储。可以通过将通讯录改成动态扩容版本。思考:动态扩容,我们可以使用malloc完成首次申请内存空间,第一次内存空间不足时,进行扩容,可以使用relloc或则malloc完成。需要修改初始化模块和新增联系人模块。删除之前固定的内存宏定义#define NAME_...

2019-08-29 12:38:57 192

原创 C语言实现简单通讯录

问题:实现一个通讯录,通讯录中的信息包括: 姓名、性别、年龄、电话、住址 实现实现代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<string.h>#define PERSONS_MAX_SI...

2019-08-28 22:02:01 233

原创 模拟实现C库函数:strcpy,strncpy,strcat,strncat,strcmp,strncmp,strstr ,strchr ,memcpy ,memmove

实现strcpy#include<stdio.h>#include<stdlib.h>#include<assert.h>char *Strcpy(char*dest, const char*src){ char*p = dest; assert(dest != NULL&&src != NULL); while (*dest++...

2019-08-26 22:37:13 194

原创 一级指针 、二级指针 、数组指针 、指针数组的理解

指针1)指针就是个变量,用来存放地址,地址唯一标识一块内存空间;2)指针的大小是固定的4(8)个字节(32(64)位平台);3)指针是有类型的,指针的类型决定了指针的+/-整数的步长,指针解引用操作时的权限;int main(){ int a = 1; int* pa = &a; *pa = 2; printf("%p\n",&a); // 0116F7...

2019-08-25 16:39:22 386

原创 实现一个函数,可以左旋字符串中的k个字符;判断一个字符串是否为另外一个字符串旋转之后的字符串。

题目:实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB思路:ABCD左旋一个字节,先把最左侧的A拿出来放置在tmp中,其余后一个放置在前一个字节的位置,然后把tmp中的值放置在最后一个字节上,即完成一次左旋,需要几次左旋就循环几次即可。#define _CRT_SECURE_NO_WARNINGS#include<std...

2019-08-25 11:29:20 201

原创 调整数组使奇数全部都位于偶数前面;杨氏矩阵

题目:输入一个整数数组,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分, 所有偶数位于数组的后半部分。思路:用两个指针分别指向数组首末位,当首位找到偶数末为找到奇数时,交换两个指针所指向的元素,并且对两个指针进行移位。在前指针指向元素下标小于后指针指向元素下标范围内,依次进行查找与调换。#include<stdio.h>#include<...

2019-08-23 16:46:58 159

原创 C语言操作符总结

今天分享一个自己刚整理完的C语言操作符的知识点1.算数操作符 + - * / %注: %的两个操作数必须是整数,返回的是整除之后的余数2.移位操作符<< 左移操作符 >> 右移操作符移位规则:左移: 左边抛弃,右边补0右移:分为逻辑右移和算数右移逻辑右移:左边补0,右边丢弃算数右移:左边用原值的符号位填充,右边丢弃 (一般用的是算数右移)注意:不能...

2019-08-22 15:58:34 159

空空如也

空空如也

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

TA关注的人

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