自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java完整版(JavaSe语法,数据结构,Mysql,网络,JavaWeb, 测试)

1.JavaSe语法:JavaSe要点速记2.数据结构:6.1(Java)(顺序表)6.2.1(Java)(无头不循环单链表)6.2.2(Java)(无头不循环双链表)6.3(Java)(栈)6.4(Java)(队列)6.5(Java)(二叉树)6.6(Java)(堆)6.7(Java)(排序)6.8(Java)(Map和Set)6.9(Java)二叉搜索树3.数据库:mysql数据库4.JavaWeb: 8.Java多线程java文件9.Java网络10.Tomcat,Servlet11.Java Spr

2023-12-05 12:15:56 579 17

原创 C语言完整版笔记(初阶,进阶,深刨,初阶数据结构)

1.初阶:1.1C语言初阶易忘知识点速记2.进阶: 1.2(完结)C语言进阶易忘点速记3.深剖:2.1C语言重点解剖关键字要点速记2.2C语言重点解剖操作符要点速记 2.3C语言重点解剖预处理要点速记2.4C语言重点解剖指针和数组要点速记 2.5(完结)C语言重点解剖内存管理&&函数要点速记

2023-03-10 22:37:22 935 48

原创 Java快速io

【代码】Java快速io。

2024-04-17 13:01:13 235

原创 Python基础语法总结

24.if后面不需要括号, 空格之后写条件, 后面加上冒号, 换行之后缩进, 如果没有缩进, 则不是if的代码块.1.每条语句结束不需要分号(也可以加上), 直接换行, 注意: 如果两行代码写一行, 则必须加分号.还可以使用文档字符串, 三个引号(""" 此处写注释 """), 可以多行, 注意,单引号也可以.41.位置传参和关键字传参可以搭配使用, 位置传参在前, 关键字传参在后, 一般配合缺省参数使用.12.注释: #, 建议所有的语言注释符号后面加一个空格, 注意, #开头的这一行往后都是注释.

2023-12-27 16:32:23 2457 8

原创 Git使用

a)场景1: 在开发分支进行开发时, 主分支发现bug, 解决方法: 在开发分支下, 使用命令: git stash保存开发内容, 然后切换到主分支上, 创建修复bug分支, 修复完之后合并到主分支, 然后返回开发分支, 使用命名: git stash pop把新增的开发内容取到, 开发结束之后, 建议先将主分支的内容合并至开发分支, 在开发分支把冲突解决了, 再将开发分支合并至主分支.注意: HEAD不仅可以指向master分支, 还可以指向其它分支, HEAD所指向的分支为工作分支.

2023-12-09 17:16:18 585 5

原创 11.Java Spring

​​​​​​​

2023-12-05 12:15:21 260 2

原创 11.10Redis基础

3.操作Redis(Service层,以下举例在Controller层)3.保存和读取Session: 和原来的操作一样.如果存对象,可以先把对象转换成JSON字符串.1)在启动类上加注解@EnableCaching。2.Hash(注意: value是字典类型)b.自动操作Redis(注解)3.List(类似于队列)5. ZSet(有序)2. 配置Redis。

2023-12-05 12:14:08 145

原创 11.9密码加密,加盐算法(手动实现)

1.思路: 每次调用该方法产生唯一的盐值, 加上明文密码, 再经过md5加密形成最终的密码.注意:这种加密不安全,是有规律的,可以被暴力穷举(彩虹表).

2023-12-01 23:30:59 265 12

原创 11.8事务

使用注解@Transactional,可以写在类上或方法上,如果异常,就自动回滚,正常则自动提交.解决方法: 1.抛异常(throw). 2.使用手动方式实现事务(推荐).注意: 如果在代码中添加了try,catch捕捉到异常后,不会回滚.2.通过注解的方式实现声明式事务.1.通过代码的方式手动实现事务.

2023-11-26 14:21:13 240 18

原创 11.7统一功能处理

1.实现一个普通的类,实现HeadlerInterceptor接口,重写preHeadler方法.以上返回的是空指针异常,如果是别的异常就不会识别,建议加上最终异常 .2.将拦截器添加到配置中,并设定拦截规则.方法2:properties。

