自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 经典面试题:MySQL 外连接、内连接与自连接的区别?

内连接是一种基本的 SQL 连接操作,它根据两个或多个表之间的共同列值进行匹配,并返回符合条件的行。内连接仅返回两个表中在连接条件上有匹配的行,其他不匹配的行将被排除在结果集之外。●索引的重要性:对于任何类型的连接操作,优化连接条件并且确保合适的索引使用是提高性能的关键。●数据量和内存消耗:外连接和全外连接可能会引入更大的内存消耗和较长的查询时间,特别是在大数据集上。●查询设计:合理设计查询,只返回必要的数据,避免不必要的连接操作和数据传输,有助于提高性能。

2024-06-25 13:56:51 630 1

原创 数组和链表的区别是什么?最原始的问题,能否回答出新东西?

数组(Array)是一种线性数据结构,它由一组连续的内存单元组成,每个单元都存储着相同类型的数据。数组中的每个元素可以通过一个唯一的索引(通常是整数)来访问,这个索引表示元素在数组中的位置。数组可以是一维的(包含一行数据)、二维的(包含多行数据)甚至更高维度的。

2024-06-25 10:00:30 731

原创 为什么使用Java8中的并行流运算耗时变长了?

这里我先简单介绍一下当前功能的使用背景,当前功能是一些大数据量的计算密集型任务定时执行,在常规优化效率有限的情况下,考虑到复用性,笔者通过JDK8底层内置的并行流完成这些任务的计算。

2024-06-19 10:30:52 1306

原创 SpringBoot 同时可以处理多少请求?这可难倒了不少人

看到 Tomcat 的最大连接数是 8192 是不是已经有很多小伙伴直接认为:8192 是 SpringBoot 默认同时可以处理的请求了呢,如果是的话,那大家就刚刚好中了圈套啦,其实 8192 并不是 SpringBoot 默认同时可以处理的请求,因为 Tomcat 还有一个默认等待数,加上这个才是 SpringBoot 默认同时可以处理的请求数。这个问题留给大家思考一下吧~通过上面的源码查看我们可以得到:Tomcat 配置的最大连接数是 8192、Tomcat 配置的默认等待数是 100。

2024-06-18 10:18:10 968

原创 聊聊redis中的字典的实现

对于旧有存在的元素,考虑到整个哈希表可能存在不可预估数量的键值对,redis的字典会通过渐进式哈希的方式在元素每次进行增删改查操作时将旧有元素迁移到ht[1]中,一旦所有元素全部迁移到ht[1]后,哈希表就会将ht[1]指向的哈希表指针赋值给ht[0],并将ht[0]原有哈希表释放。随着我们不断的新增键值对,当前的哈希算法得到的索引位置很大概率会出现哈希冲突,即每次定位到的索引位置都很大概率存在元素,这也就是我们的常说的哈希冲突,这就是redis的字典默认会初始化两张哈希表的原因所在。

2024-06-18 09:51:22 966

原创 Java ORM 双雄:Mybatis 和 Hibernate,你选哪个?

Mybatis 是一个持久层框架,它封装了数据连接、获取结果集等一系列的繁琐操作,使用者只需关注操作 SQL 语句的编写,通过 xml 或注解的方式就能将数据库中的数据与对象形成映射进行返回。

2024-06-17 14:02:04 753

原创 最新编程语言排行榜,C++ 和 Go 成为新王?!

对于后端开发来说,语言只是一个工具和基础,除了语言本身和对应的开发框架外,其他要学的后端开发技术都是通用的,比如数据库、缓存、队列、搜索引擎、Linux、分布式、高并发、设计模式、架构设计等等。注意,TIOBE 编程语言排行榜是基于 全球 工程师的数量、课程、热门网站、第三方供应商综合计算出来的,只是一个编程语言流行度和趋势的反映,并不代表语言之间的优劣,也不能反映国内的就业情况。这是可预见的,Python 凭借其简单易学的语法和广泛的应用领域,如数据科学、机器学习、网络开发、爬虫等,吸引了大量开发者。

2024-06-17 13:51:46 880

原创 当面试被问到分布式事务,就这样答!

在两阶段提交中,事务协调者(Transaction Coordinator)协调多个参与者(Participants)的资源管理器,确保所有参与者要么都提交事务,要么都回滚事务,从而保证事务的一致性。所以这时候如果本地的其他请求要访问同一个资源,比如要修改商品表 id 等于 100 的那条数据,那么此时是被阻塞住的,必须等待前面事务的完结,收到提交/回滚命令执行完释放资源后,这个请求才能得以继续。比如是提交请求,然后那些收到命令的参与者就提交事务了,此时就产生了数据不一致的问题。解决了数据不一致问题。

