自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

原创 软件测试课程总结

1 软件测试存在正反两面的观点你是怎样认识的?正向思维:评价一个程序或系统的特性或能力并确定是否达到预期的结果 -> 在设计规定的环境下运行软件的所有功能.直至全部通过逆向思维:测试是为发现错误而针对某个程序或系统的执行过程 -> 寻找容易犯错误的地方和系统的薄弱环节试图破坏系统.直至找不出问题。正面:测试是为了验证软件是否符合用户需求,即验证软件产品是否能正常工作,是正向思维,针对软件系统的所有功能点,逐个验证其正确性。反面:人们无法证明软件是正确的,只能认定软件是有错误的

2021-12-15 15:27:46 1770 1

原创 Java反射与注解

java反射和注解1 注解1.1 什么是注解?Annotation是从JDK5.0开始引入的新技术Annotation的作用不是程序本身,可以对程序作出解释。(这一点和注释(comment)没什么区别)可以被其他程序(比如:编译器等)读取Annotation的格式注解是以“@注解名”在代码中存在的,还可以添加一些参数值例如:@Suppress Warning(value=“unchecked”).Annotation在哪里使用?可以附加在package,class,me

2021-10-28 18:27:07 1277

原创 MyBatis是如何防止SQL注入的?

什么是SQL注入?sql存在漏洞,会被攻击,导致数据泄露SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。如果程序员信息安全意识不强,采用动态构造SQL语句访问数据库,并且对用户的输入未进行有效性验证,则存在SQL注入漏洞的可能性很大。一般通过页面的报错信息来确定是否存在SQL注入漏洞

2021-10-25 12:53:53 3885 1

原创 MyBatis分页方法

分页思考:为什么要分页!减少数据的处理量使用Limit分页语法:SELECT * from user limit startIndex,pageSizeSELECT * from user limit 3 #[0,n]使用Mybatis实现分页,核心SQL接口//分页List<User> getUserByLimit(Map<String,Integer> map);Mapper.xml<!-- 分页--> <se

2021-10-25 12:33:04 492

原创 IOC控制原理--使用set方法将创建对象的权力交由给第三方

IOC什么是IOC?控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做**依赖注入(Dependency Injection,简称DI**),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。IOC是怎么来的?1、UserDao 接口public i

2021-10-13 23:10:03 168

原创 实体类定义规则

实体类命名PO, entity :persistent Object 持久化对象有时候也被称为Data对象,对应数据库中的entity,可以简单的认为一个PO对应数据库中的一条记录。VO: View Object表现层对象主要对应页面显示(web页面/swing界面)的数据对象可以和表对应,也可以不对应,这个根据实际业务的需要DTO(TO):Data Transfer Object 数据传输对象比如一张表有100个字段,那么对应PO就有100个属性(大多数情况下DTO内的数据来源于多个表)

2021-10-11 13:03:32 155

原创 MySQL学习笔记

MySQLpdf文档之后会传至csdn库以及百度云网盘,也可在评论留下邮箱取用。1 初识MySQL1.1 什么是数据库数据库(DB,DateBase)概念:数据仓库,软件,安装在操作系统之上!SQL,可以存储大量数据。500万!作用:存储数据,管理数据1.2 数据库分类关系型数据库(SQL)MySQL, Oracle, Sql Sever, DB2, SQLite通过表和表之间,行与列之间的关系进行数据的存储非关系型数据库(NoSQL) Not OnlyRedis, MongD

2021-10-07 01:15:51 525

原创 Java多线程开发学习笔记--线程池

线程池使用线程池背景:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。思路:提前创建好多个线程,放入线程池,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。类似于生活中的公共交通工具。好处:提高了响应速度(减少了创建新线程的时间)降低资源消耗(重复利用线程池中的线程,不需要每次都创建)便于线程管理corePoolSize:核心池的大小maximumPoolSize:最大线程数keepAliveTime:线程没有任务时最多保存多长时间后会

2021-09-28 17:06:58 79

原创 Java多线程开发学习笔记--Lock锁

Lock(可重入锁)从JDK 5.0开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对向来实现同步。同步锁使用Lock对象充当;java.util.concurrent.locks.Lock;接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Lock对象加锁,线程开始访问共享资源之前,应先获得Lock对象。ReentrantLock 类实现了Lock,它拥有与synchronized相同的并发性和内存语义,在实现线程安全的控制中,比较常用的是

2021-09-28 12:16:26 87

原创 Java多线程学习笔记--死锁