2023-11-24 14:00:03 222 9

原创 11.6AOP

1.建立在动态代理的基础上,对方法级别的拦截.是面向切面编程,是对某一类事情的集中处理.3.底层通过反射实现.

2023-11-22 18:58:38 178 9

原创 11.5MyBatis(进阶)

注意: 如果使用${}进行传参,一定要是可以穷举的,并且要进行安全性验证(例如排序,只能传asc或者desc,否则阻止传递) .a.where标签中的字段可以都为null,这样会查到所有内容,也可以个别为空,传递过去指定的条件.最前面加"(",最后面加")",去除最后一个","(如果存在),并且必须一个及以上的if标签为真.2.$的使用场景: 如果传递的值是sql的关键字,只能使用$,不能使用#(asc,desc).b.如果其中一个条件为null,会自动去重and关键字,注意要写在前后,如上图所示.

2023-11-18 11:05:15 260 4

原创 11.4MyBatis(基础)

注意: 打印SQL操作在D:\常用代码文件夹\Spring\JavaEE进阶配置文件汇总\JavaEE 进阶配置文件汇总。注意2:如果查询返回的是多个对象(放在List中返回),resultType仍是一个对象的类型.3.如果不想污染数据库,使用注解@Transactional,这个注解可以修饰类和方法.b.XML: 放在mybatis包底下.因为配置文件中进行了路径配置.注意1: 注册路由时,全部使用小写,使用-或者_进行分割.2.编写Mapper层代码(先创建接口,再写XML).

2023-11-16 22:49:40 196

原创 11.3SpringMVC

3.方法注解: @RequestMapping(valve ="/hi", method = RequestMethod.POST)(一般用下面两种方法)6.文件传输(图片,文本,MP3......): 使用注解@RequestPart,注意格式.2.对应多参数,使用对象传参(类在后端实现好),前端传这个类中全部的属性.注意: 这个注解在类和方法上都要使用,代表不同等级的路由.b.新方法: 使用注解@SessionAttribute。b.新方法: 使用注解@CookieValue。

2023-11-15 11:26:03 472

原创 13.测试

13.1测试基础概念13.2测试用例13.3测试用例进阶13.4web自动化测试(Selenium3+Java)13.5 Junit5(针对Java的单元测试框架)13.6性能测试理论13.7性能测试工具(LoadRunner)(简单扫盲)

2023-10-31 23:00:03 583 16

原创 13.7性能测试工具(LoadRunner)(简单扫盲)

2)结束事务: lr_end_transaction("login", LR_AUTO);1)开始事务: lr_start_transaction("login");注意: jojo账号是默认的,文件名是账号,打开文件的第一行就是密码.b.插入集合点: 为了达到并发的目的,使用户同时发起请求.2.LoadRunner可以设计非常丰富的测试场景.3)注意: 事务必须有开始和结束,并且名字必须一致.c.插入检测点: web_reg_find。功能: 录制脚本(编写脚本).功能: 设计场景,运行场景.

2023-10-31 22:59:34 308 4

原创 13.6性能测试理论

2.性能测试流程: 需求分析->测试计划->选择一个性能测试工具->编写性能测试脚本->执行性能测试脚本->产出一个性能测试报告。注意: 在性能测试中,出现不符合预期的情况,不叫bug,叫性能瓶颈,开发人员修复的过程,而叫优化.4.可靠性测试: 验证系统在一个持续的时间段内运行, 在这个时间段内,观察系统各项指标是否正常.b.应用场景: 系统刚上线时需要进行性能摸底(比如同一个业务,同旧版本比较,查看各种指标).a)硬件: 服务器CPU核心数量,CPU利用率,内存,磁盘访问频率,网络带宽.

2023-10-29 10:49:41 266 10

原创 13.5 Junit5(针对Java的单元测试框架)

