自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UDP和TCP协议

摘要:UDP和TCP是主要的传输层协议,具有显著差异。TCP通过三次握手建立可靠连接,采用确认应答、超时重传、滑动窗口等机制确保数据传输的可靠性,适合需要高可靠性的场景。UDP无连接、不可靠但高效,适合实时性要求高的应用。TCP面向字节流,支持全双工通信;UDP面向数据报。此外,TCP通过流量控制、拥塞控制等机制优化性能,而UDP需在应用层实现可靠性。异常情况下,TCP能自动处理连接中断,而UDP无此功能。理解这些差异有助于根据需求选择合适的协议。

2025-08-12 11:08:06 998 2

原创 多线程编程

本文系统介绍了Java多线程编程的核心概念与实践方法。主要内容包括:1.进程与线程的基本概念及区别,进程是资源分配单位,线程是执行单位;2.线程创建的5种方式(继承Thread类、实现Runnable/Callable接口等)及线程状态管理;3.线程安全问题产生原因(抢占执行、非原子操作等)及解决方案(volatile、synchronized);4.线程间通信机制(wait/notify)和经典设计模式(单例模式、生产者消费者模型);5.线程池的创建与配置参数(核心线程数、拒绝策略等),以及定时器Time

2025-08-11 18:18:32 949

原创 测试的用例设计

摘要:测试用例是一组包含测试环境、数据、步骤和预期结果的系统验证集合。设计方向涵盖性能、功能、界面、易用性、安全性和兼容性测试等。常用设计方法包括:等价类划分(有效/无效类)、边界值分析(边界及次边界值)、正交法(通过AllPairs工具生成代表性组合)、场景法(基本流与备用流结合)和错误猜测法(基于经验)。以邮箱注册为例,正交法可减少用例数量;而场景法则通过业务流程串联功能点,确保全面覆盖。这些方法需综合运用,以高效实现测试目标。(150字)

2025-07-11 11:45:56 661

原创 软件开发模型和测试模型

摘要:软件开发模型是围绕软件生命周期流程建立的开发框架,主要包括瀑布、螺旋、迭代、增量、敏捷等模型。瀑布模型适合需求固定的小项目,螺旋模型通过风险评估管理复杂项目,迭代和增量模型结合适用于需求不明确的大型项目。敏捷模型(如Scrum)通过轻流程、重产出的方式实现快速迭代。测试模型包括V模型和W模型,前者强调开发测试对应关系,后者主张测试开发并行。测试目的包括保证质量、提高满意度,与调试在目的、角色和执行时期上存在本质区别。

2025-06-25 11:50:28 798

原创 Cookie和Session的作用和区别

当客户端第一次向服务器发送请求时,服务器会响应登录页面,客户端将账号和密码发送给服务器,服务器验证信息通过会生成一个令牌,存储在响应报文的请求头的set-cookie键值对中将令牌发送给客户端,客户端保存令牌在cookie中,后面客户端每次请求都会将令牌发送给服务器,因为cookie在请求报文的请求头中。HttpSevletRequest对象是代表客户端的请求,当客户端通过Http协议访问服务器时,HTTP请求头中的所有信息都封装到这个对象中, 通过这个对象提供的方法,可以获取客户端请求的所有信息。

2025-06-21 18:00:21 892

原创 Java常见关键字

抽象的意思 ,修饰类和方法。有抽象方法的类为抽象类(类也必须用abstract修饰),抽象类可以没有抽象方法。抽象类不可以实例化,可以让实现类继承该抽象类,然后实例化子类。被修饰的方法,必须被实现类重写。所以抽象方法不能被final,private,static修饰。

2025-06-21 13:33:15 706

原创 异常的处理

java中不正常的行为称为异常,不同类型的异常都有对应的类描述。java中虽然定义的异常类型很多,但没有与实际情况符合的异常时,可以自定义异常类,让其继承Exception或RuntimeException。继承Exception默认是编译时异常,继承RuntimeException默认是运行时异常。//实现一个用户登陆功能if (!if (!System.out.println("登陆成功");//此时我们在处理用户名密码错误的时候可能就需要抛出两种异常.

