自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 测试开发你需要知道的技术点

本文收录软件测试面试过程中常见的面试题.一些问题是从网上搜罗而来,剔除了不合时宜的;一些则是自己总结的面试题.很多的问题是开放性的,并没有确切的标准答案.1.为了发现程序中的缺陷,保证软件质量。2.满足用户需要1.项目立项后,参加需求评审2.根据需求文档制定测试用例,然后进行用例评审3.项目提测后,执行用例,问题记录cp4,及时有效的跟进问题的解决情况4.测试环境测试通过后,产品进行验收测试1.黑盒测试,即常说的功能测试2.白盒测试,即单元测试,通常由开发来完成,对程序类和方法的测试。

2025-04-03 15:17:31 457

原创 技术栈分享之----Swagger

注解说明@Api用在请求的类上,例如Controller,表示对类的说明@ApiModel用在类上,通常是实体类,表示一个返回响应数据的信息用在属性上,描述响应类的属性用在请求的方法上,说明方法的用途、作用用在请求的方法上,表示一组参数说明用在@ApiImplicitParams注解中,指定一个请求参数的各个方面。

2025-03-16 13:42:57 688

原创 synchronized知识回顾

Synchronized【对象锁】采用互斥的方式让同一时刻至多只有一个线程能持有【对象锁】,其它线程再想获取这个【对象锁】时就会阻塞住Monitor 被翻译为监视器,是由jvm提供,c++语言实现在代码中想要体现monitor需要借助javap命令查看clsss的字节码,比如以下代码找到这个类的class文件,在class文件目录下执行,反编译效果如下:monitorenter 上锁开始的地方monitorexit 解锁的地方。

2025-03-06 21:39:50 623

原创 JVM知识回顾

类加载器(ClassLoader)运行时数据区(Runtime Data Area)执行引擎(Execution Engine)本地库接口(Native Interface) JNI native。

2025-02-25 21:26:50 848

原创 单例模式的几种实现方式

介绍了单例模式的几种实现方式

2025-01-15 17:02:53 509

原创 几张图轻松搞定JVM

关于JVM是重点之重,掌握jvm便于我们可以更好的掌握java程序的运行流程,以下我将我自己总结的jvm的一些重点通过图的形式展现给大家,以便于可以更好的来理解。

2024-12-29 21:26:21 335

原创 常见的垃圾回收算法以及垃圾回收器总结

等。

2024-12-24 19:47:08 623

原创 推荐几款好用的IDEA插件

我想第一个必定是有关Maven的插件了,目前,Java开发很多都在使用maven进行项目管理和自动构建。日常开发中,可能经常会遇到jar包冲突等问题,就需要通过查看maven依赖树来查查看依赖情况。这种方式不是很高效,这里推荐一个插件,安装之后,直接打开pom文件,即可查看依赖数,还能自动分析是否存在jar包冲突。一旦安装了Maven Helper插件,只要打开pom文件,就可以打开该pom文件的Dependency Analyzer视图在插件市场找到该款插件安装之后重启idea即可。

2024-12-24 16:24:38 1523

原创 如何选择合适的消息队列中间件

在选择消息中间件的时候我们要先明确,消息队列中间件的作用。其实也就是削峰填谷和异步解耦。

2024-12-22 19:32:47 795

原创 企业面试真题----阿里巴巴

阿里巴巴企业面试真题

2024-11-26 20:31:27 768

原创 Redis除了做缓存,还能做什么???

Redis(Remote Dictionary Server)是一款开源的、基于内存的数据结构存储系统,常用于构建高性能、可扩展的应用程序。而缓存是 Redis 最常见的应用场景之一。将经常被访问的数据(如数据库查询结果、热门文章内容等)存储在 Redis 中,下次请求时直接从 Redis 中获取,减少对后端数据源(如数据库)的访问压力,提升系统整体性能。例如在新闻资讯类网站,将热门新闻详情缓存到 Redis,大量用户浏览时能快速响应。

2024-11-24 22:53:30 933

原创 集合类你不知道的小知识

在系统设计中,快速失效(fail-fast)系统一种可以立即报告任何可能表明故障的情况的系统。快速失效系统通常设计用于停止正常操作,而不是试图继续可能存在缺陷的过程。在以上代码中是一个对两个整数做除法的方法,在divide方法中,我们对除数做了个简单的检查,如果其值为0,那么就直接抛出一个异常,并明确提示异常原因。这其实就是fail-fast理念的实际应用。那为什么要按设计这个东西呢?

2024-11-22 18:28:08 942

原创 微服务系列概览