2024-06-11 15:41:31 837

原创 不要再问我跨域问题了,这篇文章全搞定

跨域问题指的是在Web开发中,由于浏览器的同源策略限制,当一个网页尝试访问与它不同源(协议、域名或端口不同)的资源时,可能会遇到安全限制导致无法正常访问的问题。这种策略旨在防止恶意网站读取或修改其他网站的数据,保护用户信息安全。这样说可能有点抽象,下面具体展开说明。通常情况下,我们主流的开发模式是:前后端分离。当我们从浏览器80访问服务端81应用下面我们用一个Web工程,一个后端工程具体简单演示下。1、Web工程结构:index.html 页面

2024-06-06 14:24:04 263

原创 有代码冗余的检查工具嘛

Clang Static Analyzer: Clang Static Analyzer 是 Clang 编译器提供的一个静态代码分析工具,用于检测 C/C++ 代码中的各种问题,包括冗余代码。是的,有一些代码质量工具可以帮助检查冗余代码。ESLint: 对于 JavaScript 项目,ESLint 是一个常用的静态代码分析工具,可以配置来检查冗余代码和其他代码质量问题。Cppcheck: Cppcheck 是一个针对 C/C++ 代码的静态代码分析工具,可以检查代码中的冗余、未使用的变量等问题。

2024-06-06 10:20:22 357

原创 今日代码大赏 | Spring Cloud Gateway 全局过滤器实现

全局过滤器(Global Filter)是 Spring Cloud Gateway 中用于处理跨服务的通用逻辑的组件,例如权限验证、日志记录等。今天的代码大赏就到这里。希望通过这篇文章,你能够对 Spring Cloud Gateway 全局过滤器实现有一个更深入的理解。• 顺序可控:通过实现 Ordered 接口,可以控制过滤器的执行顺序。• 统一处理:可以在一个地方集中处理所有请求的预处理和后处理逻辑。

2024-06-05 18:03:35 271

原创 关于 Bean 容器的注入方式,99 % 的人都答不全!

除了上述提到的标准作用域和生命周期管理方式外,Spring 还允许开发者自定义作用域和生命周期管理策略。可以通过实现 Scope 接口来定义新的作用域,通过实现 BeanPostProcessor 接口来定义 Bean 的自定义初始化和销毁逻辑。

2024-06-05 15:55:42 850

原创 数字化转型大环境,学习数据分析有哪些优势呢?

数据分析正在改变着企业,随着更多企业上云,传统企业想要转型,想要创新就需要数据分析这个职位。那么对于正在学习数据分析专业的你或者正在考虑是否转行学习数据分析的你来说,正是一个学习入行的机会哦~

2024-06-04 11:50:35 501

原创 详谈程序员应该具备什么样的职业素养

能够清晰地表达自己的想法和观点,倾听他人意见,能够与非技术人员有效沟通,避免“码农”与“业务人员”之间的沟通障碍。:注重代码质量和系统稳定性,编写可读性强、可维护性高的代码,严谨对待每一个细节,确保交付的产品达到高质量标准。:能够快速准确地识别和解决问题,善于分析、调试和优化代码,具备良好的逻辑思维能力和解决问题的方法论。:对自己的工作负责,能够承担起自己的角色和义务,及时解决问题,确保项目按时交付并达到预期目标。:不断反思和改进自己的工作方法和流程,追求卓越,不断提高自己的工作效率和质量。

2024-06-04 10:34:08 145

原创 今日代码大赏 | Git 常用命令

完整 Git 命令来源于代码小抄,欢迎点击进入小程序阅读!

2024-06-04 10:21:11 223

原创 C++ 20新特性之Concepts

基本概念定义:Concepts是C++20中引入的一种新的语言特性,用于限制类和函数模板的模板类型和非类型参数。它允许你为模板编写要求,而编译器会检查这些要求是否满足。目的:使模板相关的编译器错误更易于人类阅读,提高代码的可读性和可维护性。特性与优势明确的编译器错误信息:通过使用Concepts,当模板实例化时,如果类型不满足要求,编译器会输出更明确的错误信息,帮助开发者更快地定位问题。提高代码的可读性。

2024-06-03 17:58:43 381

原创 奔走相告,VWware 真的可以免费用了

