<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[tszc95的博客]]></title><description><![CDATA[一个小小菜鸟的博客]]></description><link>https://blog.youkuaiyun.com/tszc95</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; tszc95]]></copyright><item><title><![CDATA[S3协议到底是什么]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/153471899</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/153471899</guid><author>tszc95</author><pubDate>Fri, 17 Oct 2025 16:10:58 +0800</pubDate><description><![CDATA[S3 协议是什么？它不是一个像 FTP 那样的传统文件传输协议。它是一个用于管理对象存储的标准化、基于 HTTP 的 RESTful API。它最初由 AWS 定义，但现在已成为行业标准，被众多云服务商和开源软件（如 MinIO, Ceph）实现和支持。S3的诞生绝不是偶然，是数据的爆炸增长和技术的不断推进的结果，国外用亚马逊、谷歌云等支持S3协议的比较多，国内用阿里云、腾讯云、华为云的比较多。]]></description><category></category></item><item><title><![CDATA[CompletableFuture中join与get的区别]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/142493503</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/142493503</guid><author>tszc95</author><pubDate>Tue, 24 Sep 2024 16:33:03 +0800</pubDate><description><![CDATA[使用 get() 时需要注意处理 InterruptedException 和 ExecutionException。如果需要对异常进行更细粒度的控制，比如区分执行异常和取消异常，或者需要设置超时，那么应该使用 get()。如果希望代码更简洁，并且不介意直接处理原始异常，那么 join() 是一个更好的选择。在实际开发中，根据需求选择合适的方法。如果想简单地获取结果而不关心具体的异常类型，join() 通常更为方便。]]></description><category></category></item><item><title><![CDATA[Gradle Wrapper 工作流程、生成、更新]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/140506464</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/140506464</guid><author>tszc95</author><pubDate>Wed, 17 Jul 2024 21:54:51 +0800</pubDate><description><![CDATA[这个工作流程确保了项目构建的一致性，无论开发者的本地环境中是否已经安装了 Gradle，或者安装的是哪个版本的 Gradle。通过这种方式，Gradle Wrapper 简化了项目的构建过程，并减少了因环境差异导致的构建问题。]]></description><category></category></item><item><title><![CDATA[Gradle Wrapper 介绍]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/140362983</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/140362983</guid><author>tszc95</author><pubDate>Thu, 11 Jul 2024 21:55:53 +0800</pubDate><description><![CDATA[Gradle Wrapper是Gradle构建工具的一个功能，它允许用户在没有全局安装Gradle的情况下构建项目。Gradle Wrapper通过一个轻量级的脚本（gradlew或）和一个JAR文件（）来实现这一点。这些文件一起工作，以便在执行构建任务时自动下载并配置指定版本的Gradle运行时环境。]]></description><category></category></item><item><title><![CDATA[Gradle 介绍]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/140362565</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/140362565</guid><author>tszc95</author><pubDate>Thu, 11 Jul 2024 21:34:32 +0800</pubDate><description><![CDATA[Groovy 是一种基于 JVM（Java 虚拟机）的动态语言，它结合了 Python、Ruby 和 Smalltalk 的许多强大特性。简洁和易读Groovy 的语法设计使得代码更加简洁和易于理解，与 Java 相比，Groovy 的语法更为灵活和自然，支持闭包、动态类型、DSL（领域特定语言）等特性。与 Java 的互操作性Groovy 可以直接使用 Java 类库，与 Java 代码混合编写，无需额外的接口或转换，这使得 Groovy 成为 Java 平台上的一种强大补充和扩展。动态语言特性。]]></description><category></category></item><item><title><![CDATA[Maven 仓库]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/140335214</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/140335214</guid><author>tszc95</author><pubDate>Wed, 10 Jul 2024 21:50:56 +0800</pubDate><description><![CDATA[坐标和依赖是构件在 Maven 世界中的逻辑表示方式，构件的物理表示方式是文件，Maven 通过仓库来统一管理这些文件。有了仓库之后，无需手动引入构件，我们直接给定构件的坐标即可在 Maven 仓库中找到该构件。：这个仓库是由 Maven 社区来维护的，里面存放了绝大多数开源软件的包，并且是作为 Maven 的默认配置，不需要开发者额外配置。：私服是一种特殊的远程 Maven 仓库，它是架设在局域网内的仓库服务，私服一般被配置为互联网远程仓库的镜像，供局域网内的 Maven 用户使用。]]></description><category></category></item><item><title><![CDATA[maven 依赖冲突]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/140071980</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/140071980</guid><author>tszc95</author><pubDate>Wed, 10 Jul 2024 21:39:55 +0800</pubDate><description><![CDATA[保留了 1.5 版本的 X，但是这个版本的 X 删除了 1.0 版本中的某些类。如果高版本修改了低版本的一些类或者方法的话，这个时候就能直接保留高版本了，而是应该考虑优化上层依赖，比如升级上层依赖的版本。不过，你也可以发现。这两条依赖路径上有两个版本的 X，为了避免依赖重复，Maven 只会选择其中的一个进行解析。这两条依赖路径上有两个版本的 X，为了避免依赖重复，Maven 只会选择其中的一个进行解析。根据路径最短优先原则，X(1.0) 会被解析使用，也就是说实际用的是 1.0 版本的 X。]]></description><category></category></item><item><title><![CDATA[Maven 依赖]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/139844622</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/139844622</guid><author>tszc95</author><pubDate>Fri, 28 Jun 2024 16:51:38 +0800</pubDate><description><![CDATA[使用 Maven 构建产生的构件（例如 Jar 文件）被其他的项目引用，那么该构件就是其他项目的依赖。]]></description><category></category></item><item><title><![CDATA[Maven 介绍]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/139844487</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/139844487</guid><author>tszc95</author><pubDate>Thu, 20 Jun 2024 22:56:24 +0800</pubDate><description><![CDATA[Apache Maven 的本质是一个软件项目管理和理解工具。基于项目对象模型 (Project Object Model，POM) 的概念，Maven 可以从一条中心信息管理项目的构建、报告和文档。文件，我们可以定义项目的坐标、项目依赖、项目信息、插件信息等等配置。文件，我们可以定义项目的坐标、项目依赖、项目信息、插件信息等等配置。文件，位于根目录中，包含项目构建生命周期的详细信息。文件，位于根目录中，包含项目构建生命周期的详细信息。每一个 Maven 工程都有一个。每一个 Maven 工程都有一个。]]></description><category></category></item><item><title><![CDATA[Shell中执行.sh文件的常见方式]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/139785795</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/139785795</guid><author>tszc95</author><pubDate>Tue, 18 Jun 2024 23:04:59 +0800</pubDate><description><![CDATA[这种方式会在当前Shell会话中执行脚本，而不是在一个新的子Shell中执行。适合于需要在当前环境中设置环境变量或导入函数的情况。在Shell中执行.sh文件有几种常见的方式，具体取决于你希望如何执行这个脚本文件。以上是一些常见的执行.sh文件的方式。选择哪种方式取决于你的具体需求和脚本的设计。明确使用bash解释器来执行脚本文件。在当前Shell会话中执行脚本文件。使用sh解释器执行脚本文件。这种方式适合于需要频繁执行的脚本文件。作为开头时，这种方式是适当的。这会使脚本每天的午夜执行。]]></description><category></category></item><item><title><![CDATA[AI 工具使用技巧]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/138873419</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/138873419</guid><author>tszc95</author><pubDate>Sat, 15 Jun 2024 22:34:09 +0800</pubDate><description><![CDATA[使用AI工具可以大大提高工作效率和生产力。]]></description><category></category></item><item><title><![CDATA[String.compareTo()方法详解]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/139455748</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/139455748</guid><author>tszc95</author><pubDate>Sat, 15 Jun 2024 13:52:36 +0800</pubDate><description><![CDATA[是一种高效且直接的方式来比较字符串的字典顺序。理解其工作原理对处理字符串排序和比较非常有帮助。更多消息资讯，请访问昂焱数据。]]></description><category></category></item><item><title><![CDATA[postgresql 创建函数]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/139666583</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/139666583</guid><author>tszc95</author><pubDate>Fri, 14 Jun 2024 09:14:18 +0800</pubDate><description><![CDATA[这些只是 PostgreSQL 中函数返回数据的几种常见方式。函数的返回类型可以根据需求进行自定义，并且可以返回更复杂的数据结构，例如数组、JSON 或自定义类型。函数可以返回不同类型的数据，包括标量值、表和记录。具体返回哪种类型的数据取决于函数的定义和实现。函数可以返回单个标量值，如整数、浮点数、字符串等。关键字声明返回的记录结构。函数可以返回一个记录，它是一组字段的组合。函数可以返回一个表，即一组行和列。声明来指定返回的表结构，并使用。]]></description><category></category></item><item><title><![CDATA[Bigdecimal 除法用法]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/139426276</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/139426276</guid><author>tszc95</author><pubDate>Tue, 04 Jun 2024 16:10:04 +0800</pubDate><description><![CDATA[在开发中遇到了一个Bigdecimal的问题，在此记录一下。指定其保留位数。见修改代码。代码中使用了 BigDecimal 做精确计算，在做除法时，系统抛出 “ Non-terminating decimal expansion;因为BigDecimal 是不可变的、任意精度的有符号十进制数，所以可以做精确计算。但在除法中，准确的商可能是一个无限长的十进制扩展；例如，1 除以 3 所得的商。]]></description><category></category></item><item><title><![CDATA[sql 学习基础篇]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/139194503</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/139194503</guid><author>tszc95</author><pubDate>Sat, 25 May 2024 11:31:39 +0800</pubDate><description><![CDATA[组相关的信息：（统计信息） count,sum,max,min,avg 分组的标准)在SQLServer中分组时：不能以text,ntext,image类型的字段作为分组依据在selecte统计函数中的字段，不能和普通的字段放在一起；B：right （outer） join: 右外连接(右连接)：结果集既包括连接表的匹配连接行，也包括右连接表的所有行。A、left （outer） join： 左外连接（左连接）：结果集几包括连接表的匹配行，也包括左连接表的所有行。10、说明：几个简单的基本的sql语句。]]></description><category></category></item><item><title><![CDATA[前端技术网站]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/139050010</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/139050010</guid><author>tszc95</author><pubDate>Sun, 19 May 2024 22:36:36 +0800</pubDate><description><![CDATA[创建服务端渲染 (SSR) 应用。wangeditor富文本编辑器。Vue Emoji表情评论组件。]]></description><category></category></item><item><title><![CDATA[后端技术常用网站]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/139049944</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/139049944</guid><author>tszc95</author><pubDate>Sun, 19 May 2024 22:34:31 +0800</pubDate><description><![CDATA[用于接收Kafka的数据并处理。HTTP和反向代理web服务器。七牛云 - 对象储存。]]></description><category></category></item><item><title><![CDATA[精选AI工具分享]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/138977291</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/138977291</guid><author>tszc95</author><pubDate>Thu, 16 May 2024 22:26:54 +0800</pubDate><description><![CDATA[基于ChatGLM2模型开发，支持多轮对话，具备内容创作、信息归纳总结等能力。ChatGPT 回答的内容长度有限制，如果超出后，只会显示一部分（看下图）、excel、csv、markdown、txt等文件，所有格式简直通吃，世界第一搜索引擎硬刚ChatGPT的第一把斧头。与excel聊天，支持excel计算，排序等。堪称目前最好的文档类工具，没有之一。被驯化过的ChatGPT内核。营销软文，自媒体稿件小助手。通过聊天创建和修改思维导图。目前一枝独秀，独步天下。通用ChatGPT，你就把它当人一样对话，]]></description><category></category></item><item><title><![CDATA[Java 集合概述]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/138770549</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/138770549</guid><author>tszc95</author><pubDate>Sun, 12 May 2024 22:38:55 +0800</pubDate><description><![CDATA[Java 集合，也叫作容器，主要是由两大接口派生而来：一个是Collection接口，主要用于存放单一元素；另一个是Map接口，主要用于存放键值对。对于CollectionListSetQueueMap。]]></description><category></category></item><item><title><![CDATA[CountDownLatch 详解]]></title><link>https://blog.youkuaiyun.com/tszc95/article/details/138509762</link><guid>https://blog.youkuaiyun.com/tszc95/article/details/138509762</guid><author>tszc95</author><pubDate>Fri, 10 May 2024 09:23:29 +0800</pubDate><description><![CDATA[其原理主要基于一个计数器，该计数器在初始化时设定一个值，每当一个线程完成了自己的任务后，计数器的值就会减一，当计数器的值变为零时，所有等待的线程都会被唤醒。CountDownLatch 主要用于解决一个或多个线程需要等待其他线程完成某些操作后才能执行的场景，例如多个线程同时进行数据加载，但需要等待所有数据加载完毕后再进行后续处理，这时就可以使用 CountDownLatch 来实现线程间的协调与同步。的作用允许 count 个线程阻塞在一个地方，直至所有线程的任务都执行完毕。]]></description><category></category></item></channel></rss>