3.@BeforeAll,@AfterAll, @BeforeEach, @AfterEach :都要写成静态方法.注意: 在.csv文件有n行参数,就会运行n次方法, 传入空字符串,直接使用单引号.c)@BeforeEach: 在每个测试方法执行之前执行的方法.a)@BeforeAll: 在所有测试方法执行之前执行的方法.d)@AfterEach: 在每个测试方法执行之后执行的方法.b)@AfterAll: 在所有测试方法执行之后执行的方法.这里执行的一些任务,比如创建驱动, 打开浏览器.

2023-10-26 10:57:39 259 11

原创 13.4web自动化测试(Selenium3+Java)

4.(不推荐使用)submit: 提交,和click作用一样,但是有弊端,如果点击的元素放在非form标签中,此时submit会报错(比如超链接(a标签)).7.设置长宽: driver.manage().window().setSize(new Dimension(600, 800));a.隐式等待(webDriver.manage().timeouts().implicitlyWait())6.全屏: driver.manage().window().fullscreen();

2023-10-24 16:36:32 1526 15

原创 13.3测试用例进阶

冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件主要的功能的核心流程正常,在进行正式测试之前执行.冒烟测试一般是开发人员在开发完毕之后,提交给测试人员进行测试之前,先进行冒烟测试,保证基本的功能正常,不阻碍后续的测试.黑盒测试就是在完全不考虑程序逻辑和内部结构的情况下,检查系统功能是否按照需求规格说明书的规定正常使用,是否能适当的接收输入数据,而输出正确的结果,满足规范需求,所以黑盒测试又称之为数据驱动测试,只注重软件的功能.

2023-10-21 12:54:53 294 11

原创 13.2测试用例

依据需求,将输入划分为若干个等价类,从等价类中选出一个测试用例,如果这个用例通过测试,则认为其所代表的等价类测试通过,这样就可以使用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题.c)使用cmd,先切换到allpirs的安装路径,然后输入命令: allpirs.exe 输入.txt > 输出.txt。1.测试用例万能公式: 功能,界面,易用,兼容,性能,安全,网络,中断.b.对参数进行测试(传参数,不传参数,传入非法参数).a.方法参数(参数类型,被给参数,参数为空).

2023-10-19 11:13:54 198 9

原创 13.1测试基础概念

start -> 需求分析(需求文档) -> 计划 -> 设计(技术文档,比如接口,库表,mq,定时任务和UI视觉表) -> 编码 -> 测试 -> end。包含项目名称,开发人员,测试人员,产品经理,BUG,开发周期,测试周期(及开始时间和结束时间),测试用例和风险,可能有测试文档和技术文档.测试: 需求分析() -> 测试计划 -> 测试设计 -> 测试开发 -> 测试执行 -> 测试评估。b.文字表达能力(描述bug,编写测试用例的文字描述,编写测试文档).a.特点: 开发一个V,测试一个V.

2023-10-16 21:38:34 248 18

原创 12.JVM

1.java文件,编写时是一个.java文件,编译后现成一个.class的字节码文件,运行的时候,JVM就会读取.class文件,放到内存中,并且构造类对象.a.类加载器:JVM加载.class文件的时候,需要用到类加载器的模块,JVM自带三个类加载器(程序员可以自己写),分别如下.)可达性分析:JVM会从代码中可以直接访问到的引用出发,尝试访问所有对象,如果能访问到,就是可达的,访问不到的就是垃圾.c.目的:明确优先级,标准库最优,扩展库其次,三方库最低,如果有同包同名的类,只加载优先级最高的.

2023-10-14 23:06:31 1028 11

原创 10.Tomcat,Servlet

10.1网站编写(Tomcat和servlet基础)10.2servlet基础2servlet中doGet方法无法读取body中的数据10.3使用Servlet写一个表白墙网站10.4Cookie和Session

2023-10-14 17:16:25 244 2

原创 11.2SpringBoot

1.创建时打包方式改为maven,jdk版本选择8(和本地环境匹配),SpringBoot版本使用2.*的稳定版(和jdk环境相匹配,如果本地使用jdk17,可以选择3.*版本),不使用的依赖千万不要勾选.b.在类上面使用注解:@PropertySource(value = "application.properties", encoding = "utf-8")2.Spring Boot有三大特点,分别是快速添加依赖,内置web容器,自动装配.注意:第二种方法未必可以解决问题,建议使用第一种方法.