在 Docker 没有出来之前,很多项目的的部署方案是使用虚拟机,在一台服务器上创建好几个虚机出来,配置一下网络,就可以把一台服务器当做多个服务器用了。而作为开发者来说,我们经常碰到需要使用不同操作系统的需求,比如刚开始打算学习 Linux 的时候,没有系统怎么办,买一台云服务器或者在一台电脑上安装一个 Linux 系统的代价都太大了,最简单的方式就是在自己的电脑上装一个虚拟机出来。这时候不可避免的就要用到 VMware 了,紧接着,又碰到了一个问题,那就是 VMware 它是收费,而且还不便宜。

2024-06-03 15:33:34 1652 1

原创 4个实战脚本,总有适合你的吧

用法:将findsomething找到的API放在文件3.txt。与脚本放在同一文件夹,运行,即可得出结果,结果装在文件4.txt。适用:利用findsomething找到大量API接口,不想一个个访问就可以利用这个脚本了。用法:将收集到的域名放在1.txt,运行即可得到域名对应的IP。用法:将收集到的域名放在2.txt里面,运行脚本即可。

2024-06-03 14:00:34 242

原创 到底什么是 Spring Cloud?这个问题并不简单

Spring Cloud 是一系列框架的集合,旨在为分布式系统的开发提供解决方案。它基于 Spring Boot,利用 Spring Boot 的快速开发特性,帮助开发者快速构建分布式微服务架构系统。Spring Cloud 通过集成和封装各种成熟的开源解决方案,提供了配置管理、服务发现、负载均衡、断路器、分布式追踪、消息驱动微服务、网关路由等功能。了解了 SpringCloud 提供了什么能力,现在跟着我来简单了解一下这些能力是干嘛的,别等了!来吧:1)配置管理:集中管理配置,支持动态刷新。

2024-06-03 10:23:35 955

原创 three.js 模拟真实海洋(超详细教程,炫酷海洋)

1.2 添加基础三维对象,添加一个Box模拟海面的小船,添加一条方向为(0,1,0)的线,模拟小船方向。不会画图,在二维斜面上,小船会倾斜,并且获得斜面的切线的速度,叠加到小船本身的速度上。想必大家已经知道如何实现这个功能了,根据海平面的生成函数,计算小船的高度。4. 根据海面起伏的角度,更新小船的旋转信息,以及添加小船的加速度。在三维中,需要计算在某个坐标处的,海平面的切面,以及切面的面法线。// 根据对应导数函数,求出x分量的斜率和z分量的斜率。使用sin函数,模拟海面起伏,当然,你也可以用cos。

2024-05-31 10:32:03 420

原创 SpringBoot+Spring WebFlux响应式开发,实现打字效果

Spring WebFlux是实现响应式编程,基于Servlet3.x之后异步响应处理所提供的更简化的实现模式,该组件是一个重新构建的且基于Reactive Streams标准实现的「异步非阻塞」Web开发框架,以Reactive开发框架为基础,可以更加容易的实现「高并发」访问下的请求处理模式。在SpringBoot 2.x版本中你那个提供了“Spring-webflux”依赖模块,该模块有两种编程模式实现:一种基于功能性端点方式,一种基于SpringMVC注解方式。

2024-05-30 10:50:15 540

原创 我觉得 “砍需求” 是程序员最牛逼的本领

我觉个自己团队的例子,前段时间我们想统计下老鱼简历的数据,比如注册率和注册来源等,按照正常的方式,可能是需要开发统计分析的能力,我们开发同学也欣然接受了。所以理解需求、跟需求提出方保持统一是很重要的,之前我们团队的开发同学,在需求评审会上 “大放豪言”,产品经理说完需求,他就说:“这个简单!砍需求的前提是对需求有深刻的理解,这就包括理解需求的背景、需求的目标、分析需求的优先级、可行性、以及对用户和业务的影响等等。注意,砍需求不是砍产品经理,也不是单纯地 “拽” —— 劳资是大爷、劳资说不做就不做!

2024-05-29 10:33:14 839

原创 MySQL集群最全详解(图文全面总结)

主从复制是 MySQL 中最常用的集群模式之一,一个主服务器(Master)负责所有的写操作,并将这些更改,异步复制到一个或多个从服务器(Slave)上。在实际应用中,为了进一步提高数据库的性能和扩展性,可以采用读写分离、和分片法(分库分表)相结合的方式构建 MySQL 集群。MyCAT 是一个开源的数据库中间件,MyCAT 通过配置规则将, SQL 请求路由到相应的数据库、或表。从服务器上的读取和应用:从服务器读取主服务器上的二进制日志,并在从服务器上重放这些日志。

2024-05-28 13:41:46 2124