2025-06-20 20:38:04 809

原创 ​接口和抽象类

接口定义了一种规则,行为规范,一种引用数据类型。想让哪个类拥有这类行为就让这个类去实现相应的接口。接口多态:当一个方法的参数是接口时,可以传递接口的所有实现类对象.

2025-06-20 15:56:14 1079

原创 MySQL的索引事务

当实现一个目的需要多个sql语句执行时,将这些sql语句打包成的一个整体,称作事务。事务中的sql语句要么全部执行成功,要么全部失败。对于转账这类场景,开启事务更能保证安全。当A给B转账500,A的账号-500,但中间发生了一点故障,B的账户没有+500,如果没有开启事务,那么这500就消失了。开启事务后,出现故障后,会撤销对A账户执行的操作,将A账号的金额还原到转账前。

2025-06-20 09:38:58 807

原创 MySQL多表查询

两个表的字段的类型,顺序和数量要匹配,字段名是否一样没关系。笛卡尔积会产生很多无用的数据 ,数据量太大时,可能会把数据库卡死,所以数据量很大时一般慎用多表查询。非group by分组的列,不应该写到select 的后面,除非搭配聚合函数使用,否则查询的结果没有意义。// 左外连接,join左边的表完全显示,还显示两张表共同的部分。两个表的结果集的字段数量,类型和顺序需要一样,拼接在一张表里,字段名以第一张为准。字段如果指定是表1的,那只会展示表1的部分,指定*,则两个表一起展示。

2025-06-19 15:59:56 647

原创 MySQL的增删查改

摘要:本文介绍了MySQL数据库的基本CRUD操作及约束条件,主要包括:1)数据库操作(查看、创建、删除、使用);2)常用数据类型(整型、浮点型、字符串、日期);3)表操作(创建、查看结构、删除);4)数据操作(增删改查,包含条件查询、排序、分页);5)数据库约束(默认值、非空、唯一、主键、自增、外键)。重点说明了外键约束的作用和使用方法,强调其对数据完整性的保障。文章使用小写SQL关键字演示操作,适合MySQL初学者参考。

2025-06-19 10:21:50 1352

原创 事务传播机制

如果事务执行到一半时,出现意外或者异常后续操作不能执行了,那数据库会根据操作的快照将事务已经执行的操作撤销,回滚到执行事务之前的样子。否则即使出现异常,事务也会被提交。3.可重复读(repeatable read):事务不会读到其他事务对已有数据的修改,即使其他事务已经提交,确保多次读取的数据结果一致,解决不可重复读,但是引发幻读问题。如果有两个方法A,B都被@Transactional修饰,A调用B,B方法本身也是事务,那B方法运行时是加入A事务还是再创建一个新事务,则由设置的事务传播机制决定。

2025-06-08 11:59:50 924

原创 SpringBoot配置文件

3.properties 为早期并且默认的配置文件格式, 其配置存在⼀定的冗余数据, 使用 yml 可以很好的解决数据冗余的问题, 但不适合复杂配置(可读性差);两种文件配置项的格式不同,开发中选择一个就行,当两者同时存在,配置发生冲突时,以application.properties配置项为准。1.properties 是以 key=value 的形式配置的键值类型的配置⽂件, yml 使用的是树形配置⽅式;项目启动端口号,数据库连接信息,第三方系统的调用密钥等信息,普通日志和异常日志的配置。

2025-05-25 17:49:29 1037

原创 网络编程套接字(Socket)

/构造数据报发送的数据报,数据为字节数组中,offset到length的数据,address为目的主机的ip和port。DatagramPacket是对UDP数据报的抽象表示,一个DatagramPacket对象就是一个UDP数据报 ,数据传输的基本单位。面向字节流:传输数据基于IO流,在IO流没有关闭的情况下,每次传输数据和接收数据没有数量限制,数据可以多次发送,也可以分开多次接收。DatagramSocket () //创建UDP数据报套接字的Socket,一般用于客户端(操作系统分配空闲端口);