死锁多个线程各自占用一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形,某一同步块同时拥有”两个以上对象的锁“,就可能会发生死锁。案例:死锁package com.kuang.syn;//死锁:多线程互相抱着对方需要的资源,然后形成死锁public class DeadLock { public static void main(String[] args) { Makeup g1 = new Makeup(

2021-09-28 11:49:10 61

原创 Java多线程学习笔记--线程同步

线程同步多个线程操作一个资源并发:多个线程同时操作同一个对象/同一个对象被多个线程同时操作处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象,这时候我们就需要线程同步。线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的**等待池**形成队列,等待前面线程使用完毕,下一个线程再使用。形成条件:队列和锁由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突问题,为了保证数据在方法中被访问时的正确性,在访问时加入锁机制synchroniz

2021-09-28 11:47:46 72

原创 Java多线程开发学习笔记--守护(daemon)线程

守护(daemon)线程线程分为用户线程和守护线程虚拟机必须确保用户线程执行完毕虚拟机不用等待守护线程执行完毕如,后台记录操作日志,监控内存,垃圾回收等待…package com.kuang.state;//测试守护线程//上帝守护你public class TestDaemon { public static void main(String[] args) { God god = new God(); You you = new You()

2021-09-27 22:19:58 55

原创 Java多线程开发学习笔记--线程优先级

线程优先级Java提供一个线程调度器来监控程序启动后进入就绪状态的所有进程,线程调度器按照优先级决定应该调度哪个线程来执行。线程的优先级用数字表示,范围从1~10Thread.MIN_PRIORITY = 1;Thread.MAX_PRIORITY = 10;Thread.NORM_PRIORITY = 5;用一下方式改变或获取优先级getPriority.setPriority(int xxx);package com.kuang.state;public class

2021-09-27 22:07:18 71

原创 Java多线程学习笔记--线程状态

线程状态停止线程不建议使用JDK提供的stop()、destroy()方法;【已废弃】推荐线程自己停止下来建议使用一个标志位进行终止变量,当flag = false,则终止线程运行案例:使用标志位停止线程package com.kuang.state;//测试stop//1.建议线程正常停止--->利用次数,不建议死循环//2.建议使用标志位--->设置一个标志位//3.不要使用stop或者destroy等过时或者JDK不建议使用的方法public class Te

2021-09-27 21:50:24 44

原创 Java多线程开发学习笔记--实现Callable接口

实现Callable接口package com.kuang.demo02;import org.apache.commons.io.FileUtils;import java.io.File;import java.io.IOException;import java.net.URL;import java.util.concurrent.*;//线程创建方式三: 实现Callable接口/** callable的好处* 1、可以定义返回值* 2、可以抛出异常* */publ

2021-09-27 20:39:29 52

原创 Java学习笔记 静态代理

静态代理你:真实角色婚庆公司:代理你,帮你处理结婚的事情结婚:实现结婚接口即可package com.kuang.demo1;//静态代理模式总结/** 1真实对象和代理对象都要实现同一个接口* 2代理对象要代理真实角色* *///好处:/** 1代理对象可以做很多真实对象做不了的事情* 2真实对象可以专注做自己的事情* */public class StaticProxy { public static void main(String[] args) {/

2021-09-27 20:37:48 49

原创 Java学习笔记:Lambda表达式

Lambda表达式λ希腊字母表中排序第十一位的字母,英语名称为Lambda避免匿名内部类定义过多其实质属于函数式编程的概念new Thread( ()--> System.out.println("多线程学习")).start();为什么要使用Lambda表达式避免匿名内部类定义过多可以让你的代码更简洁去掉了一堆没有意义的代码,只留下核心逻辑理解Function Interface时学习Java 8 lambda表达式的关键所在函数接口的定义:任何接口,如果值

2021-09-27 20:35:51 120

原创 Java多线程学习笔记--多线程概述以及创建多线程

Java多线程概述在操作系统中运行的程序就是进程。一个进程可以有多个线程,如视频中同时听声音,看图像,看弹幕等等。程序、线程、进程、多线程程序是指令和数据的有序集合,其本身没有任何运行的含义,是静态概念。进程则是执行程序的一次执行过程,是一个动态的概念,是系统资源分配的单位。一个进程包含多个线程,一个线程至少有一个线程,不然没有存在的意义。线程是cpu调度和执行的单位。很多多线程是模拟出来的,真正的多线程是指有多个cpu,即多核,如服务器。如果是模拟出来的多线程,即在一个cpu的情况下,在同一

2021-09-27 16:19:00 80