原创 分库分表最全详解(图文全面总结)

分库分表通过将数据,按照某种策略分配到多个数据库节点、或表中,提高了查询和写入性能,从而,增强系统的可扩展性和容错能力。分库分表是数据库设计、和管理中的一种策略,主要解决随着数据量、和并发访问量的增加而带来的性能、和扩展性问题。: 将一个大表的数据按照某种规则,分散到多个小表中,每个小表称为一个“分片”、或“分表”。等,简化分库分表的实现。分库分表旨在,通过将大表、或大数据库的数据,切分为多个较小的部分,从而提升性能。确定分库分表的必要性,比如:分析当前数据库的性能瓶颈,确定是否需要进行分库分表。

2024-05-28 10:06:31 2481

原创 redis 的字符串为什么要升级 SDS,而不用 C 语言字符串?

第二个点在于存储的字符数组,SDS 中进行了改进,SDS 中不在需要 \0 来判断字符串是否结束,这就是我们上面所说的 Redis 字符串中的 buf 数组可以存储任何的二进制数据,因此存储二进制数据的时候便不会发生字符截断的问题,避免了由于特殊字符引发的异常,不过需要注意一个点,Redis 为了兼容 C 标准库的一些操作, Redis 仍然为末尾的 \0 预留了内存空间。我们可以发现,当 sds 扩容的时候,其是根据 sds 的长度进行判断的,其判断的值就是所需要的 sds 的长度是否超过 1 MB。

2024-05-27 10:47:30 898

原创 如何用 Redis 统计海量 UV?

PV(Page Views)是页面浏览量,指的是网站或应用程序页面被访问的次数。每一次页面的加载都被视为一个页面浏览量,无论是否为同一用户。UV(Unique Visitors)是独立访客数量,指的是访问网站或应用程序的唯一用户数量。UV通常用于衡量网站或应用程序的独立用户群体规模,而不考虑他们的访问频率。PV 和 UV 是衡量网站或应用程序流量和用户参与度的重要指标之一。

2024-05-27 10:36:52 1074

原创 代码大赏之优雅使用 Docker

【代码】代码大赏之优雅使用 Docker。

2024-05-23 09:48:27 219

原创 今日代码大赏之JavaScript 运算符

1. 算术运算符:执行基本的数学运算,如 +、-、*、/ 和 %。2. 赋值运算符:用于给变量赋值,如 =、+=、-=、*= 等。3. 比较运算符:比较两个值,并返回布尔值(true 或 false),如 、=、!=、!==、>、= 和

2024-05-23 09:41:31 401

原创 Dubbo最全详解(图文全面总结)

典型如 Dubbo、Spring Cloud、gRPC 等,有着异构微服务体系互通的诉求,Dubbo3 借助于新的服务发现模型以及可灵活扩展的 RPC 协议,可以成为 Dubbo3 未来的发展目标。5、Invoker通过路由,负载均衡选择了一个最合适的服务提供者,在通过加入各种过滤器,协议层包装生成一个新的DubboInvoker对象;8、这个Invoker对象会调用本地服务,获得结果再通过层层回调返回到服务消费者,服务消费者拿到结果后,再解析获得最终结果。

2024-05-21 17:22:44 1207

原创 Node 之父新作:一个全新的 NPM 下载源工具!

所以 Node 之父出手了!JSR代表的不仅仅是一个新的下载源工具,它是我们思考和实践JavaScript与TypeScript分发方式的一个根本转变。更多信息可以到 JSR 官网了解~

2024-05-21 16:36:07 442

原创 【消息队列】 一文搞懂 Kafka

消息队列是实现应用程序和应用程序之间通信的中间件产品。

2024-05-21 16:26:38 202

原创 同步/ 异步 / 阻塞 / 非阻塞?真把我搞晕了

1)定义:阻塞I/O是指程序发起一个I/O操作后,如果数据尚未准备好(如数据未到达、文件未找到等),程序会一直等待,直到数据准备好并完成I/O操作。1)定义:非阻塞I/O是指程序发起一个I/O操作后,如果数据尚未准备好,I/O操作会立即返回一个错误或特定值,而不是等待数据准备好。2)特点:异步I/O不会阻塞程序的执行,允许程序在I/O操作进行的同时执行其他任务,提高了程序的并发性和效率。1)定义:同步I/O是指程序发起一个I/O操作后,必须等待该操作完成并获取到结果后,才能继续执行后续代码。

2024-05-21 10:46:17 1160

原创 人才分类--数智时代下的“AI 人才粮仓模型”