CAP理论(CAP Theorem),又称为布鲁尔定理(Brewer's Theorem),是由计算机科学家Eric Brewer在2000年提出的一个关于分布式系统的基本理论。一致性(Consistency):所有节点在同一时间看到的数据是一致的,即每次读操作都能读到最新的写操作结果。可用性(Availability):每个请求都能在合理的时间内得到非错误的响应,即系统始终可用。分区容错性(Partition Tolerance)

2024-11-20 17:52:12 1302

原创 配置中心————Nacos

Nacos是一个基于云原生架构的动态服务发现、配置管理和服务治理平台。支持多种编程语言和多种部署方式,并且与Spring Cloud等主流的微服务框架深度集成。配置管理:可以将应用程序的配置信息存储在Nacos的配置中心,通过Nacos实现动态配置管理和灰度发布,从而实现应用程序的动态调整和部署。服务发现及注册:可以将服务注册到Nacos注册中心,并通过Nacos实现服务的自动发现和负载均衡,从而实现服务的高可用和弹性伸缩。

2024-11-20 17:27:37 1379

原创 RESTful风格

REST(Representational State Transfer),表现形式状态转换,它是一种软件架构风格当我们想表示一个网络资源的时候,可以使用两种方式:传统风格资源描述形式查询id为1的用户信息保存用户信息REST风格描述形式传统方式一般是一个请求url对应一种操作,这样做不仅麻烦,也不安全,因为会程序的人读取了你的请求url地址,就大概知道该url实现的是一个什么样的操作。按照REST风格访问资源时使用行为动作区分对资源进行了何种操作查询全部用户信息 GET(查询)

2024-11-17 21:36:11 842

原创 HTTP基础

当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。HTTP状态码的英文为HTTP Status Code。

2024-11-14 17:47:57 1186

原创 KafKa为什么这么快?

在如今的MQ中三分天下性能之王的必然是Kafkka呢,为什么呢?最简单的就是kafka的单机吞吐量在百万级别以上。而RabbitMQ单机吞吐量在10万级别以下,而阿里开源的RocketMQ在二者之间十万到百万级别,那为什么kafka可以这么快呢,我总结了以下几点原因,如下图,我们可以从以下几个角度来分析分析。

2024-11-11 20:30:33 1507

原创 什么是JWT

JWT(JSON Web Token)一种开放的标准规范(RFC 7519),用于在网络上安全传输和验证信息,通常被用于登录验证。

2024-11-07 23:12:43 1589

原创 XXL-JOB

选取执行器管理的注册地址列表中的所有地址,每个地址都执行一次任务。:在任务路由策略选择“故障转移”的情况下,如果执行器集群中的某一台机器出现故障,将会自动 Failover 切换到一台正常的执行器发送调度请求;:当任务分配到某个执行器时,如果该执行器正处于忙碌状态(可能正在执行其他任务或资源紧张),则会尝试将任务转移到其他相对空闲的执行器上执行;:选择距离上次被调度时间最长的执行器执行任务(通过时间维度选取任务),有助于平衡各执行器的工作负载;:选取执行器管理的注册地址列表中的最后一个执行器来执行任务;

2024-11-03 17:06:14 566

原创 Linux常见命令合集

1.ls : list 列出当前目录的所有内容2.ls -a : 列出当前目录下面的所有内容,包括隐藏的。隐藏的以.开始3.ls -l:查看当前目录的详细信息4.ls -al 指定目录:查看指定目录下面的所有文件的详细信息5.ll:使用 ls -l的简写 ********

2024-11-01 22:51:26 1004

原创 MinIO服务部署指南

‌‌MinIO是一个基于‌Apache License v2.0开源协议的对象存储服务‌,它兼容‌亚马逊S3云存储服务接口,非常适合存储大容量非结构化的数据,如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,文件大小可以从几KB到最大5TB不等MinIO 官网地址:https://min.io/docs/minio/kubernetes/upstream/MinIO Github地址:GitHub - minio/minio: MinIO is a high-performance, S3 compat

2024-10-28 22:33:30 1132

原创 Redis主从架构

numkeys参数用于指定键名参数的个数。键名参数 key [key ...] 从EVAL的第三个参数开始算起,表示在脚本中所用到的那些Redis键(key),这些键名参数可以在 Lua中通过全局变量KEYS数组,用1为基址的形式访问( KEYS[1] , KEYS[2] ,以此类推)。在命令的最后,那些不是键名参数的附加参数 arg [arg ...] ,可以在Lua中通过全局变量。

2024-10-27 22:37:13 834

原创 Redis持久化机制

在默认情况下, Redis 将内存数据库快照保存在名字为 dump.rdb 的二进制文件中。你可以对 Redis 进行设置, 让它在“N秒内数据集至少有M个改动”这一条件被满足时, 自动保存一次数据集。比如说, 以下设置会让 Redis 在满足“60秒内有至少有1000个键被改动”这一条件时, 自动保存一次数据集:关闭RDB只需要将所有的save保存策略注释掉即可还可以手动执行命令生成RDB快照,进入redis客户端执行命令或。

2024-10-27 22:10:04 538

原创 Java设计模式详解----单例模式

软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用

2024-10-26 20:01:37 3109

原创 SpringAI你知道吗???

目前AI的浪潮已经居高不下了,因此我最近也开始了有关AI的项目,再开始AI的项目之前,我们也要先熟知AI的开发文档和知识,才能更好的开发项目,因此特地从官网查看了有关SpringAI的使用。官方说明文档:https://docs.spring.io/spring-ai/reference/api/

2024-10-25 20:29:23 2912 2

原创 JVM成神之路

堆溢出是指内存中有大量的垃圾对象无法回收,从而造成堆的内存溢出常见的堆溢出有以下几种情况:1.内存泄露:例如使用ThreadLocal时,没有主动释放就会导致内存泄漏。2.无限创建大量对象3.没有合理设置堆得大小4.大量的Execl的导入和导出栈溢出通常是指虚拟机栈溢出,而导致虚拟机栈溢出的主要原因是死循环和无限创建大的对象。

2024-10-21 18:42:45 2008

原创 Java后端基础自测

mysql主要有有三种日志文件分别为:binlog,undolog,redolog三类binlog又称为归档日志(二进制日志),主要是对数据库的中的数据进行数据备份,崩溃恢复,数据复制等操作,binlog主要是记载了有关DDL,DML语句对数据库的修改和添加操作,例如:insert,update,delete等操作都会记录在binlog日志文件中。在mysql的主从复制方面,会用到binlog,主节点主要是对数据的写操作记录到binlog中,而从节点主要是读操作,从而减少了数据库的压力。

2024-10-11 17:50:03 1097

原创 Synchronized是怎么实现的?

所以,在 JDK1.6 中出现对锁进行了很多的优化,进而出现轻量级锁,偏向锁,锁消除,适应性自旋锁,锁粗化(自旋锁在 1.4 就有 只不过默认的是关闭的,JDK1.6 是默认开启的),这些操作都是为了在线程之间更高效的共享数据 ,解决竞争问题。通常提供 singal 机制:允许正持有“许可”的线程暂时放弃“许可”,等待某个谓词成真(条件变量),而条件成立后,当前进程可以“通知”正在等待这个条件变量的线程,让他可以重新去获得运行许可。未被锁定的对象的该计数器为 0,当一个线程获得锁(执行。

2024-09-29 07:00:00 1172

原创 AQS为什么采用双向链表

AQS:AbstructQueuedSynchronizd(抽象队列同步器),出现在 JDK 1.5 中。他是很多同步器的基础框架,比如 ReentrantLock、CountDownLatch 和 Semaphore 等都是基于 AQS 实现的。AQS内部,维护了一个FIFO队列和一个volatile的int类型的state变量。在state=1的时候表示当前对象锁已经被占有了,state变量的值修改的动作通过CAS来完成。

2024-09-28 14:50:23 1096

原创 Java基础扫盲(二)

有关Java基础知识可以帮助你快速知其底层原理实现。

2024-09-28 13:55:56 1247

原创 Java基础知识扫盲

其实我们可以看到,double本身就是不准确的表示一个值,取得是一个近似值,例如,new BigDecimal(0.1) 但是创建出来的值并不是0.1,而是0.100000000000000000055555555......等,但是new BigDecimal("0.1")时,创建出来的值正是0.1值是很准确的。几乎所有的商用编程语言都有序列化的能力,不管是数据存储到硬盘,还是通过网络的微服务传输,都需要序列化能力。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。

2024-09-23 17:40:53 2779

原创 面试官问我了解Mybatis吗?我说了解,然后...........

Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语 句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。接口绑定。

2024-09-22 22:40:46 1345

原创 HashMap五大核心问题总结

1. JDK8中新增了红黑树,JDK8是通过数组+链表+红黑树来实现的2. JDK7中链表的插入是用的头插法,而JDK8中则改为了尾插法3. JDK8中的因为使用了红黑树保证了插入和查询了效率,所以实际上JDK8中 的Hash算法实现的复杂度降低了4. JDK8中数组扩容的条件也发了变化,只会判断是否当前元素个数是否超过了阈值,而不再判断当前put进来的元素对应的数组下标位置是否有值。5. JDK7中是先扩容再添加新元素,JDK8中是先添加新元素然后再扩容。

2024-09-21 20:49:03 614

原创 Spring底层架构源码解析(三)

实现了ConfigurableApplicationContext接口3.

2024-09-19 21:14:59 792

原创 Spring底层架构源码解析(二)

实现了ConfigurableBeanFactory接口,继承了 FactoryBeanRegistrySupport,这个BeanFactory的功能已经很全面了,但是不能自动装配和 获取beanNames13.

2024-09-19 20:43:44 1642

原创 Spring底层原理大致脉络

其实不管是AnnotationConfigApplicationContext还是 ClassPathXmlApplicationContext,目前,我们都可以简单的将它们理解为就是用来创建 Java对象的,比如调用getBean()就会去创建对象。当我们调用context.getBean("userService")时,就会去创建一个对象,但是getBean方法 内部怎么知道"userService"对应的是UserService类呢?

2024-09-18 22:42:33 801 2

原创 线程池夺命十四问

线程池:顾名思义就是一个管理线程的容器,当有任务需要处理的时候,放进任务队列里面,由线程池分配空闲的线程处理任务,处理完任务的线程不会被销毁,而是在线程池中等待下一个任务1.降低资源消耗: 频繁的创建与销毁线程,占用大量资源,线程池的出现避免了这种情况,减少了资源的消耗;2.提高响应速度: 因为线程池中的线程处于待命状态,有任务进来无需等待线程的创建就能立即执行(前提是有空闲线程,任务量巨大,还是需要排队的哈);3.更好的管理线程: 线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳

2024-09-17 23:37:04 1113

原创 订单出现超时未关闭场景解决方案

关于延迟任务的业务场景在实际开发中应用的很广,因此在处理相关业务时要选择合适的处理方案,并针对可能出现的问题做针对性的方案预警才可保证的业务和数据的安全性。

2024-09-15 14:06:13 1223

原创 后端综合知识大汇总

一般来说系统的开发和设计思路的话,就是一般现在的项目基本上都是前后端分离架构来实现的,所以在项目的设计时,要分层次结构来划定。前后端分离架构中,前端一般是有专业的前端工程师来写的,因此我们步需要过分的关注前端,可以在github上找到相关的前端项目即可。

2024-09-11 22:27:53 1442

原创 Java集合基础知识

List , Set 都是继承自 Collection 接口 List 特点:元素有放入顺序,元素可重复 , Set 特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉,(元素虽然无放入顺序,但是元素在set中的位 置是有该元素的 HashCode 决定的,其位置其实是固定的,加入Set 的 Object 必须定义 equals ()方法 ,另外list 支持for循环,也就是通过下标来遍历,也可以用迭代器,但是set只能用迭代,因为他无序,无法用下标来取得想 要的值。

2024-09-08 23:51:35 1360

操作linux的客户端(finalshell)安装包

有关虚拟机镜像的资料,因为文件过大,可以私聊我 首先FinalShell是一款免费的国产的集SSH工具、服务器管理、远程桌面加速的良心软件,同时支持Windows,macOS,Linux,它不单单是一个SSH工具,完整的说法应该叫一体化的的服务器,网络管理软件,在很大程度上可以免费替代XShell,是国产中不多见的良心产品,具有免费海外服务器远程桌面加速,ssh加速,双边tcp加速,内网穿透等特色功能。 其次为用户提供了多种连接协议,包括SSH、Telnet、SFTP和RDP等,使用户能够远程连接和管理不同类型的服务器和计算机。这就使FinalShell具有以下特点和功能: 多种连接协议支持 FinalShell支持SSH、Telnet、SFTP和RDP等多种连接协议,方便用户根据需求选择适合的连接方式。 跨平台支持 FinalShell可在Windows和Linux等多个操作系统上运行,使用户能够在不同平台上进行远程连接和管理。

2024-06-10

junit单元测试工具

将该文件压缩后,导入要使用到的项目中,可以使用相应的junit单元测试. JUnit是Java语言的一个单元测试框架。它由Kent Beck和Erich Gamma创建,于2000年首次发布。JUnit提供了一些注解(如@Test),用于标识在测试中的方法,并且提供了运行和管理这些测试的方式 单元”可以是一个函数、方法、类、功能模块或者子系统。 单元测试的核心在于行、分支覆盖率,不关注业务正确性 常用的注解测试: @Before 被注解的方法将在当前测试类中的每个@Test 方法前执行; @After 被注解的方法将在当前测试类中的每个@Test 方法后执行; @Test(expected=XX.class) 这个参数表示我们期望会出现什么异常,比如说在除法中,我们 1/0 会出现 ArithmeticException 异常,那这里@Test(expected=ArithmeticException.class)。在测试这个除法时候依然能够通过。

2024-06-04

axios:前后端交互的实现方式

将该压缩包压缩后导入前端的js文件中,可以实现前后端异步交互的操作

2024-06-04

空空如也

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

TA关注的人

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