原创 我的刷题笔记 | 剑指 Offer 09. 用两个栈实现队列

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:["CQueue","deleteHead","appendTail",

2021-07-31 16:47:18 57

原创 我的刷题笔记 | 剑指 Offer 07. 重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例 1:Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,null,15,7]示例 2:Input: preorder = [-1], inorder = [-1]Output: [-1]思路1(递归)对于一个树而言,所有的遍历顺序都为[ 根节点, [左子

2021-07-31 16:00:46 59

原创 我的刷题笔记 | 剑指 Offer 05. 替换空格

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."限制:0 <= s 的长度 <= 10000思路1在Java中,字符串为不可变类型,因此应当先新建一个字符串实现。class Solution { public String replaceSpace(String s) { StringBuilder res = new StringBuilde

2021-07-20 18:41:19 44

原创 我的刷题笔记 | 剑指 Offer 04. 二维数组中的查找

二维数组中的查找在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]给定 targe

2021-07-20 17:52:10 56

原创 我的刷题笔记 | 剑指 Offer 03. 数组中重复的数字

找出数组中重复的数字在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 限制:2 <= n <= 100000思路1做双重循环,标记第一个元素,往后遍历,若重复则输出。代码如下:class Solution { public int findRepeatN

2021-07-20 16:57:35 52

原创 软件工程复习笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录1、软件工程概论(1)背景:软件危机表现方法软件工程管理软件工程技术原因(2)软件工程定义三要素生命周期软件定义软件开发运行维护2、过程模型(1)瀑布模型特点优点缺点适用场合(2)增量模型特点同步开发,最后继承优点缺点(3)快速原型特点优点缺点(4)螺旋模型特点适用情况优点缺点(5)喷泉模型优点缺点3、需求获取(1)软件需求什么是软件需求?软件需求的类别功能质量约束(2)获取需求的方法需求获取基于方法(3)需求分析需求可视化结构化分

2021-06-11 11:30:42 1297 8

原创 每日抑题 移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-element著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。class Solution { pu

2021-04-19 23:31:06 35

原创 每日抑题 删除有序数组的重复项

给你一个有序数组 nums ,请你原地 删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-arrayclass Solution { public int removeDuplicates(int[] nums) {

2021-04-18 22:55:28 45

原创 tracert程序的实现

计算机网络课程设计开发环境:操作系统:window 10编译环境:VC 6.0(用dev无法编译)编程语言:C++运行程序时需关闭电脑防火墙以便获取全部数据代码如下:#include <iostream>#include <winsock2.h> #include <ws2tcpip.h>using namespace std;#pragma comment(lib, "Ws2_32.lib")//IP报头typedef str

2021-01-13 15:15:00 1596

原创 解决qt中文乱码问题

在头文件加入#if defined(_MSC_VER) && (_MSC_VER >= 1600)# pragma execution_character_set("utf-8")#endif

2021-01-07 22:13:30 55

原创 操作系统实验一 熟悉Linux基本命令及编程环境

1实验内容1.1 使用常用的操作命令ls, cp, rm, mkdir, man等步骤一:显示当前目录下的文件:使用终端,输入-#pwd -#ls -l两个命令操作显示目录下的文件。步骤二:创建1个空目录使用终端,输入-#mkdir test命令操作创建一个空目录。步骤三:进入目录使用终端,输入-#cd test命令操作进入目录。步骤四:创建子目录目录使用终端,输入-#mkdir test1命令操作创建子目录目录。步骤五:在目录test1中建立一个文件k.c使用终端,输入-#cd

2021-01-07 14:42:08 2712

原创 Java实现简易计算器

也是上课老师给的案例,使用swing和awt做的这个方法比较麻烦点,把每个按钮都定义出来,所以语句长一些,我后面去看了其他人的方法,按钮可以使用数组再去循环,可以简化很多。但是暂时懒得去想了。下面贴出代码:package com;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculotor extends Frame { //声明三个面板的布局 GridLayout gl1

2020-12-08 18:33:10 447

原创 Java实现简易登录界面

上课时老师讲过的范例,回来自己打了一遍,有很多收获。也加入了自己的注释具体使用的包为java.swing以及java.awt下面贴出代码package com;import javax.swing.*;import java.awt.BorderLayout;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class Simp

2020-12-07 17:25:57 1066 1

原创 小学生测验系统

刚刚写完c语言课设。课设要求是:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出12年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出050的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答...

2020-01-08 23:53:11 671 1

Java多线程.pdf

Java多线程复习笔记,包括线程创建,关键字讲解,线程池等等。

2021-09-28

湖南工业大学软件工程概论复习笔记.pdf

湖南工业大学软件工程复习笔记,已设置为0积分共享

2021-06-11

空空如也

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

TA关注的人

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