2023-10-07 17:17:35 318 15

原创 11.1Spring基础(核心概念,创建和使用,简单读取,生命周期)

在传统开发中,如果A类依赖B类,会在A类中创建B类的实例,如果B类增加一个属性,那么使用B类的构造方法需要修改代码,如果使用IoC的观念,类的实例的创建全部在app类的方法中(由Spring完成),这样B类发生改变,A类不需要修改代码.关于这个通配符(**),首先一定是两个(*),然后,ApplicationContext的对象不能使用,BeanFactory对象可以使用,但是效率很低,因为要扫描所有的路径,建议创建合适的目录。1)需要重新写一个类,通过编写多个不同的方法,返回多个同一个类的不同对象.

2023-09-28 13:13:47 326 16

原创 10.4Cookie和Session

【代码】10.4Cookie和Session。

2023-09-24 13:05:13 254 10

原创 10.3使用Servlet写一个表白墙网站

2.存档约定:前端使用post(/messageWall/message)发送http请求,使用json格式把数据传输到后端.服务器返回HTTP/1.1 200 ok.3.读档约定:使用get(/messageWall/message),服务器返回HTTP/1.1 200 ok,和json数组.1.注意,静态页面放在webapp目录下,不是WEB-INF,1.首先使用Fiddler抓包,判断是前端问题还是后端问题.2.如果是前端问题,去浏览器的开发者工具(F12)找错.4.使用maven管理数据库资源包.

2023-09-23 21:58:46 293 4

原创 9.Java网络

​​​​​​​。

2023-09-21 18:43:35 534 37

原创 10.2servlet基础2

3)resp.setHeader("Location", "https://www.sogou.com") : 重定向到搜狗页面(配合使用状态码302).4)resp.sendRedirect("https://www.sogou.com") : 这个操作等价于设置状态码和重定向两个操作.2)resp.setHeader("refresh", "2") : 设置刷新页面,时间间隔是2秒.1)resp.sentError(int sc) : 返回tomcat风格的错误页面.

2023-09-21 11:25:28 296 2

原创 注意事项+总结

servlet中doGet方法不支持读取body中的数据。

2023-09-20 11:04:30 758 8

原创 10.1网站编写(Tomcat和servlet基础)

首先在main目录下创建一个目录(Directory)(和java平级),名字是webapp(规定这个名字,不能用大写).在刚刚创建的目录下,再创建一个目录(Directory),名字是WEB-INF(规定这个名字,不能用小写).接着在上一步创建的目录下,创建一个文件(File),名字是web.xml(规定这个名字).最后在上一步创建的文件中放入一段固定的代码,如下所示.1.创建项目:自动生成的java下的Main和org.example不使用,删除掉.pom.xml很重要.

2023-09-17 14:58:10 677 9

原创 9.3.5网络原理(应用层HTTP/HTTPS)

b.客户端想要和服务器进行通信,发送请求之后,服务器会返回证书,这时客户端会对证书进行检验,因为客户端手里持有第三方认证机构的公钥(这个公钥不是通过网络传输的,而是直接系统内置的,客户端安装了windows系统,系统里就会内置各种认证机构的公钥,所以这个环节黑客无法攻击),所以客户端根据手里持有的认证机构的公钥对数字签名解密得到校验和的明文,根据相同的算法,对证书上的其他属性再算一次校验和,对比是否相同.b)采用键值对储存,这些数据通常是服务器返回的,不同的网站cookie是独立的,内容是程序员自定义的.

2023-09-16 21:43:18 1220 7

原创 9.3.4网络原理(数据链路层)

4.Mac地址是6字节(16进制表示,使用' - '或者' : '分割),IP地址是4字节,一台主机同时具备这两个地址,每个网卡都有独立的Mac地址.3. 在一次数据传输中,源IP和目的IP不变,源Mac和目的Mac不断地发生变化.MTU:以太网数据帧body部分的最大长度,一般为1500字节.目的Mac: 相邻两个路由器传输数据时接收方的地址.2.源Mac:相邻两个路由器传输数据时发送方的地址.a)每个电脑上在进行域名解析的时候,都会有缓存.目的IP:数据接收发的地址.1.源IP:数据发送方的地址.

