Java后端进阶之路
文章平均质量分 86
零基础Java学习,Java后端,Spring,SpringBoot,JVM
Rem'Rem
目前正在学习java后端开发,爬虫,希望大家可以互相交流
GitHub账户:https://github.com/JX05120LLL
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
微服务架构详解
微服务架构详解:从演进到实践的全面指南 本文系统梳理了从单体架构到微服务架构的演进历程,重点分析了微服务架构的核心原理与实践挑战,并提供了负载均衡与限流等关键技术的具体实现方案。 核心内容要点 架构演进:从单体应用→集群架构→垂直拆分→最终演进到微服务架构,每一步都针对特定业务痛点(如代码耦合、扩容困难等) 微服务架构本质:SOA(面向服务架构)的演进,强调去中心化治理、独立部署和技术栈多样性 关键技术方案: 服务治理:Nacos/Eureka实现服务注册与发现 负载均衡:Nginx加权轮询与Ribbon客原创 2025-07-18 20:10:15 · 1316 阅读 · 0 评论 -
Redis完全指南:从基础到实战(含缓存问题、布隆过滤器、持久化及Spring Boot集成)
Redis完全指南摘要: Redis是一款高性能内存数据库,支持多种数据结构(字符串/哈希/列表等),广泛应用于缓存、分布式锁、计数器等场景。其核心优势在于单线程模型(6.0+支持多线程I/O)结合内存存储,实现亚毫秒级响应。提供RDB快照和AOF日志两种持久化方案(推荐混合模式),通过惰性删除+定期删除管理Key生命周期。Redis事务支持批量操作但无回滚机制,需注意其弱原子性特点。本文还涵盖线程模型、内存淘汰策略等核心技术要点,并给出Spring Boot集成示例,是Redis从入门到精通的实用指南。原创 2025-07-17 20:42:33 · 1435 阅读 · 0 评论 -
MySQL锁机制与SQL优化详解
MySQL锁机制与SQL优化是数据库性能调优的核心内容。锁机制部分详解了表锁、行锁和间隙锁的特点与适用场景,分析了锁兼容性和死锁问题。SQL优化部分介绍了慢查询定位、EXPLAIN执行计划解读、索引设计原则和SQL改写技巧,通过案例展示如何将查询从3秒优化到30毫秒。掌握这些知识可以有效提升数据库并发性能,解决生产环境中的性能瓶颈问题。原创 2025-07-15 20:00:38 · 829 阅读 · 0 评论 -
MySQL索引与事务详解:用大白话讲透核心概念
- **索引**是"目录",选对索引能让查询飞起来- **事务**是"原子操作",保证数据一致性- **存储引擎**是"工具",不同场景选不同工具- **隔离级别**是"社交距离",平衡一致性和性能原创 2025-07-15 19:56:11 · 649 阅读 · 0 评论 -
Java Stream流详解
Java Stream流详解:从基础到原理 摘要 Java 8引入的Stream流是集合操作的函数式抽象,通过无存储、惰性计算等特性,构建高效的数据处理流水线。Stream解决了传统集合操作的三大痛点:简化代码(消除迭代样板)、提升可读性(声明式编程)、支持并行计算(Fork/Join框架)。使用流程分为创建Stream、中间操作(如filter/map)和终端操作(如collect/reduce)三步,支持链式调用和延迟执行。Stream API统一了不同数据源的处理方式,其底层通过Spliterator原创 2025-07-14 21:00:27 · 2274 阅读 · 0 评论 -
代理模式详解:代理、策略与模板方法模式
本文详细介绍了三种常用的Java设计模式:代理模式(包括静态代理、JDK动态代理和CGLIB代理)、策略模式和模板方法模式。代理模式通过代理对象控制对目标对象的访问,实现功能增强;策略模式将算法封装为独立策略对象,支持运行时灵活切换;模板方法模式在父类中定义算法框架,子类实现具体步骤。文章通过代码示例和原理分析,比较了不同代理方式的优缺点和应用场景,为开发者提供了实用的设计模式实践指导。原创 2025-07-14 19:19:01 · 984 阅读 · 0 评论 -
面向对象设计模式详解
本文以汽车工厂为例,系统讲解了9种常用设计模式的实际应用。设计模式分为创建型(如单例模式、工厂方法模式)、结构型(如适配器模式、装饰器模式)和行为型(如观察者模式、策略模式)三大类。通过汽车制造场景的类比,文章生动展示了每种模式的核心思想、实现方式和适用场景,如单例模式类比工厂总控中心、工厂方法模式类比品牌生产线等。各种模式的代码示例和对比分析,使抽象的设计模式概念变得直观易懂,帮助开发者理解如何运用这些"最佳实践"构建更高效、灵活的软件系统。原创 2025-07-13 20:06:49 · 1237 阅读 · 0 评论 -
UML类图完全解读
摘要:UML类图是程序员理解系统架构的重要工具,本文详细解读了UML类图的核心元素和关系。类图通过类名、属性和操作三部分表示类结构,接口则有两种表示方式。重点阐述了6种类之间的关系:依赖关系(临时性关联)、关联关系(结构化关系)、聚合关系(整体与部分,可独立存在)、组合关系(强聚合,生命周期绑定)、继承关系(is-a关系)和实现关系(接口与实现类)。通过代码示例和图示,帮助开发者掌握类图的绘制和理解方法。原创 2025-07-13 07:30:00 · 750 阅读 · 0 评论 -
Java ThreadLocal详解:从原理到实践
Java ThreadLocal 核心解析与实践指南 ThreadLocal 是 Java 提供的线程本地存储机制,为每个线程创建独立变量副本,实现线程隔离和无锁并发。其核心原理基于 Thread 类中的 ThreadLocalMap 数据结构,通过 ThreadLocal 实例作为 key 来存取线程专属数据。典型应用包括解决 SimpleDateFormat 线程安全问题、用户会话管理和数据库连接控制等场景。 需特别注意 ThreadLocal 的内存泄漏风险:由于 Entry 的 key 是弱引用而原创 2025-07-12 19:44:38 · 899 阅读 · 0 评论 -
HashMap底层原理详解
哈希桶数组(Table):初始长度为 ***16***(DEFAULT_INITIAL_CAPACITY),每个元素称为一个 “桶”(Bucket)。数组长度始终为 2 的幂次方(如 16、32、64...),通过位运算优化哈希冲突。链表:***当多个键的哈希值冲突时,冲突的元素以链表形式存储在同一个桶中。***JDK 8 之前采用头插法(新节点插入链表头部),JDK 8 改为尾插法(避免多线程扩容时的死循环)。红黑树:***当链表长度超过 8(TREEIFY_THRESHOLD)且数组长度 ≥ 6原创 2025-07-12 10:04:59 · 1220 阅读 · 0 评论 -
史上最详细Java并发多线程(面试必备,一篇足矣)
本文介绍了Java线程的基础知识,主要内容包括:线程与进程的区别(线程共享进程内存空间,切换成本更低);三种线程创建方式(继承Thread类、实现Runnable接口、使用Callable和Future);线程的六种生命周期状态(NEW、RUNNABLE、BLOCKED等)及其转换条件;并发编程中的核心问题(非原子性、不可见性)及其产生原因。通过代码示例展示了非原子操作导致的计数错误问题,并解释了Java内存模型(JMM)对线程工作内存与主内存交互的规范,为理解多线程编程提供基础概念框架。原创 2025-07-11 20:48:38 · 611 阅读 · 0 评论 -
Java 并发编程系列(中篇):核心问题与基础解决方案
若线程 A 修改工作内存变量后未及时刷新到主内存,线程 B 读取的仍是主内存旧值,导致不可见性。在编译为机器指令时,可能会被重新排序,为了提高效率,在烧开水的同时洗茶壶和洗茶杯,这也是导致乱序性的根本原因。这里的工作内存是 JMM 的一个抽象概念,也叫本地内存,其存储了该线程读/写共享变量的副本。每条线程还有自己的工作内存,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的变量。:公平锁按请求顺序获取锁,非公平锁可能允许新线程 “插队”,性能更高但可能导致饥饿。,只要不影响单线程逻辑。原创 2025-06-22 11:47:54 · 778 阅读 · 0 评论 -
MongoDB 入门指南:安装、配置与 Navicat 连接教程
传统关系型数据库遵循ACID规则,即A (Atomicity) 原子性 ,C (Consistency) 一致性,I (Isolation) 独立性 ,D (Durability) 持久性。NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。原创 2025-06-09 16:17:21 · 3812 阅读 · 0 评论 -
Java 并发编程系列(上篇):多线程深入解析
默认情况下,新建线程加入创建它的线程所在组(通常是。线程 1 每次循环尝试让步,线程 2 可能更频繁执行,但因调度不确定性,结果不绝对一致。运行后,两个线程交替输出,体现多线程并发执行特性,适合线程逻辑简单且无需复用的场景。线程组辅助批量操作,但现代并发更依赖线程池,线程组使用场景逐渐减少,了解即可。其实也可以这样理解,让A线程插队,当前线程main在A线程执行完毕后再执行。main 线程(用户线程)结束后,守护线程随之停止,不会无限循环。,聚焦多线程基础、线程状态、线程组与优先级、进程线程区别,以及。原创 2025-06-07 18:33:10 · 796 阅读 · 0 评论 -
一文搞懂JVM 垃圾回收机制
finalize()方法是Object类中的一个实例方法,其源码为protected void finalize() throws Throwable { }。它是对象销毁前的回调方法,Java 语言提供该机制,允许开发人员在对象被垃圾回收器回收之前,执行自定义的处理逻辑。当垃圾回收器发现某个对象不再被任何引用指向,即该对象即将被回收时,总会先调用这个对象的finalize()方法 ,并且一个对象的finalize()方法在其生命周期中只会被调用一次。原创 2025-06-03 18:56:27 · 1027 阅读 · 0 评论 -
JVM 核心组件深度解析:堆、方法区、执行引擎与本地方法接口
堆内存通过分代回收机制高效管理对象生命周期;方法区为类元数据提供全局存储,确保类型信息的唯一性;执行引擎通过解释与编译的混合模式平衡启动速度与执行性能;本地方法接口打破语言边界,赋予 Java 调用底层系统的能力。理解这些组件的原理与协作,不仅能深入掌握 Java 的运行机制,更能在性能调优、内存故障排查中精准定位问题。无论是优化 GC 频率、分析热点代码,还是合理使用本地方法,JVM 的底层设计思想都为开发者提供了清晰的指引。原创 2025-05-31 14:00:42 · 1215 阅读 · 0 评论 -
HTTP与HTTPS协议
HTTP协议是一种无状态的协议,意味着每一次请求都是独立的,服务器不会记录任何关于客户端的状态。HTTP的工作流程主要分为请求和响应两个部分。HTTP和HTTPS是现代互联网中不可或缺的协议。虽然HTTP仍然被广泛使用,但由于其安全性不足,越来越多的网站正在转向HTTPS,以保护用户数据和隐私。在选择使用哪种协议时,建议优先考虑安全性,以确保信息传输的安全和可靠。原创 2024-10-28 14:24:47 · 1435 阅读 · 0 评论 -
JavaWeb会话技术:Cookie与Session详解
会话技术是指在Web应用中,服务器用来跟踪客户端状态的技术。它允许服务器在多个请求之间保存和传递用户信息,从而实现个性化体验和连续的交互。原创 2025-01-16 13:32:32 · 771 阅读 · 0 评论 -
Axios 快速入门
Ajax 是一种通过 JavaScript 发送异步请求的技术,它的核心是使用 XMLHttpRequest 对象来与服务器交换数据。这种方式较为繁琐,因为需要手动处理请求状态和响应,并且编写的代码往往比较冗长。相较之下,Axios 是一个基于 Promises 的 HTTP 客户端,简化了发送请求的过程,使得处理 HTTP 请求更加直观和便捷。Axios 封装了 XMLHttpRequest,并提供了一系列功能,例如请求和响应拦截、自动转换 JSON 数据等。原创 2024-10-07 16:14:26 · 887 阅读 · 0 评论 -
前端工程化-Vue3脚手架安装
Vue脚手架是官方提供的标准化开发工具,其主要功能是简化Vue项目的创建和配置,从而提升开发效率。它支持命令行和UI界面,能自动生成项目结构、配置第三方依赖和进行开发环境管理等。通过以上步骤,你可以顺利安装Vue CLI和创建新的Vue项目。Vue脚手架不仅能简化开发流程,还能帮助你快速配置项目环境,提升开发效率。原创 2024-10-08 09:30:00 · 1389 阅读 · 0 评论 -
JavaEE第一个项目创建
我将为您详细介绍如何在IntelliJ IDEA中创建第一个JavaEE项目,包括项目的配置和Tomcat服务器的管理。首先,您需要安装IntelliJ IDEA。如果您是JavaEE的新手,请选择社区版即可。安装完成后,打开IDEA,您可以按照以下步骤创建JavaEE项目。原创 2024-12-25 18:52:22 · 583 阅读 · 0 评论 -
Web开发-CSS篇-上
选择器用于选择要应用样式的HTML元素。选择器可以根据元素的标签、ID、类等进行匹配。我们回顾了CSS的发展历史,了解了它与HTML的紧密联系以及学习CSS的必要性。我们还详细介绍了CSS在HTML中的三种引用方式及其优缺点,以及如何通过选择器来精准地控制网页元素的样式。原创 2024-08-08 22:14:09 · 1397 阅读 · 0 评论 -
JavaScript-上篇
JavaScript(简称JS)是一种高层次、解释型的编程语言,最初由布兰登·艾奇(Brendan Eich)于1995年创建,并首次出现在网景浏览器中。JS的设计初衷是为Web页面提供动态交互功能,因此与HTML和CSS一起构成了Web的三大核心技术。随着时间的推移,JavaScript不断发展,成为如今最流行的编程语言之一。JavaScript作为Web开发的重要工具,通过不断的演进与扩展,已经成为现代应用开发中不可或缺的一部分。原创 2024-10-04 17:29:08 · 1198 阅读 · 0 评论 -
Java Web 登录系统示例:过滤器技术与 JDBC 数据库连接
过滤器(Filter)是JavaWeb开发中的一个强大工具,它可以在请求到达Servlet之前或响应返回客户端之前对请求和响应进行拦截和处理。过滤器可以用来执行诸如字符编码设置、跨域资源共享(CORS)、日志记录、权限检查等任务。JDBC(JavaDatabaseConnectivity)是Java访问数据库的标准API,允许Java程序连接并操作各种数据库。用户交互用户在登录页面输入用户名和密码,点击登录按钮。请求处理前端通过AJAX将用户名和密码发送到。调用进行登录验证。原创 2025-01-18 15:47:42 · 1226 阅读 · 0 评论 -
Maven3.9.9环境安装配置
Maven的核心是项目对象模型POM),它是Maven构建和管理项目的基础。POM以XML格式存在,包含了项目的基本信息、构建配置、依赖管理等内容。project:根元素,标识这是一个Maven项目。:指定POM模型的版本,通常为4.0.0。groupId:定义项目所属的组织或公司标识。artifactId:项目的唯一标识,通常是项目名称。version:项目的版本号,用于区分不同版本的构建。Maven在本地机器上维护一个本地仓库,默认位置为用户主目录下的。原创 2024-10-23 18:38:41 · 7430 阅读 · 0 评论 -
JavaEE 前后端交互与数据库连接练习
前端页面: 使用HTML表单收集用户输入,并提交到Servlet。Servlet处理请求: 获取请求参数,调用DAO层方法查询数据库。数据库访问: 通过DAO层建立数据库连接,执行SQL查询,返回结果。页面跳转: 根据查询结果重定向到不同的页面。这个练习为我打下了JavaEE开发的基础,理解了MVC架构中各层的作用和交互方式。今后我将继续深入学习JavaEE,掌握更多高级功能和最佳实践。原创 2025-01-03 16:54:55 · 1295 阅读 · 0 评论 -
Tomcat 11 下载/安装 与基本使用
Tomcat是一个轻量级的Web服务器,主要用于运行Java Servlet和JSP。它封装了HTTP协议,使得开发者能够更方便地构建和管理Web应用程序。由于其开源和跨平台的特性,Tomcat受到许多Java开发者的青睐。原创 2024-10-29 17:32:03 · 3981 阅读 · 0 评论 -
Servlet详解
Servlet是JavaWeb开发中的重要组件,它运行在服务器端,用于处理客户端的请求并返回响应。Servlet是ServerApplet的缩写,全称JavaServlet。它是用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。原创 2025-01-14 18:51:11 · 1173 阅读 · 0 评论 -
深入浅出JSON:数据交换的轻量级解决方案
JSON作为一种轻量级的数据交换格式,在前后端通信中扮演着重要角色。结合Axios,我们可以轻松实现前后端的数据交互。作为Java后端开发者,掌握JSON的生成与解析,能够帮助你构建更加高效、灵活的Web应用。原创 2025-01-18 17:23:30 · 1195 阅读 · 0 评论 -
Web开发-html篇-上
html基础篇上原创 2024-08-03 22:21:30 · 1575 阅读 · 0 评论 -
前后端分离开发&YApid
前后端分离开发模式在提升开发效率和维护性的同时,也为团队协作提供了更好的支持。而YApi作为现代化的接口文档管理工具,通过清晰的文档管理、便捷的接口测试和灵活的Mock功能,极大地促进了前后端的协作。使用YApi,可以显著降低因接口不一致引起的开发问题,提高整体开发质量。通过这些优良的实践,开发团队能够更好地应对日益变化的业务需求和技术挑战。原创 2024-10-07 16:56:19 · 1302 阅读 · 0 评论 -
Web开发-CSS篇-下
盒子模型是CSS布局的基础,每个HTML元素都被看作是一个矩形盒子。Content:内容区域,显示文本和图片。Padding:内边距,围绕内容的空白区域。Border:边框,包围内边距的边界线。Margin:外边距,盒子与其他元素之间的空白区域。浮动元素脱离了标准文档流,可以左右浮动以实现图文环绕效果。浮动的主要属性是float,可以设置为leftright或none。浮动带来的主要问题是会影响标准文档流,导致父容器高度塌陷。解决此问题的常用方法包括“清除浮动”。相对定位。原创 2024-08-12 22:19:13 · 1190 阅读 · 0 评论 -
Maven-依赖
Maven的依赖管理功能丰富,能显著提高Java项目的开发效率。从依赖的配置、传递、范围到生命周期管理,掌握这些概念可以帮助你更好地管理项目依赖,减少依赖冲突,提高构建的稳定性。在日常开发中,合理利用Maven的依赖管理,能够让你的项目构建变得更加轻松和高效。原创 2024-10-24 17:30:18 · 1167 阅读 · 0 评论 -
Web开发-html篇-下
html中的大部分标签就已经写完了,这样的写出来的网页没有颜色,过于单调,过于简陋,这就要用到我们接下来要学的CSS和Javascript了,我会接着持续更新……原创 2024-08-04 21:23:42 · 720 阅读 · 0 评论 -
Postman:高效的API测试工具
Postman是一款功能强大的API开发工具,允许开发者轻松创建、测试和管理API请求。它提供了一个用户友好的界面,可以发送各种类型的HTTP请求(如GET、POST、PUT、DELETE等),并查看响应结果。Postman支持多种数据格式,包括JSON、XML等,使得它成为开发和测试RESTful API的理想选择。Postman作为一款强大的API测试工具,为前后端分离开发中的后端接口测试提供了极大的便利。它不仅简化了API请求的构建过程,还支持自动化测试、环境管理和团队协作。原创 2024-10-30 17:32:53 · 1623 阅读 · 0 评论 -
Element-快速入门
在现代前端开发中,组件化的思想日益盛行,Element组件库作为一款流行的UI组件库,特别适用于基于Vue.js的项目,它为开发者提供了丰富的组件和良好的开发体验。想要使用Element的组件库,我们需要完成下面三步……Element组件库作为一款优秀的UI库,不仅丰富了Vue开发者的组件选择,它的易用性和性能优势使得在开发过程中得心应手。无论是前端新手还是经验丰富的开发者,都能从中受益。原创 2024-10-09 18:12:15 · 1786 阅读 · 0 评论 -
Vue脚手架项目创建 --保姆级教程
创建好后,可以看到下载了一堆文件,我们用VScode 打卡,来逐个了解一下这些文件我们详细探讨了如何使用 Vue CLI 创建和启动 Vue 项目,从项目的配置到结构的理解,再到实际的运行和端口修改。希望通过这篇文章,您能够轻松上手 Vue 开发,探索更多前端技术的可能性。无论是构建小型项目还是大型应用,掌握这些基础知识都是至关重要的。如果您有任何问题或建议,欢迎在评论区留言,让我们一起交流学习!原创 2024-10-09 16:27:07 · 1921 阅读 · 0 评论 -
JavaScript-下篇
在 JavaScript 中,我们可以使用对象字面量的语法来创建自定义对象。age: 30,alert("干饭!");在这个示例中,我们创建了一个名为person的对象,它有三个属性(nameage和city)以及一个方法(eat这个eat方法在被调用时会弹出一个消息框,显示“干饭!我们可以通过对象的名称加上点操作符来调用方法。例如,调用eat方法和输出name属性的值。// 调用 eat 方法// 输出 name 属性的值这段代码将弹出“干饭!”的提示框,并且接着显示当前对象的name属性。原创 2024-10-05 11:23:01 · 1001 阅读 · 0 评论 -
理解HTTP、HTTPS、TCP、UDP与OSI七层模型:网络访问的基础
1. HTTP(超文本传输协议)定义:HTTP是一种无状态的应用层协议,主要用于在Web浏览器和服务器之间传输数据。特点明文传输:数据以未加密的形式传输,容易被第三方截获。无连接性:每个请求都是独立的,服务器不保留连接状态。请求-响应模型:客户端发起请求,服务器返回响应。2. HTTPS(安全超文本传输协议)定义:HTTPS是在HTTP上增加了SSL/TLS加密层,以提供更高的安全性。特点加密传输:通过SSL/TLS对数据进行加密,确保数据在传输过程中不被窃取或篡改。身份认证。原创 2024-10-28 14:49:12 · 1731 阅读 · 0 评论 -
Vue-快速入门
Vue.js是一个用于构建用户界面的渐进式JavaScript框架。与其他重型框架不同,Vue的设计理念强调自底向上的增量开发,核心库专注于视图层,易于逐步引入到现有项目中。Vue允许开发者使用声明式的模板语法,有效地管理数据和界面之间的关系。它不仅适合于单页应用(SPA),也能够用于更复杂的企业级应用。响应性:Vue能够自动追踪所有依赖于数据的状态,当这些状态变化时,会自动更新界面。组件化:开发者可以将应用拆分成多个组件,每个组件拥有自己的模板、逻辑和样式,便于维护和复用。渐进式框架。原创 2024-10-06 17:18:22 · 1021 阅读 · 0 评论
分享