<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[G_G_S的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/G_G_S</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; G_G_S]]></copyright><item><title><![CDATA[Docker深度学习]]></title><link>https://blog.youkuaiyun.com/G_G_S/article/details/159965529</link><guid>https://blog.youkuaiyun.com/G_G_S/article/details/159965529</guid><author>G_G_S</author><pubDate>Wed, 08 Apr 2026 20:44:55 +0800</pubDate><description><![CDATA[Docker是一个开源容器化平台，可将应用及其依赖打包成轻量级、可移植的容器。其核心组件包括客户端、守护进程和镜像仓库。Docker通过分层镜像和容器技术实现快速部署，支持多阶段构建优化镜像大小，并提供网络、存储卷等功能实现容器间通信和数据持久化。对于深度学习场景，NVIDIA Docker支持GPU加速，可运行PyTorch/TensorFlow等框架。Docker Compose能简化多容器应用管理，通过YAML文件定义服务配置。常用操作包括镜像构建、容器管理、日志查看等，适用于开发、测试和生产环境部署]]></description><category></category></item><item><title><![CDATA[什么是【SpringAI】？]]></title><link>https://blog.youkuaiyun.com/G_G_S/article/details/151013960</link><guid>https://blog.youkuaiyun.com/G_G_S/article/details/151013960</guid><author>G_G_S</author><pubDate>Sat, 30 Aug 2025 11:10:05 +0800</pubDate><description><![CDATA[Spring AI是一个简化AI应用开发的Java框架，基于Spring Boot 3.x构建，需要JDK17环境。它提供统一API支持主流AI模型（如OpenAI、DeepSeek等），实现聊天、文本生成等功能。核心特点包括多模型支持、结构化输出、向量数据库集成和函数调用等。开发者只需简单配置API密钥和模型参数，通过ChatClient等接口即可快速实现AI功能。示例展示了如何配置DeepSeek模型并构建一个简单的聊天接口。Spring AI极大降低了Java开发者接入AI能力的门槛。]]></description><category></category></item><item><title><![CDATA[搞懂微服务【SpringCloud】]]></title><link>https://blog.youkuaiyun.com/G_G_S/article/details/150990463</link><guid>https://blog.youkuaiyun.com/G_G_S/article/details/150990463</guid><author>G_G_S</author><pubDate>Fri, 29 Aug 2025 17:04:34 +0800</pubDate><description><![CDATA[从多维度保护微服务稳定一个分布式事务框架就是保证多个数据库或多个服务操作的原子性操作做请求的转发和过滤，可以跟注册中心整合，提供了各种FilterZuul使用的是传统的Servlet IO的处理模型，ServletIO是一个请求一个线程，在并发情况下导致线程变多，占用资源很多，浪费资源所以Gateway基于这个问题，改变了并发的问题，所以就用了WebFlux模型来异步处理请求。]]></description><category></category></item><item><title><![CDATA[三大【MQ】核心知识]]></title><link>https://blog.youkuaiyun.com/G_G_S/article/details/150860226</link><guid>https://blog.youkuaiyun.com/G_G_S/article/details/150860226</guid><author>G_G_S</author><pubDate>Tue, 26 Aug 2025 16:20:04 +0800</pubDate><description><![CDATA[MQ 摘要 消息队列(MQ)具有异步处理、解耦系统组件、流量削峰、可靠消息传递和水平扩展等核心特性。常见应用场景包括订单处理、日志收集和微服务通信。RabbitMQ作为主流MQ之一，基于AMQP协议，支持多种交换机类型：直连(精确匹配)、广播(全量发送)、消息头(属性匹配)和通配符(模式匹配)。其可靠性通过持久化、确认机制和死信队列实现，同时支持通过TTL和死信队列组合实现延时消息功能。但MQ也存在消息重复发送(需通过唯一索引/版本号/Redis去重解决)和维护成本较高等缺点。]]></description><category></category></item><item><title><![CDATA[一文看懂【Redis】]]></title><link>https://blog.youkuaiyun.com/G_G_S/article/details/150703696</link><guid>https://blog.youkuaiyun.com/G_G_S/article/details/150703696</guid><author>G_G_S</author><pubDate>Sun, 24 Aug 2025 20:19:45 +0800</pubDate><description><![CDATA[Redis是一种高性能非关系型内存数据库，支持10万+并发操作，提供多种数据结构： 核心数据结构 String：最大512MB，支持过期时间、原子增减，适用于缓存、计数 Hash：存储对象结构，高效管理关联字段 List：双向操作，支持消息队列和分页场景 Set：无序唯一集合，适合标签、共同好友等场景 Sorted Set：带分值的有序集合，用于排行榜 高级功能 Bitmaps：位操作集合，节省空间记录用户活跃状态，但需注意大范围操作可能阻塞请求 通过Hash映射解决高偏移量内存问题 ]]></description><category></category></item><item><title><![CDATA[一文看懂【Mysql】]]></title><link>https://blog.youkuaiyun.com/G_G_S/article/details/150562447</link><guid>https://blog.youkuaiyun.com/G_G_S/article/details/150562447</guid><author>G_G_S</author><pubDate>Wed, 20 Aug 2025 21:34:53 +0800</pubDate><description><![CDATA[MySQL数据库优化主要涉及范式设计、字段类型优化和索引策略。范式化设计（1NF-3NF）保证数据一致性但可能影响性能，反范式化可提高查询效率但增加冗余。字段类型应尽可能小，避免NULL值，遵循最小够用原则。 索引优化包括B+树索引（聚簇/二级/联合索引）、哈希索引和创建策略。三星索引标准建议将WHERE条件、ORDER BY和SELECT列都包含在索引中。事务特性（ACID）和隔离级别影响并发控制，MVCC通过Undo log版本链和Readview实现非阻塞读写]]></description><category></category></item><item><title><![CDATA[认识【Mybatis】]]></title><link>https://blog.youkuaiyun.com/G_G_S/article/details/150430368</link><guid>https://blog.youkuaiyun.com/G_G_S/article/details/150430368</guid><author>G_G_S</author><pubDate>Fri, 15 Aug 2025 21:46:19 +0800</pubDate><description><![CDATA[MyBatis 是一个持久层框架，其核心工作原理是通过 SqlSessionFactory 创建 SqlSession 执行数据库操作。MyBatis 提供两级缓存机制：一级缓存（会话级别）和二级缓存（Mapper 级别），通过缓存配置可提升性能。缓存可能引发雪崩、穿透、击穿问题，可通过随机过期时间、参数校验等方式解决。分页支持逻辑分页和物理分页两种方式，MyBatis-Plus 提供更便捷的分页实现。延迟加载功能通过代理对象实现关联查询的按需加载，减少不必要的数据查询，可通过全局或局部配置启用。]]></description><category></category></item><item><title><![CDATA[一文看懂【JAVA数据结构】]]></title><link>https://blog.youkuaiyun.com/G_G_S/article/details/150074659</link><guid>https://blog.youkuaiyun.com/G_G_S/article/details/150074659</guid><author>G_G_S</author><pubDate>Thu, 14 Aug 2025 21:46:59 +0800</pubDate><description><![CDATA[数据结构摘要 数据结构分为线性结构和非线性结构。线性结构包括数组（连续固定大小内存块）、队列（FIFO）、链表（包含单向/双向/循环链表）和栈（LIFO）。非线性结构主要介绍哈希表（键值对映射）和树结构。树结构涵盖普通树、二叉树及其变种（完美/完全/完满）、AVL平衡树、234树和红黑树，重点分析其时间复杂度、平衡机制和应用场景。哈希表和红黑树因其高效查找性能（O(1)和O(log n)）在Java集合框架中被广泛应用。文章还提供了可视化演示地址和各类数据结构的图示说明。]]></description><category></category></item><item><title><![CDATA[Spring核心知识]]></title><link>https://blog.youkuaiyun.com/G_G_S/article/details/150292968</link><guid>https://blog.youkuaiyun.com/G_G_S/article/details/150292968</guid><author>G_G_S</author><pubDate>Tue, 12 Aug 2025 23:05:52 +0800</pubDate><description><![CDATA[Spring核心机制摘要 Spring框架的核心机制主要包括IOC容器和AOP编程。IOC实现控制反转，通过反射创建Bean对象并管理其生命周期，包括实例化、属性填充、初始化等阶段，利用三级缓存解决循环依赖问题。AOP通过动态代理实现切面编程，支持前置/后置/环绕等通知类型，应用于日志、事务等场景。事务管理基于AOP实现，提供4种隔离级别和传播行为。设计模式上，Spring广泛应用单例、工厂、代理等模式。Bean生命周期完整，从实例化到销毁由容器全权管理。]]></description><category></category></item><item><title><![CDATA[【什么是IO】]]></title><link>https://blog.youkuaiyun.com/G_G_S/article/details/150215040</link><guid>https://blog.youkuaiyun.com/G_G_S/article/details/150215040</guid><author>G_G_S</author><pubDate>Tue, 12 Aug 2025 08:30:00 +0800</pubDate><description><![CDATA[IO（输入输出）是计算机系统内部与外部数据传输的过程，主要分为网络IO、磁盘IO和设备IO三种类型。在网络IO方面，详细介绍了OSI模型各层协议（如HTTP、TCP/IP）、DNS解析过程、TCP三次握手/四次挥手原理、Socket套接字以及IO底层工作原理。重点分析了三种IO模型：BIO（同步阻塞）、NIO（同步非阻塞）和AIO（异步非阻塞）的实现机制与优缺点，特别说明了NIO如何通过多路复用器提升性能。此外还介绍了基于TCP的RPC框架和Netty网络编程框架的核心技术。]]></description><category></category></item><item><title><![CDATA[一文看懂【多线程与高并发】]]></title><link>https://blog.youkuaiyun.com/G_G_S/article/details/150153606</link><guid>https://blog.youkuaiyun.com/G_G_S/article/details/150153606</guid><author>G_G_S</author><pubDate>Mon, 11 Aug 2025 08:30:00 +0800</pubDate><description><![CDATA[本文系统梳理了Java多线程与高并发的核心知识点，包括线程基础（状态、创建方式、JMM模型）、线程池参数与执行流程、各类锁机制（可重入锁、乐观/悲观锁等）、AQS同步器原理，以及线程协调工具（CountDownLatch、Semaphore）的使用场景。重点对比了协程与线程的特性差异，指出协程在用户态调度、轻量级和低切换开销方面的优势。同时总结了ReentrantLock、synchronized等锁的实现原理，并强调虚拟线程在JDK21+中对IO密集型应用的性能提升。全文以技术要点罗列为主，涵盖多线程编程]]></description><category></category></item><item><title><![CDATA[JVM从浅到深]]></title><link>https://blog.youkuaiyun.com/G_G_S/article/details/150152858</link><guid>https://blog.youkuaiyun.com/G_G_S/article/details/150152858</guid><author>G_G_S</author><pubDate>Sun, 10 Aug 2025 18:54:03 +0800</pubDate><description><![CDATA[JVM 类加载机制包括装载、验证、准备、解析、初始化等阶段，采用双亲委派模型防止重复加载。运行时数据区包含堆、方法区、虚拟机栈等，其中堆分为新生代(Eden/Survivor)和老年代，采用不同GC算法。对象生命周期包括可达性分析、垃圾回收等阶段。JVM提供-Xms/-Xmx等参数调节内存，-XX参数控制GC行为。垃圾回收算法包括标记清除、标记整理和复制算法，各有优缺点。]]></description><category></category></item><item><title><![CDATA[JAVA DLL JNA找不到指定的模块 & %1不是有效的win32程序]]></title><link>https://blog.youkuaiyun.com/G_G_S/article/details/123652842</link><guid>https://blog.youkuaiyun.com/G_G_S/article/details/123652842</guid><author>G_G_S</author><pubDate>Tue, 22 Mar 2022 11:23:22 +0800</pubDate><description><![CDATA[项目场景：JAVA DLL JNA找不到指定的模块 &amp; %1不是有效的win32程序
提示：这位大佬已经提供解决方案：
作者：Gowcage
链接：https://blog.youkuaiyun.com/gowcage/article/details/104541404?spm=1001.2101.3001.6650.1&amp;utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_]]></description><category></category></item><item><title><![CDATA[多线程，各种锁，线程安全性问题、线程活跃性问题]]></title><link>https://blog.youkuaiyun.com/G_G_S/article/details/105848115</link><guid>https://blog.youkuaiyun.com/G_G_S/article/details/105848115</guid><author>G_G_S</author><pubDate>Wed, 29 Apr 2020 20:34:43 +0800</pubDate><description><![CDATA[线程实现的方式
​			实现Runnable，继承Thread，匿名内部类，定时器
wait和sleep区别
​			wait锁会被释放，在synchronized中通过notify，notifyAll释放，会释放系统资源
​			sleep锁不会释放，不会释放系统资源，指定时间会自动唤醒
为什么wait和notify、notifyAll要放在synchronized中？
​				因为他们需要...]]></description><category></category></item><item><title><![CDATA[用两个线程，一个输出字母，一个输出数字，交替输出1A2B3C4D.....26Z（线程之间的通信）]]></title><link>https://blog.youkuaiyun.com/G_G_S/article/details/105846454</link><guid>https://blog.youkuaiyun.com/G_G_S/article/details/105846454</guid><author>G_G_S</author><pubDate>Wed, 29 Apr 2020 20:31:09 +0800</pubDate><description><![CDATA[用两个线程，一个输出字母，一个输出数字，交替输出1A2B3C4D…26Z（线程之间的通信）
​		1.用synchronized，wait，notify
​		2.LockSupport，park，unpark
​		3.condtion，signal，await
下面是1，2两种方式实现
package com.example.future.test;

import java.util.con...]]></description><category></category></item></channel></rss>