自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 高级架构师面试题

• 核心概念:将一个大型的应用拆分为多个小型的、独立部署的服务,每个服务都围绕着特定的业务功能进行构建,服务之间通过轻量级的通信机制进行交互。• 原理:分为准备阶段和提交阶段,协调者向所有参与者发送准备请求,参与者执行事务操作并响应准备结果,协调者根据参与者的响应决定是否提交事务。• 原理:分为三个阶段,Try 阶段进行业务检查和资源预留,Confirm 阶段进行业务提交,Cancel 阶段进行业务回滚。• 架构调整:根据业务发展和技术变化,对系统的架构进行调整,如采用微服务架构、容器化技术等。

2024-09-28 16:42:41 1583

原创 FastDFS文件存储实战以及详解

Tracker 服务器:负责管理和调度 Storage 服务器,配置文件为。Storage 服务器:负责文件的实际存储,配置文件为。客户端配置:用于测试和与 FastDFS 服务器进行交互,配置文件为。Nginx 模块(可选):用于通过 HTTP 访问 FastDFS 中存储的文件。完成这些步骤后,你的 FastDFS 服务端应该已经成功部署,并且可以开始处理文件的上传和下载。

2024-08-27 17:23:44 1353 1

原创 Aviator的介绍与使用以及基本原理

Aviator是一个专为Java设计的轻量级、高性能的表达式求值引擎。它允许开发者以字符串形式编写表达式,并在运行时动态地计算这些表达式的值。Aviator的语法简洁明了,类似于Java,但更加专注于表达式的计算,而不涉及复杂的编程逻辑。高性能:Aviator通过将表达式编译成Java字节码来执行,从而实现了高效的表达式计算。它使用了解释器和JIT(即时编译器)的混合模式,对于频繁执行的表达式,可以显著提高执行速度。轻量级:Aviator的库体积小,不依赖其他大型库,非常适合嵌入到Java应用程序中。

2024-08-27 16:34:31 1951

原创 登录校验组件 Spring Security OAuth2 详解

OAuth 2.0:是一个开放标准的授权协议,允许第三方应用程序在用户的许可下访问他们在其他服务上的资源和数据,而无需直接共享用户的用户名和密码。OAuth 2.0 关注于简化客户端开发、提高安全性,并支持多种应用场景。:是一个全面的安全框架,用于在Java应用程序中提供身份验证和授权机制。它支持多种身份验证技术,包括表单登录、HTTP Basic认证、LDAP等。

2024-08-27 15:36:46 1617

原创 Sentinel组件详解:使用与原理

Sentinel提供了完善的SPI(Service Provider Interface)扩展接口,允许用户通过实现扩展接口来快速定制逻辑,如规则管理、适配动态数据源等。如果你的项目需要较高的自定义能力或计划在未来进行大量的扩展和定制,那么Sentinel的扩展性可能更适合你的需求。问题描述:在需要自定义流量控制或熔断降级规则时,发现实现复杂度较高,难以维护。解决方案利用Sentinel提供的扩展点(如自定义Slot)来实现复杂的规则逻辑。将复杂的规则逻辑封装成可复用的组件或库。

2024-08-22 10:58:17 3386

原创 Seata分布式事务详解

分布式事务在电商购物流程中的用途是确保多个服务或系统之间的数据一致性和事务的原子性,从而提升用户体验和系统性能。这个例子展示了分布式事务在复杂分布式系统中的重要性。答案SEATA是一款开源的分布式事务解决方案,旨在解决分布式系统中的数据一致性问题。它提供了ACID事务的支持,包括原子性、一致性、隔离性和持久性,特别适用于微服务架构和云原生应用。分布式事务是指涉及多个服务或数据库的操作,需要保证这些操作要么全部成功,要么全部失败,以确保数据的一致性。

2024-08-15 14:15:43 951

原创 unbantu系统安装docker运行环境

在Ubuntu系统上安装Docker环境,可以通过官方APT软件源或者使用方便的脚本来完成。

2024-08-15 11:44:57 1148

原创 Java采用jar包方式自动化部署

如果你也需要频繁地将Java应用程序部署到远程服务器上,不妨试试这个脚本,它可能会让你的部署过程变得更加轻松和高效。通过SSH将本地的Java应用程序(JAR文件)部署到远程服务器上,并自动启动该应用程序。:通过SSH连接到服务器,找到正在运行的Java应用程序的进程ID,并杀掉该进程。工具来避免在SSH连接时手动输入密码,提高了部署的自动化程度。:将本地的JAR文件通过SCP上传到服务器上指定的目录。:在服务器上,如果旧的JAR文件存在,则将其删除。命令启动Java应用程序,并将输出重定向到。

2024-08-15 10:43:44 494

原创 Springboot项目引入nacos注册中心

Nacos,听起来可能有点陌生,但它其实是云原生时代的一个超级实用的好帮手!简单来说,Nacos就是Dynamic Naming and Configuration Service(动态命名和配置服务)的缩写,是由阿里巴巴开源的一个平台,专门用来帮助开发者们更轻松地发现、配置和管理微服务。想象一下,在一个复杂的微服务架构中,有各种各样的服务在运行,它们之间需要相互通信和协作。

