- 博客(151)
- 收藏
- 关注
原创 Java中基本数据类型和引用数据类型的存放位置
但是对于局部变量,是在栈上创建的,每一次方法调用创建一个帧,独享一份内存区域,其他的线程是不会访问到该线程的资源,在 栈上创建也会减轻GC的压力,随着该方法的结束,帧出栈,相对应的内存消除,这种局部变量占用的内存自然就消失了,因此局部变量是线程安全的。,即使变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈,其对应在该方法中声明的变量随着栈的销毁而结束,这就局部变量只能在方法中有效的原因。
2025-03-03 16:09:10
506
原创 Spring Boot集成Spring Ai框架【详解 搭建Spring Ai项目,以及简单的ai大模型智能体应用,附有图文+示例代码】
Spring AI 是一个用于 AI 工程的应用程序框架。 其目标是将 Spring 生态系统设计原则(如可移植性和模块化设计)应用于 AI 领域,并将使用 POJO 作为应用程序的构建块推广到 AI 领域。Spring AI 的核心是解决了 AI 集成的根本挑战:将您的企业数据和API 与 AI 模型连接起来。Spring AI 提供以下功能:支持所有主要的 AI 模型提供商,例如 例如 Anthropic、OpenAI、Microsoft、Amazon、Google 和 Ollama。
2025-03-03 16:00:17
1765
原创 Spring Boot集成Spring Ai框架【详解 搭建Spring Ai项目,以及简单的ai大模型智能体应用,附有图文+示例代码】
Spring AI 是一个用于 AI 工程的应用程序框架。 其目标是将 Spring 生态系统设计原则(如可移植性和模块化设计)应用于 AI 领域,并将使用 POJO 作为应用程序的构建块推广到 AI 领域。Spring AI 的核心是解决了 AI 集成的根本挑战:将您的企业数据和API 与 AI 模型连接起来。Spring AI 提供以下功能:支持所有主要的 AI 模型提供商,例如 例如 Anthropic、OpenAI、Microsoft、Amazon、Google 和 Ollama。
2025-03-01 20:26:12
5906
原创 本地安装多个JDK版本自由切换【详解 附有图文步骤】
系统变量添加JAVA8_HOME,JAVA17_HOME以及JAVA_HOME这三个系统变量,当然,名字都是随意的。前两个的系统变量值是你JDK的路径,JAVA_HOME的变量值是前两个的变量名。注意:在切换jdk后需要在cmd命令窗口验证是否成功,需要将上一次的命令窗口关闭,再重新cmd打开命令窗口。到这里整个设置就好了,如果想切换JDK版本,只需要改JAVA_HOME的变量值就可以了。
2025-02-28 16:45:50
958
原创 详解 HashMap扩容机制,HashMap的底层原理以及HashSet在底层原理
利用HashCode方法和equals方法HashCode方法来计算出哈希值,根据哈希值计算机出要元素要存入的位置,然后再调用equals方法比较对象内部的属性值是否一样利用什么机制保证去重?**利用HashCode方法和equals方法HashCode方法来计算出哈希值,根据哈希值计算机出要元素要存入的位置,然后再调用equals方法比较对象内部的属性值是否一样。
2025-02-27 13:58:45
1794
原创 Seata分布式事务【详解分布式事务AT模式、2PC两阶段提交协议、Seata Server(TC)环境搭建,附有示例+代码】
传统单体应用场景下,系统的数据保存在一个数据库实例中,通常场景的关系数据库都能自动提供事务保证,并且这种情况下的事务称为本地事务,能保证原子性、一致性、隔离性、持久性(ACID 特性)。本地事务大多数场景下,我们的应用都只需要操作单一的数据库,这种情况下的事务称之为本地事务(Local Transaction)。本地事务的ACID特性是数据库直接提供支持。分布式事务典型场景当下互联网发展如火如荼,绝大部分公司都进行了数据库拆分和服务化(SOA)。
2025-02-24 16:03:33
1437
原创 线程池中线程的停止及ExecutorService 中 shutdown()、shutdownNow()、awaitTermination() 含义和区别
在 Java 中,线程池的停止可以通过shutdown()或:平滑关闭线程池,不会立即中止任务,会等待现有任务执行完毕。:强制关闭线程池,会尝试中断正在执行的任务,并清空任务队列。:等待线程池中的所有任务完成,或者超时。1、优雅的关闭,用 shutdown()2、想立马关闭,并得到未执行任务列表,用shutdownNow()3、优雅的关闭,并允许关闭声明后新任务能提交,用 awaitTermination()
2025-02-22 15:38:21
1209
原创 ShardingSphere 数据库中间件【详解大数据量下分库分表,读写分离,主从同步,以及ShardingSphere-JDBC使用,附有示例+代码】
分库分表就是为了解决由于数据量过大而导致数据库性能降低的问题;1.将原来独立的数据库拆分成若干数据库组成;2.将原来的大表(存储近千万数据的表)拆分成若干个小表;目的:使得单一数据库、单一数据表的数据量变小,从而达到提升数据库性能的目的。Apache ShardingSphere是一款开源的分布式数据库中间件组成的生态圈,它由ShardingJDBC、Sharding-Proxy和Sharding-Sidecar(规划中)这3款相互独立的产品组成。
2025-02-20 09:06:38
1314
原创 Java面试题八股文(上)【!!!超全七万字归纳详解各种面试题型,值得收藏!!!】
功能:每个线程都有一个独立的虚拟机栈,用于存储方法的局部变量、操作数栈、动态链接、方法返回地址等信息。结构:内存管理:虚拟机栈是线程私有的,它的生命周期与线程的生命周期一致,栈的大小可以通过JVM参数进行调整。功能:堆是JVM中最大的一块内存区域,用于存放所有的对象实例和数组。几乎所有的Java对象(包括数组)都分配在堆内存中。结构年轻代(Young Generation):存放新创建的对象,通常包括Eden区和两个Survivor区(S0和S1)。对象会在年轻代内存中经过多次垃圾回收后晋升到老年代。老年代
2025-02-19 10:08:33
691
原创 详解 本机安装多个MySQL服务【为后续大数据量分库分表奠定基础,以mysql8.0为例,附有图文】
详解 本机安装多个mysql服务【为后续大数据量分库分表奠定基础,以mysql8.0为例,附有图文】
2025-02-18 16:31:04
343
原创 微服务SpringCloudAlibaba组件sentinel教程【详解sentinel的使用以及流量控制、熔断降级、热点参数限流等,附有示例+代码】
在基于 SpringCloud 构建的微服务体系中,服务间的调用链路会随着系统的演进变得越来越长,这无疑会增加了整个系统的不可靠因素。在并发流量比较高的情况下,由于网络调用之间存在一定的超时时间,链路中的某个服务出现宕机都会大大增加整个调用链路的响应时间,而瞬间的流量洪峰则会导致这条链路上所有服务的可用线程资源被打满,从而造成整体服务的不可用,这也就是我们常说的 “雪崩效应”。而在微服务系统设计的过程中,为了应对这样的糟糕情况,最常用的手段就是进行 ”流量控制“ 以及对网络服务的调用实现“熔断降级”。
2025-02-17 16:08:45
2055
原创 微服务SpringCloudAlibaba组件Spring Cloud Gateway网关教程【详解gatway网关以及各种过滤器配置使用,附有示例+代码】
Spring Cloud Gateway 是一个用于构建API网关的框架,它基于 Spring 5, Spring Boot 2 和 Project Reactor。它为微服务架构提供了反向代理、负载均衡、路由、过滤等功能,主要用于将请求路由到不同的微服务,支持动态路由配置和扩展性。常见应用场景:API网关:作为微服务架构的 API 网关,路由和过滤请求到不同的微服务。跨域请求处理:支持 CORS 配置,允许不同源的请求访问微服务。限流和熔断:结合 Spring Cloud Circuit Break
2025-02-15 18:59:39
1498
原创 微服务SpringCloud Alibaba组件OpenFeign 服务调用教程【详解hystrix熔断降级、Ribbon和loanbalancer负载均衡等 附有案例+示例代码】
微服务架构中使用OpenFeign进行服务调用,OpenFeign提供了一种简洁的方式来定义和处理服务间的调用。OpenFeign作为一个声明式的、模块化的HTTP客户端,通过**「接口」的定义和「注解」的使用,简化了微服务之间的通信调用。
2025-02-14 12:13:42
1104
原创 Docker+Jenkins自动化部署SpringBoot项目【详解git,jdk,maven,ssh配置等各种配置,附有示例+代码】
Jenkins 是一个流行的开源自动化服务器,主要用于 持续集成(CI) 和 持续部署(CD),它可以帮助开发团队自动化构建、测试和部署过程,提高软件开发效率。持续集成(CI,Continuous Integration)每次代码提交后自动构建和测试,确保代码的正确性。及时发现问题,提高团队协作效率。减少“集成地狱”,即多人开发时的代码合并问题。持续部署(CD,Continuous Deployment / Delivery)持续交付(Continuous Delivery):代码经过自动
2025-02-13 18:33:06
1859
原创 微服务SpringCloud Alibaba组件nacos教程【详解naocs基础使用、服务中心配置、集群配置,附有案例+示例代码】
nacos有注册中心的作用,我们常见的配置中心还有zk和eureka官网:https://nacos.io/zh-cn/index.htmlnacos在启动时,默认是AP模式,可以通过指令将nacos变为CP模式,在我们经常使用的微服务中,我们是选择使用AP模式的,此时的所有实例都属于临时实例。临时实例和持久实例最显著的区别就是在健康检查发现服务有问题时,持久实例被标注为不健康,而临时实例会直接剔除。
2025-02-12 19:02:33
2422
原创 解决Docker拉取镜像报错:Get https://registry-1.docker.io/v2/: 报错
Get "https://registry-1.docker.io/v2/是docker官方的镜像源,下载很慢的,一般会自己指定国内映射的加速镜像源。1.修改daemon.json 文件,没有的话新建一个。3.配置源修改后,要重启docker。2.进入daemon.json里面。4.重新拉取,会拉取成功。
2025-01-24 11:02:24
4490
1
原创 安装最小化的CentOS7后,执行yum命令报错Could not resolve host mirrorlist.centos.org; 未知的错误
1.12下载新的CentOS-Base.repo 到/etc/yum.repos.d/(确保能够ping通114.114.114.114)1.13运行yum makecache生成缓存。1.更新base.repo源。
2025-01-24 09:22:13
1469
原创 SpringBoot+Redis+消息队列 技术的抢购方案【附有图文+示例代码】
结果显示496个用户抢到,但是商品只有100个,出现数据不安全问题。解压即能用,找到bin下的jmeter.bat双击运行。如果是分布式系统的话,synchronized无法解决。创建springboot项目,导入redis相关依赖。为了方便,直接在启动类中初始化商品信息。启动SpringBoot程序后输入网址。首先安装jmeter工具,模拟高并发。但是执行速度比较慢。模拟1000个人每秒点击3次。提前部署好Redis和。首先模拟商品初始化信息。
2025-01-16 14:54:09
1102
原创 报错:95% emitting CompressionPlugin ERROR Error error0308010Cdigital envelope routinesunsupported
(如果第一种解决方案解决不了,用第二种解决方案)在package.json中添加如下代码。
2025-01-07 18:45:19
1720
原创 运行npm install 时,卡在sill idealTree buildDeps没有反应
淘宝镜像源的域名早已经过期,所以我们需要绑定新的镜像源。2021 年,淘宝就发布了消息称,npm 淘宝镜像已经从 registry.npm.taobao.org 切换到了 registry.npmmirror.com。然而,旧域名于 2022 年 5 月 31 日停止服务,不过直到二月份 HTTPS 证书到期才真正不能用了。
2025-01-07 17:52:15
718
原创 安全框架SpringSecurity进阶【详解,附有图文+示例代码】
一般Web应用的需要进行认证和授权。认证原理分析:Spring Security过虑器链结构图:如果前后端分离时 则这个过滤器不能直接使用,需要自定义一个登录校验流程内置认证过滤器的核心流程:核心流程梳理如下:概念速查:登录自定义用户详情类实现在自定的这个类中去数据库查询用户信息自定义登录接口底层调用ProvideManager的方法进行认证,认证成功生成jwt,存储用户信息(存redis)在SpringSecurity配置
2025-01-05 13:46:30
1341
原创 Linux部署web项目【保姆级别详解,Ubuntu,mysql8.0,tomcat9,jdk8 附有图文】
Linux(Ubuntu)部署javaweb项目,先在下载好XShell软件、XFtp软件。
2025-01-03 15:57:39
988
原创 安全框架SpringSecurity入门【详解,附有图文+示例代码】
Spring Security 是一个功能强大、可高度定制的认证和授权框架,专为保护基于 Spring 的应用程序而设计。它提供了多种安全机制,包括但不限于用户认证、授权、密码加密、防止 CSRF 攻击、跨站请求伪造攻击(XSS)、会话管理、OAuth、LDAP 集成等。核心概念认证(Authentication):确认用户身份的过程,通常通过用户名和密码实现。对象)。授权(Authorization):在认证后,判断用户是否有权访问某资源或执行某操作,通常根据角色、权限来进行控制。
2025-01-02 21:35:30
1249
原创 支付宝支付沙箱实验【入门保姆级教程,附有图文+示例代码】
支付宝沙箱环境是一个模拟真实交易环境的测试平台,它允许开发者在不影响真实交易的情况下测试支付流程、接口调用等功能。通过沙箱环境,您可以创建测试账号、进行支付测试、验证退款等操作。
2024-12-31 11:45:16
1868
1
原创 SpringBoot集成Swagger(详解配置Swagger信息、API文档分组以及介绍swagger常用注解的使用,附有文图+代码示例)
Swagger(现在更名为 OpenAPI)是一个广泛使用的开源框架,主要用于描述、构建、文档化和使用RESTful Web服务。它提供了一种标准方式来描述API接口,使得开发者可以轻松地生成API文档、生成代码、进行接口测试等。Swagger是通过Swagger规范(Swagger Specification)来描述API的,规范本质上是一个基于JSON或YAML的文档。Swagger的核心组件Swagger UI:一个用于展示API文档的用户界面。通过它,用户可以看到API的文档,并且直接在浏览器
2024-12-30 11:19:00
1897
原创 七牛云—对象云存储Kodo【入门保姆级教程 详解文件上传和下载,附有图文+示例代码】
七牛云海量存储系统(Kodo)是自主研发的非结构化数据存储管理平台,支持中心和边缘存储。平台经过多年大规模用户验证已跻身先进技术行列,并广泛应用于海量数据管理的各类场景。(该段摘自官网)七牛云提供的对象存储(Kodo)是一个高可用、高性能的云存储服务,用于存储和管理大规模非结构化数据,比如图片、视频、音频、文档等文件。在Kodo中,数据存储在Bucket(存储空间)中,每个文件有一个唯一的key(文件名)来标识。如果你需要在Java中使用七牛云的对象存储服务(Kodo),可以使用七牛提供的。
2024-12-29 19:51:51
1341
原创 RabbitMQ工作模式(详解 工作模式:简单队列、工作队列、公平分发以及消息应答和消息持久化)
RabbitMQ 是一个开源的消息队列中间件,它实现了高级消息队列协议(AMQP),用于在不同应用程序、服务或组件之间传递消息。它的主要作用是解耦不同的应用组件,使得系统具有更好的可扩展性和可靠性。RabbitMQ 支持多种消息传递模式,包括发布/订阅、工作队列、路由、请求/响应等。RabbitMQ 主要应用于异步任务处理、消息传递、事件通知等场景。。
2024-12-25 09:48:38
1300
原创 解决:IDEA中@Autowired自动注入MyBatis Mapper报红警告的几种解决方法
IDEA中@Autowired自动注入MyBatis的 Mapper报红警告,但是代码运行依旧成功。
2024-12-09 16:22:19
671
1
原创 SpringBoot集成Swagger(详解配置Swagger信息、API文档分组以及介绍swagger常用注解的使用,附有文图+代码示例
Swagger首先指定计划,实时更新API,较低集成风险早些年:指定word计划文档前后端分离:前端测试后端接口:postman后端提供接口,需要使用更新最新的消息及改动!
2024-12-05 00:30:36
764
原创 SpringMVC工作原理【流程图+文字详解SpringMVC工作原理】
首先用户通过浏览器发起HTTP请求,请求直接到前端控制器DispatcherServlet.2. 前端控制器接收到请求后 调用处理器映射器HandlerMapping,处理器映射器根据请求的URL找到具体的Handler,并将Handler返回给前端控制器。3. 前端控制器调用处理器适配器HandlerAdapter去适配Handler4. 处理器适配器会根据Handler去调用真正的处理器去处理请求,并且处理对应的业务逻辑5. 当处理器处理完业务之后,会返回ModelAndView对象给处理器适配
2024-11-29 17:10:36
1103
原创 Javaweb—Ajax与jQuery请求
浏览器页面在发送请求给服务器,在服务器处理请求的过程中,浏览器页面不能做其他的操作。只能等到服务器响应结束后才能,浏览器页面才能继续做其他的操作。Ajax: 全称Asynchronous JavaScript And XML,异步的JavaScript和XML。的技术,如:搜索联想、用户名是否可用的校验等等。的情况下,与服务器交换数据并。
2024-11-13 14:24:05
696
原创 登录—令牌技术
所使用的64个字符分别是A到Z、a到z、 0- 9,一个加号,一个斜杠,加起来就是64个字符。接下来,在后续的每一次请求当中,都需要将令牌携带到服务端。如果令牌是有效的,就说明用户已经执行了登录操作,如果令牌是无效的,就说明用户之前并未执行登录操作。在请求登录接口的时候,如果登录成功,可以生成一个令牌,令牌就是用户的合法身份凭证。此时,如果是在同一次会话的多次请求之间,我们想共享数据,我们就可以将共享的数据存储在令牌当中就可以了。令牌,其实它就是一个用户身份的标识,其实本质就是一个字符串。
2024-11-05 21:22:20
1017
原创 SpringBoot核心特性—AOP(详解AOP通知类型:环绕通知、前置通知等,以及AOP的连接点、通知、切入点、切面、目标对象以及通知顺序)
SpringBoot核心特性—AOP(详解AOP通知类型:环绕通知、前置通知等,以及AOP的连接点AOP英文全称:Aspect Oriented Programming(面向切面编程、面向方面编程),面向切面编程就是面向特定方法编程。减少重复代码提高开发效率维护方便面向这样的指定的一个或多个方法进行编程,我们就称之为 面向切面编程。AOP面向方法编程,就可以做到在不改动这些原始方法的基础上,针对特定的方法进行功能的增强。AOP的作用:在程序运行期间在不修改源代码的基础上对已有方法进行增强(无侵入性: 解耦)
2024-11-05 21:16:41
1365
原创 Maven详解—(详解Maven,包括Maven依赖管理以及声明周期,Maven仓库、idea集成Maven)
Maven是Apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。Apache Maven是一个项目管理和构建工具,它基于项目对象模型(Project Object Model , 简称: POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。项目对象模型 (Project Object Model)依赖管理模型(Dependency)构建生命周期/阶段(Build lifecycle & phases)
2024-11-01 09:36:48
1508
1
原创 Mybatis(完整详解,包括增删改查)
MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects)映射成数据库中的记录。
2024-10-26 11:08:42
8512
原创 MySQL数据库—多表查询
关系: 一对一关系,多用于单表拆分,将一张表的基础字段放在一张表中,其他详情字段放在另一张表中,以提升操作效率。子查询返回的结果是单个值(数字、字符串、日期等),最简单的形式,这种子查询称为标量子查询。实现: 在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的(UNIQUE)子查询返回的结果是一列(可以是多行),这种子查询称为列子查询。子查询返回的结果是一行(可以是多列),这种子查询称为行子查询。子查询返回的结果是多行多列,这种子查询称为表子查询。实现: 在多的一方建立外键,指向一的一方的主键。
2024-10-25 09:23:04
693
原创 MySQL数据库—事务(详解事务四大特性、并发事务问题以及事务的隔离级别,附有案例)
MySQL数据库—事务(详解事务四大特性、并发事务问题以及事务的隔离级别,附有案例)。事务 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。
2024-10-24 11:28:05
1002
原创 Mysql数据库—视图、存储过程(完整详解,附有案例+sql代码)
存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。封装,复用: 可以把某一业务SQL封装在存储过程中,需要用到的时候直接调用即可可以接收参数,也可以返回数据: 再存储过程中,可以传递参数,也可以接收返回值。减少网络交互,效率提升: 如果涉及到多条SQL,每执行一次都是一次网络传输。
2024-10-24 11:22:00
965
前端静态项目案例-仿淘宝官网首页
2024-08-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人