- 博客(89)
- 收藏
- 关注
原创 计算机网络相关知识小结
1.计算机网络:独立计算机,通信线路连接,实现资源共享2.组成:资源子网和通信子网3.拓扑分类4.范围:LAN, MAN. WAN5、有线和无线6.按照方向:单工、双工,全双工7.传输对象方式:单播、多播,广播8.电路 报文 分组9.语法 语义 时序10. OSI 7层TCP/ip 4层。
2025-03-30 22:06:51
810
2
原创 Redis:从缓存王者到数据“瑞士军刀”,你玩明白了吗?
Redis是一款高性能内存数据库,支持键值存储、持久化(RDB/AOF)、事务等特性。它不仅是缓存利器,还能实现排行榜、计数器、分布式锁等功能。通过单线程模型+内存操作保证高性能,采用惰性删除+定期清理管理过期数据。与MySQL配合时可用"延时双删"保持一致性。针对缓存穿透(布隆过滤器)、击穿(加锁/续期)、雪崩(随机过期)等问题都有完善解决方案,是分布式系统的重要组件。
2025-03-27 14:08:03
762
原创 微服务“抗压”指南:负载均衡、熔断限流,网关如何化身“流量交警”?
负载均衡是将请求分摊到多个服务器上,提升系统性能和可用性。可通过自定义实现(如随机选择服务实例)或使用Ribbon(通过@LoadBalanced注解)实现。Ribbon支持多种策略(如轮询、随机Feign进一步简化服务调用,声明式接口集成Ribbon实现负载均衡。高并发下需容错,Sentinel提供流量控制、熔断降级、系统保护,防止服务雪崩。Gateway作为API网关统一路由、过滤请求,支持限流(如Sentinel集成)和全局过滤(如Token验证)。整体通过Nacos实现服务发现,构建弹性微服务架构
2025-03-27 14:05:18
1150
原创 从“单打独斗“到“集团作战“:微服务架构如何让系统变身超级英雄联盟?
系统架构进化史:单体→集群→垂直→微服务,最终将系统拆分为独立小服务(如订单、商品服务)。Spring Cloud Alibaba提供一站式解决方案:Nacos实现服务注册与发现,告别硬编码IP;RestTemplate+Ribbon完成服务调用与负载均衡;Sentinel防雪崩确保系统稳定,Sleuth实现链路追踪;Gateway作为智能网关统一路由。优势在于灵活扩展、技术自由,虽然复杂度提升,但这套"微服务全家桶"让分布式系统开发So Easy!
2025-03-25 10:10:22
850
原创 MyBatis + Spring:这对“懒人“CP如何让Java开发爽到飞起?
MyBatis 是一个简化数据库操作的半自动 ORM 框架,通过 XML 或注解写 SQL,支持动态 SQL 和缓存优化。Spring 是管理 Java 对象的框架,核心是控制反转(IOC)和依赖注入(DI),让对象自动组装;同时提供面向切面编程(AOP),在不改代码的情况下增强功能(如加事务)。Spring Boot 是 Spring 的升级版,自动配置,减少繁琐设置。两者结合能高效开发企业级应用,MyBatis 处理数据,Spring 管理业务逻辑和系统架构。
2025-03-25 10:04:26
793
原创 MySQL:从数据库引擎到代码架构的“武林秘籍“
MySQL服务器内部架构分为连接层、服务层、引擎层和物理文件存储层。连接层负责客户端连接验证,服务层处理SQL解析优化和缓存,引擎层实现数据存储和提取,物理文件存储层保存表数据和日志文件。MySQL支持多种引擎,如InnoDB和MyISAMInnoDB支持事务、行级锁和外键,适合增删改操作;MyISAM适合查询较多场景。索引用于提高查询效率,分为主键唯一单值组合前缀和全文索引。事务确保数据一致性,隔离级别包括读未提交、读已提交、可重复读和串行化。锁机制分为全局锁表级锁和行级锁,SQL优化通过索引查询优化性能
2025-03-24 20:02:23
919
原创 23种设计模式速成指南:从单例到策略,一网打尽!
设计模式分为创建型(单例、工厂、原型)、结构型(代理)、行为型(模板方法、策略)。单例确保全局唯一对象,工厂解耦对象创建,代理增强功能不侵入源码,模板方法固定流程框架,策略模式灵活切换算法。掌握这些模式,代码更优雅、扩展更轻松!
2025-03-24 19:59:03
809
原创 注解与设计模式:解锁Java编程的魔法与艺术!
本文深入探讨了Java注解与设计模式的核心概念。从内置注解到自定义注解,再到通过反射解析注解,全面解析了注解的强大功能。同时,深入剖析了对象克隆的浅克隆与深克隆,以及Java设计模式的七大原则(如单一职责、开闭原则等),助你编写高内聚、低耦合的优雅代码。掌握这些技巧,让你的Java编程如虎添翼,成为真正的代码魔法师!
2025-03-19 00:14:52
1180
原创 JUC大揭秘:从ConcurrentHashMap到线程池,玩转Java并发编程!
本文深入探讨了Java并发编程的核心工具——JUC(java.util.concurrent)包中的关键实现类。从ConcurrentHashMap的高效并发控制,到CopyOnWriteArrayList的写时复制机制,再到线程池的灵活管理与优化,全面解析了多线程环境下的性能提升与线程安全问题。通过实例演示了CountDownLatch、ThreadLocal等辅助类的使用,并深入剖析了线程池的拒绝策略与内存泄漏问题。助你轻松掌握Java并发编程的精髓,成为多线程高手!
2025-03-19 00:11:50
1039
原创 线程大乱斗:从入门到精通,解锁Java并发编程的终极秘籍
本文带你深入Java多线程的世界,从基础概念到高级锁机制,全面解析线程的创建、状态管理及线程安全问题。通过实战演示多线程分解大文件读取任务,揭秘volatile、synchronized、ReentrantLock和CAS的奥秘。还探讨了乐观锁、悲观锁、读写锁等高级玩法,并深入AQS的底层实现。最后,通过打印对象头信息,揭开synchronized锁的神秘面纱,助你成为并发编程的高手!
2025-03-19 00:08:08
1106
原创 软件测试全攻略:从理论到实践的精华解析
软件测试是通过技术手段发现程序缺陷,确保软件质量的过程。其目的是发现并减少缺陷,保证软件的正确性和可靠性。测试工程师负责设计测试用例、执行测试、提交并跟踪缺陷,最终生成测试报告。测试技能包括功能测试、接口测试、自动化测试和性能测试。测试按阶段分为单元测试、集成测试、系统测试和验收测试;按代码可见度分为黑盒、灰盒和白盒测试。质量模型涵盖功能性、性能、兼容性等多方面。测试流程包括需求评审、编写测试计划、执行测试用例、缺陷管理和回归测试。常用测试工具有Postman、JMeter等。
2025-03-18 10:15:08
576
原创 深入解析JVM:从类加载到垃圾回收的全面指南
JVM是Java程序运行的核心,负责字节码到机器码的转换,包含类加载、运行时数据区、执行引擎和垃圾回收器。类加载通过双亲委派机制确保系统类优先加载,过程分为加载、链接和初始化。运行时数据区包括堆、栈、方法区等,堆是垃圾回收的重点区域。垃圾回收算法有标记-复制(新生代)、标记-清除和标记-压缩(老年代),不同算法优化内存管理。JVM调优和垃圾回收器选择对性能至关重要。
2025-03-18 10:11:17
861
原创 Redis
Redis是一种高性能的键值对非关系型数据库,数据存储在内存中,支持多种数据结构(如String、Hash、List、Set、ZSet)。它常用于缓存,减轻数据库压力。通过Docker可快速安装Redis,并配置远程连接。Spring Boot集成Redis时,使用`RedisTemplate`操作数据,支持序列化键值对。Redis适用于高并发场景,如缓存、计数器、排行榜等,通过设置失效时间管理数据生命周期。
2025-03-17 12:20:31
1027
原创 Docker
Docker是一种容器技术,通过标准化的应用镜像(包含应用及其依赖)简化了Linux软件的安装和管理,解决了跨环境迁移问题。主要功能包括打包、分发和部署应用。Docker架构包括镜像(Image)和容器(Container),镜像打包应用及其环境,容器是镜像运行后的进程。常用命令包括镜像和容器的操作,如拉取、查看、删除等。Docker还支持数据卷挂载,方便容器内外文件操作。通过Docker,可以轻松安装和管理如MySQL、Nginx等应用。
2025-03-17 12:18:34
1072
原创 Linux
Linux是由林纳斯·托瓦兹开发的开源操作系统,具有免费、稳定、安全等特点。它广泛应用于服务器和嵌入式开发,用户可以通过双系统、虚拟机或云服务器使用Linux。安装过程涉及创建虚拟机、选择镜像和进行网络配置,常用远程连接工具如FinalShell。Linux的目录结构清晰,常用命令有reboot、logout、find和tar等,软件安装可以用yum命令,vim是常用文本编辑器。对Java程序员而言,学习Linux有助于项目部署和数据库安装。
2025-03-12 11:05:23
1129
原创 Java反射
Java反射机制允许程序在运行时动态获取类的信息、创建对象并调用其成员。通过`Class`类,可以获取类的构造方法、成员变量和方法。常用方法包括`Class.forName()`、`类名.class`和`对象.getClass()`。反射常用于框架中,如Spring、MyBatis等,以处理未知类。优点包括增加灵活性和代码复用率,但缺点是性能较低且可能破坏代码抽象性。
2025-03-12 10:57:26
912
原创 MyBatis框架02
MyBatis 支持多表关联查询,通过resultMap定义复杂映射关系,使用association和collection处理一对一和一对多关系。动态 SQL 通过<if>、<where>、<choose> 等标签实现条件查询和更新操作。MyBatis 提供一级缓存(SqlSession 级别)和二级缓存(SqlSessionFactory 级别),减少数据库访问压力。注解方式简化简单 SQL 操作,而复杂 SQL 仍建议使用 XML 配置。缓存机制适用于频繁访问且修改较少的数据,提升查询效率。
2025-03-12 10:54:49
913
原创 MyBatis框架01
MyBatis 是一款优秀的持久层框架,简化了 JDBC 操作,支持 XML 或注解实现 ORM 映射。它通过核心配置文件管理数据库连接、事务和 SQL 映射,支持动态 SQL 和数据缓存。通过 SqlSessionFactory 创建 SqlSession 与数据库交互,代理对象调用接口方法执行 SQL。MyBatis 还支持别名配置、日志打印和灵活的参数传递,提升了开发效率。
2025-03-11 09:59:22
1029
原创 Git:版本控制工具
Git是一款分布式版本控制工具,用于解决多人协作开发中的代码共享和历史记录保存问题。与集中式版本控制工具(如SVN)不同,Git在每个开发者本地都有完整的仓库,确保数据安全。Git的工作流程包括工作区、暂存区和版本库,开发者通过git add将代码提交到暂存区,再通过git commit提交到本地仓库。Idea集成Git后,开发者可以方便地进行版本管理、历史记录查看和代码比对。Gitee是一个代码托管平台,支持远程仓库管理,Idea集成Gitee后可将本地代码推送到远程仓库,并解决多人开发中的代码冲突问题。
2025-03-11 09:58:25
1063
原创 JavaEE Servlet03
在前端开发中,使用sessionStorage存储用户信息,数据在浏览器关闭后销毁。通过vue-router的路由导航守卫beforeEach,实现登录验证,未登录用户访问受限页面时重定向至登录页。后端采用JWT(JSON Web Token)进行会话跟踪,生成包含用户信息的token,前端存储并在每次请求时携带。JWT由头部、载荷和签证三部分组成,确保信息安全和跨语言支持。通过`axios`请求拦截器添加token,后端验证token有效性,无效时返回401错误,前端响应拦截器处理错误并重定向至登录页。
2025-03-10 13:28:07
726
原创 base64
Base64是一种将二进制数据编码为64个可打印字符的方法,主要用于数据传输和存储。其原理是将每三个字节的24个二进制位分为四组,每组6位后转为十进制值。常见的应用场景包括公钥证书、XML数据嵌入、HTTP协议中的key-value字段、电子邮件以及前端页面中的图片嵌入。然而,Base64并不是加密或校验手段,仅是数据编码方式,容易被破解。
2025-03-10 13:26:39
282
原创 JavaEE Servlet02
在JavaEE开发中,过滤器(Filter)用于拦截请求和响应,实现统一处理如编码和权限控制等功能。通过实现Filter接口,可以在请求到达Servlet前进行处理,减少代码冗余。同步请求会阻塞客户端操作,而异步请求允许同时进行多任务操作,提升用户体验。跨域问题因浏览器安全限制产生,可通过CORS或后端设置响应头解决。JSON作为通用数据格式,便于前后端数据交互,常用Jackson库将Java对象转为JSON字符串。
2025-03-06 00:25:18
692
原创 JavaEE Servlet01
JavaEE是企业级Java开发平台,用于构建后端服务。通过Servlet处理HTTP请求和响应,Servlet生命周期包括初始化、服务和销毁。HTTP协议用于客户端与服务器通信,支持GET和POST请求。GET用于获取数据,POST用于提交数据。开发环境需安装JDK和Tomcat服务器,配置项目并部署。Servlet通过`HttpServletRequest`获取请求数据,`HttpServletResponse`返回响应。POST请求需设置字符编码防止中文乱码。整体流程包括接收请求、处理数据、调用DAO
2025-03-05 13:40:55
1723
原创 springBoot01
Spring是一个轻量级的IOC和AOP框架,简化企业级应用开发,具有解耦性、一站式等优点,但配置繁琐。SpringBoot基于约定大于配置的思想,简化Spring应用搭建,提供起步依赖和自动配置功能,内嵌服务器,支持快速开发。通过配置文件(.properties或.yml)管理参数,集成JDBC、MyBatis、阿里数据源等数据访问技术。SpringBoot还支持日志管理、AOP统一日志打印和全局异常处理,提升开发效率和系统稳定性。
2025-03-05 13:34:03
745
原创 springweb
SpringWeb是Spring框架的 Web 层组件,核心是DispatcherServlet,负责请求拦截与分发。特点包括与SpringIOC无缝集成、自动数据绑定、组件化设计和高性能。运行流程:请求先到DispatcherServlet,经HandlerMapping解析地址,再由HandlerAdapter调用处理器(如 LoginController)。支持多种请求接收方式,如HttpServletRequest、参数自动封装和对象绑定。还提供中文乱码处理、JSON 返回、跨域处理和拦截器功能
2025-03-04 09:59:00
688
原创 spring基础部分03
AOP(面向切面编程)通过分离业务代码(如学生管理)和非业务代码(如事务提交、日志记录),实现低耦合。Spring AOP 使用动态代理技术,在运行时插入非业务代码,支持多种通知类型(前置、后置、异常、环绕)。Spring 事务管理基于 AOP,提供声明式事务(通过 @Transactional 注解)和编程式事务,确保数据操作的原子性和完整性。声明式事务需注意失效场景,如非 public 方法、异常被捕获、数据库引擎不支持等。
2025-03-04 09:56:56
536
原创 Spring基础部分02
Spring 数据访问层管理通过 IOC 容器管理数据库连接(如 Druid 数据源)和 JdbcTemplate,简化 JDBC 操作。Spring 集成 MyBatis 时,通过 SqlSessionFactoryBean 管理 SqlSessionFactory,并用 MapperScannerConfigurer 扫描生成 DAO 代理对象,减少手动配置。两者结合,通过注解(如 @Autowired)实现依赖注入,提升开发效率和代码可维护性
2025-03-03 14:05:20
258
原创 Spring基础部分01
控制反转(IOC) 是 Spring 框架的核心思想之一,它将对象的创建和管理权交给 Spring 容器,开发者只需从容器中获取对象,无需手动创建。传统方式中,开发者通过 new 关键字创建对象,而 Spring 通过配置文件或注解管理对象的生命周期,实现了对象之间的解耦。IOC 的核心是 依赖注入(DI),Spring 容器在创建对象时,自动将依赖的对象注入到目标对象中,简化了代码的复杂性。通过 IOC,开发者可以更专注于业务逻辑,而不必关心对象的创建和依赖关系,提升了代码的可维护性和扩展性
2025-03-03 14:04:39
862
原创 计算机系统概论
计算机的基本组成硬件主机外设(或称I/O设备)软件系统软件应用软件注:存储器冯诺依曼计算机的五大功能部件特点计算机硬件的主要技术指标机器字长运算速度主频(时钟频率)和时钟周期cpu速度cpi:cpu执行时间:MIPS:MFLOPS:吞吐量:响应时间:主存性能主存容量和主存带宽主存容量:主存带宽:
2024-07-06 20:52:56
685
原创 前端进阶:Vue.js
Vue是一个前端js框架,简化js操作,其中MVVM思想实现数据双向绑定(标签展示和js中的数据),任意一方发生改变,框架都会自动的更新另一方,程序员不需要直接操作DOM对象(标签)框架:助解:框架:VUE什么是Vue.js?Vue.js优点Vue安装方式一:直接用引入方式二:命令行工具第一个Vue程序代码解释:Vue指令v-text v-htmlv-bind v-onv-modelv-ifv-showVue生命周期
2024-07-03 11:06:47
1012
原创 前端基础:JavaaScript(篇二)
1、var 数组名> = new Array();添加数组元素:数组名>[下标] = 值;a[1] = 2;a[3] = "a";2、var 数组名> = new Array(元素1>, 元素2>, 元素3>.内置对象String字符串属性方法日期Math数组定义属性方法join(分隔符>) :reverse():sort() :事件Html DOM对象Html DOM-查找 元素HTML DOM - 改变 HTMLHTML D..);
2024-07-03 11:04:12
1146
原创 前端基础:JavaScript(篇一)
JavaScript概述JavaScript历史:须知:基本语法变量数据类型1、数值型(number):2、布尔型(boolean):3、字符串型:4、undefined类型5:、Object类算术运算符 + - * / % ++ --加法运算减法运算乘法运算赋值运算-==(赋值)比较运算符==(比较值是否相等)===(比较值是否相等,还需要比较两个类型是否一致)逻辑运算符条件运算符控制语句选择结构循环结构函数定义函数调用全局函数• 确认对话框• 输入对话框• parseInt(arg)• pa
2024-07-02 12:07:27
1280
3
原创 前端基础:CSS(篇二)
浏览器为了在页面中没有样式时,也可以有一个比较好的显示效果,所 以为很多的标签都设置了一些默认的margin和padding,而它的这些默 认样式,正常情况下我们是不需要使用的。3.绝对定位是相对于离他最近的开启了定位的祖先标签进行定位(一般情况,开启了子标签 的绝对定位都会同时开启父标签的相对定位)● 内容区指的是盒子中放置内容的区域,也就是标签中的文本内容,子标 签都是存在于内容区中的。● 外边距不影响标签的大小.只是影响标签的位置 ,外边距是一个标签到另一个标签的距离。
2024-07-02 12:00:52
1058
原创 前端基础:CSS(篇一)
css概述CSS与HTML的关系基本语法行内样式表内嵌样式表外部样式表选择器标签选择器id选择器类选择器选择器优先问题通配选择器 选中所有的标签选择器组合,可以为多个选择器定义相同的样式表文本text-decoration: underline;下划线text-decoration: line-through;删除线背景CSS 列表list-style-image: url("img/img.jpg");list-style-type: none;CSS 伪类透明度地级,行级,行级块标签块级标签:无论内容
2024-07-01 12:25:48
804
1
原创 前端基础:HTML
HTML概述HTML基本语法标签属性代码基本语法注解编辑基本常用标签标题标签段落标签列表无序列表有序列表编辑超链接图像标签特殊符号转义编辑表格,表格属性表格的基本构成标签table-- 表格标签边框宽度tr-- 表格行td-- 普通的单元格表格的基本结构编辑表单文本 input 单行输入框type="text" 文本type="password" 密码框type="radio" 单选框其他表单下拉框多行文本域按钮
2024-07-01 12:18:34
1082
原创 计算机网络——网络安全
网络系统中的硬件,软件及其系统中的数据受到保护。网络安全概述网络安全网络安全计算机网络面临的威胁主要分为两大类主动攻击被动攻击网络系统的特性保密性完整性可用性可靠性不可依赖性加密和交互加密和解密加密手段公匙和私匙对称加密非对称加密数字签名的四大特点防火墙防火墙的区域们
2024-06-02 08:59:14
860
1
原创 计算机网络——应用层
指的是由服务器控制一段IP地址范围,客户机登录服务器就可以自动获得服务器分配的IP地址和子网掩码。通过主机中的多个应用进程之间的通信和协同工作来完成。使用TCP连接,远程登录大远地的另一台主机上。超文本传输协议,是一个简单的请求,响应协议。SMTP电子邮件传输协议——端口号是25。POP3邮局协议版本3——端口号110。端口号是21(20)20发送数据。三级域名,二级域名,顶级域名。使用TCP连接,传输数据。每一个域名用逗号隔开。
2024-06-02 08:57:40
590
原创 计算机网络——传输层
传输层概述传输层常见协议的端口号FTP:21(20)*TELNET:23*SMTP:25*DNS:53*TFTP:69*HTTP:80*SNMP:161*HTTPS:443*传输层的两个重要协议TCP(传输控制协议)TCP的主要特点窗口固定窗口滑动窗口拥塞处理和流量控制TCP的三次握手和四次挥手UDP(用户数据报协议)UDP的主要特点
2024-06-01 13:16:15
720
原创 计算机网络——网络层
一公司原来使用192.168.1.0/24这个标准网络,现在想为公司的每个部门(共6个)单独配置一个子网,其中最大的部门要分配IPV4地址的数量不超过25个。是IP协议提供的一个统一地址格式,为网络上的每一台主句分配的一个逻辑地址,来屏蔽物理地址的差异。基于链路状态的协议,使用SPF算法,计算最短路径,树型协议,没有跳数限制,适于中大规模的。((网络号 24位 +子网号 1位)网络号 25位 ) +主机号 7位。2、通过网络号进行区分 对应IP地址,有一个子网掩码,区分他的网络号。
2024-06-01 13:12:12
1739
原创 计算机网络——数据链路层
数据链路层基础既述数据链路层概念帧的概念组成以太网数据帧中的MAC和LLC数报链路层的两种传播方式数据链路层的三个基本问题以太网中的设备数据链路层的通信协议冲突域和广播域区别:虚拟局城网(实验)VLAN优点和目的划分VIAN的方式基于端口:基于子网:基于MAC地址:基于协议:基子匹配策略:CSMA/CD四大要点:PPPCRC
2024-05-28 19:08:28
1272
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人