2024-08-14 14:53:57 1151

原创 JAVA中@Scheduled注解定时任务执行使用

Scheduled注解的原理是 Spring 框架通过解析注解中的配置信息,将指定方法注册为定时任务,并利用任务调度器在指定时间或频率下执行这些任务。这一机制为 Spring 应用提供了灵活且强大的定时任务处理能力。

2024-08-14 10:36:30 1798

原创 Java中常见的垃圾回收算法对比

垃圾回收算法描述优点缺点适用场景标记-清除(Mark-and-Sweep)标记需要回收的对象,清除未标记的对象。简单实现,能够处理较大内存。可能导致内存碎片,回收过程较慢。对象生命周期不均匀,内存不频繁变化的场景。标记-整理(Mark-and-Compact)标记需要回收的对象,然后整理存活对象,避免碎片。避免了内存碎片问题。整理过程可能导致较长的停顿时间。对象生命周期较长,内存碎片较严重的场景。复制算法(Copying)将内存分为两部分,复制活跃对象

2024-08-13 16:36:59 429

原创 Java自动记录日志并对根据日期对日志表自动创建或删除

通过切面记录方法执行前、执行后和异常时的日志,并将日志信息插入到当前月份的日志表中。提供按日期范围查询日志的功能,支持跨月查询并汇总结果。每月自动生成新的日志表,并删除六个月前的旧日志表。

2024-08-13 16:26:21 478

原创 Java实现通过netty建立websocket连接

【代码】Java实现通过netty建立websocket连接。

2024-08-13 15:54:55 668

原创 Java注解详解:@Async异步

是 Spring 框架里的一个小工具,能让你的方法在后台偷偷跑起来,不影响主线程的工作。这个方法特别适合用来处理那些不需要立即给用户反馈的任务,比如发个邮件啊,处理个大文件啥的。通过这个机制,Spring 可以非常方便地处理大量并发任务,提升应用的性能和响应速度。你可以通过配置线程池来管理这些异步任务的执行,比如设置线程的数量、任务队列的大小等。注解,Spring 会创建一个代理对象来处理这个方法的调用。所以,异步执行的效果其实是由后台的线程池来实现的。,它会为每个任务创建一个新的线程。

2024-08-13 15:49:12 2172

原创 右键添加命令行快捷入口

【代码】右键添加命令行快捷入口。

2024-06-24 21:38:02 202

原创 普通逻辑题:目录整理

a/b/c/ 变成 /a/b/c。/a//b/ 变成 /a/b。

2024-01-28 16:45:33 433

原创 普通题:有一个无序数组【】,求一个比前面数都大且比它的后一个也大的数

有一个无序数组【】,求一个比前面数都大且比它的后一个也大的数。

2024-01-26 22:11:12 445

原创 leetCode:平均值最大的子数组

这个思路我是有,就穷举,但是现在我感觉这个题有漏洞。他要求平均值最大的,又要元素个数最少的,那直接不就是里面最大那一个嘛。有一个无序数组 【1,6,4,7,9,3】,求一个平均值最大的子数组 如果平均值一样大取元素少的那一个。

2024-01-26 21:31:51 463

原创 SQL练习题

一张客户表 cusotmer。一张部门表 dept。一张成绩表 score。

2024-01-26 18:47:35 378

原创 初级编程题:电话号码脱敏

0526’解释:13 位数字,2 个数字是国家号码,另外 11 个数字是本地号码。本题保让脱敏处埋前后的电诂号码的长度都是团区间|11,40]上的整数。示例 1:自测输入格式:1(3220)200-520。11位和13位的电话号码后面的处理逻辑都是相同的。输入:"1(3220)200-520’只需要区别对待前几位即可。

2024-01-26 17:15:13 435

原创 字节跳动面试题:万万没想到之聪明的编辑

万万没想到,我被开除了,临走时老板对我说: “做人做事要兢兢业业、勤勤恳恳、本本分分,人要是行,干一行行一行。要是不行,干一行不行一行,一行不行行行不行。我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。但是,优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径:!我在蓝翔学过挖掘机和程序设计,按照这个原理写了一个自动校对器,工作效率从此起飞!用不了多久,我就会出任CEO,当上董事长,迎娶白富美,走上人生巅峰,想想都有点小激动呢。

2024-01-24 16:20:33 586 1

原创 高数公式笔记

数列极限的定义数列极限的几何意义二项式定理

2023-05-10 14:57:29 149

原创 高数图像笔记

经过(1,0)

2023-05-09 17:25:54 201 1

原创 考研数学武忠祥 高等数学0基础课 数列的极限

数列极限的定义典型的数列极限概念引入

2023-05-09 17:24:58 423

原创 考研数学武忠祥 高等数学0基础课笔记 函数和映射

取整函数的基本性质。

2023-05-08 17:37:11 1273

原创 小孙前端面试经历