当前,AI 技术正在向各个领域渗透,加速产业深度融合,AI 已在各行各业崭露头角。在众多 产业的推动下,2024 年成为大模型应用场景元年。当前,模型层产品百花齐放,并逐渐开始 产品探索。目前国内超 63% 的企业正在构建企业大模型,将大模型与业务流程、产品功能紧密结合,推动其在多个场景中的应用、垂直化发展和产业化落地。

2024-05-20 14:57:16 261

原创 解决java.lang.IllegalArgumentException异常的正确方法

java.lang.IllegalArgumentException 是 Java 中的一个异常类,表示方法中传递的参数不合法。这个异常通常在方法被调用时抛出,表明方法的参数出现了问题。要正确解决这个异常,你可以按照以下步骤进行:

2024-05-11 11:17:55 1294 1

原创 EureKa详细讲解通俗易懂

EureKa 就像是这个派对上的指南,它知道每个人的技能,也知道他们在派对上的位置。这样,当你需要找到一个能做饭的人时,你只需要问指南,它就会告诉你谁能够帮助你,以及他们在哪里。但是,在一个大型派对上,有时候可能会发生一些意外,比如有人突然离开了派对,或者网络连接出现了问题。在这个派对上有很多其他人,每个人都有自己的技能,比如唱歌、跳舞或者做饭。总的来说,EureKa 是一个功能强大的服务发现框架,它为构建基于微服务架构的分布式系统提供了重要的支持,能够提高系统的可伸缩性、可用性和灵活性。

2024-05-11 09:53:28 254

原创 java实现一个简单的线程池并详细讲解

● 在构造方法中,初始化了指定数量的工作线程,并启动它们,使它们可以不断地从任务队列中取出任务执行。:任务队列,使用LinkedBlockingQueue实现,用于存放待执行的任务。:线程池的主要类,包含了线程池的初始化和任务执行方法。:用于向线程池提交任务,将任务加入到任务队列中。:工作线程类,负责从任务队列中取出任务并执行。

2024-05-07 17:08:57 415

原创 二进制求和

当我们要对两个二进制数进行求和时,可以模仿十进制数相加的方法,从最低位开始逐位相加,并且考虑进位的情况。在二进制数中,每一位的可能取值只有0或1,所以我们可以用异或运算(^)来得到对应位的和,用与运算(&)再左移一位来得到进位。然后将这两个结果再相加,直到没有进位为止。

2024-05-07 16:54:09 440 1

原创 通过Redis实现一个异步请求-响应程序

● 订阅者处理完请求后,可以选择将响应信息发送到另一个频道,供生产者或其他订阅者获取。● 消费者处理完请求后,可以选择将响应信息写入另一个队列,供生产者或其他消费者获取。:发送请求消息,并验证消费者能够正确接收并处理请求,并且能够发送响应消息。:定义好请求和响应的消息格式,确保生产者和消费者之间能够正确解析消息。订阅者(Subscriber):监听指定的频道,接收请求并进行处理。消费者(Consumer):从队列中获取请求信息,并进行相应的处理。● 消费者从队列中获取请求信息,并进行处理。

2024-04-24 17:27:15 403

原创 报错:JSON parse error: Unexpected character (‘ ‘ (code 160)): was expecting double-quote to start fiel

检查你的 JSON 数据,特别是字符串值中是否包含非打印字符或特殊字符。通过检查以上可能的原因,并根据具体情况进行相应的调整,你应该能够解决这个 JSON 解析错误。如果问题仍然存在,你可以提供更多的上下文信息,以便我能够提供更准确的帮助。:如果 JSON 数据是从文件中读取的,请确保文件的编码格式与你的解析器期望的编码格式一致。有时候,文件的编码格式可能与解析器的默认设置不匹配,导致解析错误。:检查 JSON 数据的字符编码是否正确。确保 JSON 数据使用的是与解析器相匹配的字符编码格式。

2024-04-23 16:16:21 1104

原创 idea配置推荐插件详细讲解

Lombok:简化Java代码,通过注解实现getter、setter、构造函数等。Spring Assistant:提供Spring框架的辅助功能,如自动补全、代码导航等。Git Integration:集成Git版本控制,方便代码管理和提交。CodeGlance:在编辑器侧边栏显示代码缩略图,方便快速定位代码位置。Maven Helper:辅助管理Maven项目,提供依赖分析、依赖冲突解决等功能。Key Promoter X:提醒你使用快捷键的插件,帮助你逐步熟悉IDEA的快捷键。Rainb

2024-04-23 14:43:13 570

空空如也

空空如也

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

TA关注的人

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