2025-05-16 22:56:13 1080

原创 TCP/IP五层模型

应用层数据通过协议栈发送到网络上时,要经过每层协议的封装,上层协议用下层协议进行一层封装,就是在数据包首部加一个 报头,报头包含了上层协议是什么,载荷有多长 等信息。经过数据链路层封装后,发送到传输介质上传输,到达目的主机,再一层一层剥掉外层协议解析报头的信息,根据报头中的上层协议字段,将数据包交给对应的上层 协议处理。这样实现协议的封装,解耦合。给客户端提供服务的端口,称为“业务端口”,给程序员提供服务的端口称为“管理端口”,通过这个端口可以对服务器进行更精细的操控。,当地,局部组建的私有网络。

2025-05-16 16:06:30 835

原创 HTTP和HTTPS协议

唯一资源定位符,就是网址。一个具体的URLhtttps://域名(ip)/ 路径/查询字符串客户端的对称密钥 加密业务数据,服务器用非对称密钥 加密客户端对称密钥,公证机构用非对称密钥 加密服务器公钥。

2025-05-15 19:33:31 695

原创 JVM的内存划分和垃圾回收

类加载,先从ApplicationClassLoader加载器开始,如果parent引用不为null,就交给父类加载,直到父类引用为null,就尝试自己加载,如果没有找到对应文件,就让子类找,如果子类引用为空,自己还找不到,就说明没有这个.class文件,系统抛出ClassNotFoundException异常。两个对象中的变量互相存储对方的引用,或者自己存储自己的引用,当对象引用置为null,无法使用对象,变量的值无法置为null,引用计数器不为0,就导致内存无法回收。不是继承关系,只是父类优先加载。

2025-05-14 09:47:28 755

原创 封装继承多态

多态意味着“多种形态”,同一个接口或引用可以指向不同类型的对象,使用父类型的对象作为参数,可以接收所有子类对象(这里父类引用具有多种形态)。在运行时根据实际对象类型调用相应的方法。多态分为两种形式,方法重载是编译时多态的例子(静态绑定),而方法重写则是运行时多态的体现(动态绑定)--方法重载是一个类的多态性表现而方法重写是子类与父类的一种多态性表现向上转型实际就是创建一个子类对象,将其当成父类对象来使用。从小范围向大范围的转换语法格式:父类类型 对象名= new子类类型()使用出现的场景。

2025-01-24 15:25:05 968

原创 找到字符串中所有字母异位词

思路:既然不考虑字符串的顺序,那就考虑数量。将p字符串每个字符的数量记录在一个数组中,再定义一个滑动窗口(数组)在s字符串上依次移动,比较两个数组是否相同。起始索引等于 0 的子串是 "cba", 它是 "abc" 的变位词。起始索引等于 6 的子串是 "bac", 它是 "abc" 的变位词。的子串,返回这些子串的起始索引。不考虑答案输出的顺序。指字母相同,但排列不同的字符串。s字符串:ababbcbab。题目:给定两个字符串。

2025-01-22 21:39:58 263

原创 Git(命令使用+认识内部结构+分支)

⽤-a指定标签名,-m指定说明⽂字。

2025-01-15 23:18:19 1237

原创 处理字符串的类

2,如果 有变量的拼接,系统底层会创建StringBuilder类的对象,用append()添加完成拼接,这样比较浪费内存.这里的s变量记录的是堆中地址值;1,一般连续调用StringBuilder类的append方法拼接,但要指定间隔符号这种情况,一般实例化StringJoiner类的对象添加比较方便.定义在java.lang包中的类,用来处理字符串 ,该类的字符串值的不可以被更改.提高字符串操作效率的类,可以看做一个大小可变的容器,该类里的字符串内容可变。返回字符出现个数,包括拼接的符号.

2024-08-10 00:39:03 481 1

空空如也

空空如也

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

TA关注的人

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