2023-09-09 21:41:52 328 16

原创 9.3.3网络原理(网络层IP)

3)要想进行网络通信,就要有一个带有外网IP的设备进行中转,此时就涉及到NAT机制,当数据报到达路由器的时候,路由器会将自己的外网IP替换掉原IP(内网IP),服务器不知道具体是那个主机和自己通信,只知道发送数据报的路由器的外网IP(只知道大概的范围,不知道具体的设备).对于NAT设备(路由器),触发NAT的时候会维护一个映射表.一个32位整数(4字节),使用点分十进制,使用三个点分出四段,每段表示一个字节(8个bit位)的大小(0~255)(无符号).1)IPv4:4字节,2^32(41亿9千万).

2023-09-05 23:50:05 1876 16

原创 9.3.2.2网络原理(传输层TCP)

2)TCP在内核中,会给每个socket对象安排一个内存空间,相当于一个队列,称为接收缓冲区,收到的数据会不会放在缓冲区中,按照序号进行排列(队头数据之前的序号一定是读过了,如果重传,会自动去除,如果发生后发先置的情况,则会在队列中根据序号排好队,如果最先发的数据迟迟不到会阻塞等待).快速重传:如果普通数据丢了,必须要重传,比如,如果数据2001~3000丢了,客户端继续发送数据,服务器会一直发送确认序号2001,这时客户端就知道了数据2001~3000丢了.收到多次同样的确认序号之后,客户端就会重传.

2023-08-14 11:45:38 1180 15

原创 9.3.2.1网络原理(传输层UDP)

传输数据的时候,把原始数据和校验和都发出去,接收之后,再按相同的方式算一遍,如果相同,可以认为是正确的(不考虑特殊情况),如果不同,可以认为是错误的,该数据会丢弃,不会重新发送.3.CRC校验算法:循环冗余校验和,把UDP报中的每个字节都依次进行累加,把累加的结果,放到两个字节的变量中,溢出也无所谓,因为都加了一遍.2.1~1024的端口号有特定的含义,不建议使用.比如21:ftp,22:ssh,80:http,443:https.1.UDP的基本特点:无连接,不可靠传输,面向数据报,全双工.

2023-08-12 11:22:42 500 11

原创 9.3.1网络原理(应用层基础)

网络传输的时候,会压缩(去掉不必要的换行和空格),把所有的数据都放到一行(降低了带宽,但是影响了可读性,不过有现成的格式化工具方便阅读).使用二进制方式,约定某几个字节表示哪个属性,这样可以最大程度节省空间(不需要传输key,根据位置和长度,区分属性).json中,使用大括号表示键值对,使用方括号表示数组,数组中的每个元素,可以是数字,字符串,或者大括号和方括号.序列号:发送数据的时候,把对象转化成二进制字符串.(注意,网络上传输的数据统一为大端字节序)缺点:二进制数据,无法肉眼自己观察,不方便调试.

2023-08-12 10:57:19 288 6

原创 9.2.2Socket(TCP)

2. 获取任务:使用ServerSocket.accept()方法,作用是把内核中的连接获取到应用程序中,这个过程类似于生产者消费者模型.1.建立连接(不是握手),虽然内核中的连接有很多,但是在应用程序中,要一个一个处理.4.注意关闭文件资源(client.socket.close()).节流:I/O多路复用,I/O多路转接.(java NIO)3. 使用缓冲的时候,注意全缓冲和行缓冲.2.C10M问题:并发量太大.解决方法:使用多线程.解决方案:开源节流.

2023-08-11 21:42:07 1054 7

原创 9.2.1Socket(UDP)

2.DatagramPacket:表示一个UDP数据报.注意:这里的可不可靠是相对的,并且和安不安全无关.1.UDP:无连接,不可靠,面向数据报,全双工.2.TCP:有连接,可靠,面向字节流,全双工.1.socket文件:表示网卡的这类文件.

2023-08-11 17:15:23 475 3

空空如也

空空如也

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

TA关注的人

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