腾讯会议视频面试。

2023-04-24 22:02:06 161

原创 拿过来直接能用的正则表达式

\w]+表示后续其他匹配组的条件。

2023-03-24 11:50:13 66

原创 vue项目实战贾成豪老师课程笔记

选择vue2。

2023-03-19 14:05:34 449

原创 前端面试题

如果要频繁切换某节点,使用v-show(切换开销比较小,初始开销较大)。如果不需要频繁切换某节点使用v-if(初始渲染开销较小,切换开销比较大)。

2023-03-19 11:55:58 1602

原创 高数函数和极限学习笔记

补充说明:解题3中,是利用了e的性质来解的。

2023-03-05 17:00:50 990

原创 便捷好用的SQL语句

便捷好用,可以直接拿过去用

2023-02-27 15:21:22 73

原创 前端面试题

合适的地方选择使用合理的标签HTML 语义化就是让页面的内容结构化,便于对浏览器、搜索引擎解析;在没有样式 CCS 情况下也以一种文档格式显示,并且是容易阅读的。

2023-02-26 13:09:15 2356 2

原创 Swagger狂神学习笔记

直接运行,在线测试API支持多种语言 (如:Java,PHP等)官网:https://swagger.io/

2023-02-24 14:43:50 419

原创 VSCode使用技巧

有关vscode使用技巧

2023-02-13 14:21:17 95

原创 Java中List面试题

ArrayList底层实现是一个数组,里面主要包含了一个Object类型的数组elementData,用来存储数据,一个size,用来存储有效数据的个数。ArrayList的底层也是一个数组,主要包含的属性也是elementData和size,但在jdk1.8中,当new一个ArrayList时,底层不会立马去创建一个10个长度的数组,而是创建一个空数组,在list执行add方法时才会进行创建,这样是为了节省内存,当当前有效元素个数大于数组长度时,也是进行1.5倍的一个扩容。

2023-02-08 21:37:26 133

原创 Oracle面试题

function为函数,procedure为存储过程。

2023-02-06 20:21:53 584

原创 Kafka面试题

消息首先由消息生产者发布至消息服务器中特定的主题中,然后由消息服务器将消息传送至所有已订阅此主题的消费者。主题目标也支持长期订阅。在该模型中,消息会自动广播,消息消费者无须通过主动请求或轮询主题的方法来获得新的消息。如果多个消息消费者正在监听队列上的消息,,JMS消息服务器将根据“先来者优先”的原则确定由哪个消息消费者接收下一条消息。如果没有消息消费者在监听队列,消息将保留在队列中,直至消息消费者连接到队列为止。在此模型中,消息不是自动推动给消息消费者的,而是要由消息消费者从队列中请求获得。

2023-02-02 09:30:32 317

原创 JVM面试题

java虚拟机将Class字节码文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型.class文件由类装载器装载后,在jvm中将形成一份描述Class结构的元信息对象,通过该类的Class对象可以获取该类的结构信息,如构造函数,属性和方法等,java允许通过该类的Class对象的元信息间接调用Class对象的功能。

2023-02-01 15:50:13 264

原创 Spring/SpringBoot/SpringCloud面试题

7.前端控制器将返回回来的ModelAndView对象交给视图解析器(ViewResolver),视图解析器根据传过里的View对象解析成对应的页面对象,然后将页面对象和Model对象返回给前端控制器。4.处理器适配器接收到来自前端控制器的执行链后,找到对应执行此执行链的处理器适配器(HandlerAdapter)来调用的具体的控制器(就是说其对应的方法或者逻辑)8.前端控制器再将返回回来的对象交给视图(View),视图根据传过来的Model对象再一次的对页面进行渲染,然后在返回给前端控制器。

2023-02-01 15:01:03 1265

原创 RabbitMQ面试题

在RabbitMQ中,生产者发送消息不会直接将消息投递到队列中,而是先将消息投递到交换机中, 在由交换机转发到具体的队列, 队列再将消息以推送或者拉取方式给消费者进行消费.

2023-01-31 22:57:05 4376

git使用教程详细版包含命令行与软件

Git 就像是代码世界里的时间机器,让你随时随地查看和管理你的代码历史。首先,你得安装 Git:Linux 和 macOS 用户可以用包管理器搞定,Windows 用户可以从 Git 官网下载。安装好后,别忘了给 Git 配置一下你的名字和邮箱,就像给它写个名片,命令是 `git config --global user.name "Your Name"` 和 `git config --global user.email "your.email@example.com"`。 接下来,你可以用 Git 开始玩转你的项目。用 `git init` 创建一个新的代码仓库,或者用 `git clone <repo-url>` 从远程拉下一个项目。如果你想知道文件的当前状态,`git status` 会告诉你一切。添加文件到暂存区很简单,只需 `git add <filename>`,然后用 `git commit -m "message"` 提交你的更改。 查看历史记录用 `git log`,就像翻阅代码的日记。如果你需要不同的开发线路,创建和切换分支也很简单。

2024-08-13

空空如也

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

TA关注的人

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