- 博客(20)
- 收藏
- 关注
原创 消息队列的设计与Redis Stream详解为例
用过Redis做消息队列的都了解,基于Reids的消息队列实现有很多种,例如:为什么上面的结构无法满足广泛的MQ场景? 这里便引出一个核心的问题:如果我们期望设计一种数据结构来实现消息队列,最重要的就是要理解**设计一个消息队列需要考虑什么?**初步的我们很容易想到解耦是消息队列要解决的最本质问题。所谓解耦,简单点讲就是一个事务,只关心核心的流程。而需要依赖其他系统但不那么重要的事情,有通知即可,无需等待结果。换句话说,基于消息的模型,关心的是“通知”,而非“处理”。 比如在美团旅游,我们有一个产品中心,产
2023-11-29 12:03:33
400
1
原创 2023 京东笔试题 JDS-2024届秋招-后端开发工程师
在一个3* 3的棋盘上,小红和小紫正在玩“夹吃棋”。所谓“夹吃棋”,即如果存在一个白子,它的两侧 (横向或者纵向)相邻都是黑子,则这个棋子将被“夹吃”,对于黑棋亦然。如果一个棋盘的局面没有一方被夹吃,或者黑白双方都被对面夹吃,则认为是平局。如果只有一方夹吃了另一方,则认为夹吃方赢,被夹吃方输。小红执黑棋,小紫执白棋,现在给定一个局面,请你判断当前棋局是谁获胜。
2023-10-28 19:18:56
2467
3
原创 Java 8 使用 Arrays.stream().sum()求和错误的处理 2208. 将数组和减半的最少操作次数
今天在力扣签到题时,使用数组流.sum()函数对所有内容求和,但最终因为求和方法的不同,导致我 算法在某些情况下失败了,当测试用例较小时,可以通过,当数值较大时会出现错误。nums 的和减小了 33 - 14.75 = 18.25 ,减小的部分超过了初始数组和的一半,18.25 >= 33/2 = 16.5。nums 的和减小了 31 - 14.5 = 16.5 ,减小的部分超过了初始数组和的一半, 16.5 >= 31/2 = 16.5。可以证明,无法通过少于 3 个操作使数组和减少至少一半。
2023-07-26 00:28:35
1391
1
原创 Java(JVM级别) 缓存介绍 ehcache、guava cache和Caffeine
在Java项目广泛的使用。它是一个开源的、设计于提高在数据从RDBMS中取出来的高花费、高延迟采取的一种缓存方案。正因为Ehcache具有健壮性(基于java开发)、被认证(具有apache 2.0 license)、充满特色(稍后会详细介绍),所以被用于大型复杂分布式web application的各个节点中。
2023-07-11 11:53:05
583
1
原创 计算机网络相关知识总结
用于TCP通信过程中某一传输方向上字节流的每个字节的编号,用于确保数据通信的有序性,避免网络中的乱序问题。接口文档是接口测试的重要依据,由开发人员提供,而需求文档是由产品经理提供的。接口测试的目的是验证接口内部处理逻辑的正确性,并确保单接口和整个业务逻辑的准确性。七层分为:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层 四层:网络接口层,网络层。软件接口是一套逻辑处理单元,具有特定的输入和输出。内部接口是系统或服务器自身编写或携带的接口,例如购物流程的登录系统和加入购物车等。
2023-06-30 19:53:18
128
原创 软件测试总结(2)
软件质量是产品、组织和体系或过程的—组固有特性,反映它们满足顾客和其他相关方面要求的程度。自动化测试是把一人为驱动的测试行为转化为机器之心的一种过程,即模拟手动测是步骤,通过执行程序语言编制的测试脚本自动地测试软件,包括了所有测试阶段,它是跨平台兼容的,并且是与进程无关的。功能测试又称为行为测试,根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作性行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。
2023-06-30 19:50:04
149
原创 实体类为什么要序列化
1、将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本;2、按值将对象从一个应用程序域发送至另一个应用程序域。实现serializabel接口的作用是就是可以把对象存到字节流,然后可以恢复,所以你想如果你的对象没实现序列化怎么才能进行持久化和网络传输呢,要持久化和网络传输就得转为字节流,所以在分布式应用中及设计数据持久化的场景中,你就得实现序列化。
2023-06-30 19:47:52
338
原创 软件测试相关总结
POSTMAN是一个可扩展API开发和测试协同的平台工具。POSTMAN优点:简单易用,可以使用即可,有助于组织测试解构,可以多人合作管理API,创建多个环境有助于减少测试重复,自动化测试,RUNNER,NEWMAN进行自动化测试,可以持续集成。POSTMAN创建测试集合:首先点+号,创建一个集合,然后再集合中点击右键,add Request创建请求,然后就可以发送请求进行接口测试。
2023-06-30 19:46:50
56
原创 常见登录方式总结
单点登录要求不同域下的系统「一次登录,全线通用」,通常由独立的 SSO 系统记录登录状态、下发 ticket,各业务系统配合存储和认证 ticket。cookie 是一种完善的标记方式,通过 HTTP 头或 js 操作,有对应的安全策略,是大多数状态管理方案的基石。token 是另一种状态管理方案,相比于 session 不需要后端存储,数据全部存在前端,解放后端,释放灵活性。session 是一种状态管理方案,前端通过 cookie 存储 id,后端存储数据,但后端要处理分布式问题。
2023-06-30 19:44:19
197
原创 ApplicationEvent与ApplicationListener
Spring的世界中有这么一对好基友,两个人总是同时出现,相爱相杀。这就是ApplicationEvent与ApplicationListener。感觉有点像小偷和警察,只要ApplicationEvent一出现,ApplicationListener就会发现TA。下面我们就来看一个示例,是Spring官方文档提供的示例。
2023-06-30 19:42:19
166
原创 后端实训总结
用来简化新Spring应用的初始搭建以及开发过程两个非常重要的策略:开箱即用和约定优于配置MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。前端MVVM是一种软件架构设计模式,其本质上就是MVC的改进版,就是将其中的View的状态和行为抽象化,让开发者将视图UI和业务逻辑分开,该模式的优点有低耦合、可重用性、独立开发和可测试。模型模型是指代表真实状态内容的领域模型(面向对象),或指代表内容的数据访问层(以数据为中心)。视图。
2023-06-30 19:38:33
413
原创 SpringBoot中mybatis自动和注解返回类型HASHMAP转换驼峰标识方法
在mapper.xml中查询语句添加resultMap,resultMap的property对应实体类的set方法,colomn对应数据库字段。很多时候我们需要返回多表连接的值,没必要为了几个值新建一个实体类,一般用HashMap来做返回类型,而HashMap不自动返回驼峰标识怎么办?在Springboot中,可以通过设置map-underscore-to-camel-case属性为true来开启驼峰功能。前言:mybatis默认是属性名和数据库字段名一一对应的,即。实体类属性:user_name。
2023-06-30 19:37:43
2282
原创 Java常用的Http client客户端
RestTemplate是Spring框架中的一个HTTP客户端库,用于发送HTTP请求并处理响应。WebClient是Spring框架5.0版本中引入的新的非阻塞式HTTP客户端,用于在异步场景下发送HTTP请求并处理响应。Apache HttpClient是一个开源的Java HTTP客户端库,具有丰富的功能集,包括自动重试、连接管理、cookie管理、代理支持和认证等。OkHttp是Square公司开发的一个高性能的HTTP客户端库,具有自动重试、连接池、交互式调试和压缩支持等特性。
2023-06-30 19:35:10
2062
原创 SpringBoot 使用 @ServerEndpoint 后 @Autowired 失效问题分析和解决
Spring管理采用单例模式(singleton),而 WebSocket 是多对象的,即每个客户端对应后台的一个 WebSocket 对象,也可以理解成 new 了一个 WebSocket,这样当然是不能获得自动注入的对象了,因为这两者刚好冲突。@Autowired 注解注入对象操作是在启动时执行的,而不是在使用时,而 WebSocket 是只有连接使用时才实例化对象,且有多个连接就有多个对象。在具体的业务场景中,需要等用户连接成功后,从库表中先获取10条数据,作为默认的初始化数据进行显示。
2023-06-30 19:30:15
1492
原创 宝塔Jenkins配置gitee自动化构建部署多模块springboot项目
宝塔Jenkins配置gitee自动化构建部署多模块springboot项目
2022-11-01 23:46:34
2374
原创 Linux中多版本JDK配置(宝塔面板)
以OpenJDK11和OpenJDK8为例这里提供一下openjdk 11.0.16.1的下载连接链接:https://pan.baidu.com/s/1W2ApfhLvUhicps1i8MK6Q提取码:yyds解压到如下目录。
2022-10-26 22:07:54
3850
原创 A Java Chat Application——基于C/S架构的JAVA网络编程聊天小程序 保姆式教学
在本文中,我将演示一个可以同时处理多个用户的聊天应用程序。它还支持文件传输。它完全基于Java,由两部分组成:jMessenger(客户端应用程序)和jServer(服务器应用程序)。链接:https://pan.baidu.com/s/1ujGOp2j9osyoY3J8PzvLiQ提取码:yyds。
2022-10-09 21:58:16
1479
6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人