<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JosBlue的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/JosBlue</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JosBlue]]></copyright><item><title><![CDATA[AI 驱动 UI 自动化测试：从 0 到 1 自建方案]]></title><link>https://blog.youkuaiyun.com/JosBlue/article/details/162237029</link><guid>https://blog.youkuaiyun.com/JosBlue/article/details/162237029</guid><author>JosBlue</author><pubDate>Tue, 23 Jun 2026 16:00:20 +0800</pubDate><description><![CDATA[在深入方案之前，先厘清我们到底要解决什么问题。传统 UI 自动化测试存在三个致命痛点：第一是「写不动」。测试脚本严重依赖 CSS Selector、XPath 等定位方式，与业务代码深度耦合。页面稍有改动（换个 class 名、调整个层级），脚本就跑不过去了。一个中等规模的系统，维护几百条用例的工作量堪比再开发一遍。第二是「跑不稳」。传统自动化主要通过选择器匹配元素，对分辨率差异、渲染时序、动态内容极其敏感。]]></description><category></category></item><item><title><![CDATA[计算机组成原理之计算机系统概论]]></title><link>https://blog.youkuaiyun.com/JosBlue/article/details/139452299</link><guid>https://blog.youkuaiyun.com/JosBlue/article/details/139452299</guid><author>JosBlue</author><pubDate>Tue, 04 Jun 2024 22:43:33 +0800</pubDate><description><![CDATA[这个说起来比较简单，实际包含的内容非常多，具体而言，我们在运用一门计算机语言进行编程时，如java，总会听到或看到堆、栈等名词，如果我们深入去看，会发现，其中会涉及到他们的存储结构、寻址方式等，这些实际都是一些抽象的概念，我们单从字面或者从抽象层面去理解完全没有问题，但是，我想知道，这些所谓堆、栈或者其他语言中的一些概念，在计算机层面是怎么处理的，它们的存储器组织、寻址方式等是怎么做的，这就是这个目标的由来。这块我目前没有太好的想法或者理解，后续有所感悟后，再来补充。]]></description><category></category></item><item><title><![CDATA[Opengauss3.0.0入门体验--初识Opengauss]]></title><link>https://blog.youkuaiyun.com/JosBlue/article/details/139450338</link><guid>https://blog.youkuaiyun.com/JosBlue/article/details/139450338</guid><author>JosBlue</author><pubDate>Tue, 04 Jun 2024 18:03:40 +0800</pubDate><description><![CDATA[OpenGauss小白入门初体验]]></description><category></category></item><item><title><![CDATA[Mysql之为什么索引的底层数据结构是B+Tree]]></title><link>https://blog.youkuaiyun.com/JosBlue/article/details/115277097</link><guid>https://blog.youkuaiyun.com/JosBlue/article/details/115277097</guid><author>JosBlue</author><pubDate>Sun, 28 Mar 2021 15:17:54 +0800</pubDate><description><![CDATA[目录

一、什么是索引

二、为什么要使用索引（索引的优缺点）

三、mysql中存储索引的底层数据结构为什么是B+Tree

一、什么是索引

（1）MySQL官方对索引的定义为：索引(Index)是帮助MySQL高效获取数据的数据结构。

（2）通俗一点说，可以将索引理解为一本书的目录，当我们到一本书中去查找相关内容时，通过目录查找对应标题内容，再找到对应页码，最后便可直接定位到我们需要查阅的内容啦。

二、为什么要使用索引

使用索引的目的是为了加快数据库的查询速度，降低程序的响应时长。

但是也不是]]></description><category></category></item><item><title><![CDATA[如何迅速让我的演讲与众不同？---实用小技巧]]></title><link>https://blog.youkuaiyun.com/JosBlue/article/details/113771198</link><guid>https://blog.youkuaiyun.com/JosBlue/article/details/113771198</guid><author>JosBlue</author><pubDate>Fri, 26 Feb 2021 16:47:04 +0800</pubDate><description><![CDATA[一、开头：

四种常见的开头方法

（1）社会现象开头

（2）事例引入开头

（3）名言引用开头

（4）文采排比开头

二、结尾：
余音绕梁，回味无穷的结尾：

结尾可借鉴国画技法---“留白”方为大师手笔；同样，演讲的结尾，同样需要寻找到深度落点，但无需赘言，点到即止，给听众留下回响的空间。

三、迅速提升语言档次

形容词--低级到高级；会带来语言格调的巨变。 两个字到四个字的跃进。

四、尝试有效的互动

yes or no question --- 这种问题可以用最简单地方式与观众形成互动，观众]]></description><category></category></item><item><title><![CDATA[Linux操作命令之根据关键字进行日志查询]]></title><link>https://blog.youkuaiyun.com/JosBlue/article/details/112231628</link><guid>https://blog.youkuaiyun.com/JosBlue/article/details/112231628</guid><author>JosBlue</author><pubDate>Tue, 05 Jan 2021 14:12:18 +0800</pubDate><description><![CDATA[文件app.log，查询的关键字为"test"：

根据关键字查看日志

cat app.log | grep "test"


根据关键字查看后10行日志

cat app.log | grep "test" -A 10


根据关键字查看前10行日志

cat app.log | grep "test" -B 10


根据关键字查看前后10行日志，并显示出行号

cat app.log | grep "test" -C 10


查看日志前 50 行

cat app.log | head -n 5.]]></description><category></category></item><item><title><![CDATA[GIT操作之修改远程分支名称]]></title><link>https://blog.youkuaiyun.com/JosBlue/article/details/112213446</link><guid>https://blog.youkuaiyun.com/JosBlue/article/details/112213446</guid><author>JosBlue</author><pubDate>Tue, 05 Jan 2021 09:57:49 +0800</pubDate><description><![CDATA[首先 git branch -m 旧分支名 新分支名

其次 git push --delete origin 旧分支名

将新分支名推上去 git push origin 新分支名

将新本地分支和远程相连 git branch --set-upsteam-to origin/新分支名
]]></description><category></category></item><item><title><![CDATA[数组与ArrayList容器怎么取舍]]></title><link>https://blog.youkuaiyun.com/JosBlue/article/details/111314279</link><guid>https://blog.youkuaiyun.com/JosBlue/article/details/111314279</guid><author>JosBlue</author><pubDate>Thu, 17 Dec 2020 15:13:19 +0800</pubDate><description><![CDATA[1.由于ArrayList无法存储int，long这些基本数据类型，只能存储他的包装类，比如Integer,Long，对应的拆装箱操作是会有一定的性能损耗的，所以如果是做非常底层的开发，十分关注性能的话，就不推荐使用ArrayList

2.在新增相同数据量的情况下，基础数据，数组插入数据的速度远远高于ArrayList

看下面的测试例子，分别往数组，不指定初始化容量大小的ArrayList以及指定初始化容量大小的ArrayList插入3千万数据


// 新增至数据组中
int[] a = new in]]></description><category></category></item><item><title><![CDATA[浅析类加载器--双亲委派机制]]></title><link>https://blog.youkuaiyun.com/JosBlue/article/details/108843888</link><guid>https://blog.youkuaiyun.com/JosBlue/article/details/108843888</guid><author>JosBlue</author><pubDate>Mon, 28 Sep 2020 15:13:17 +0800</pubDate><description><![CDATA[任何一个class加载到内存中时候，实际上生成了两块内容，如String.class文件，这个class文件平时存储在硬盘中，这些被加载到内存中的时候，内存中实际上会存在两块内容，其中一块是二进制的东西，放到了内存中，另一块是生成的class类的对象，而这个class类的对象，指向了存放二进制的内存。

以后其他的对象，要访问String这个类，就会通过访问生成的class类的对象，再通过其生成的class类的对象访问对应的二进制编码，以实现访问及调用。

解释由上至下：

Bootstrap是最顶级的类加]]></description><category></category></item><item><title><![CDATA[使用ideal搭建继承及聚合maven项目]]></title><link>https://blog.youkuaiyun.com/JosBlue/article/details/80924006</link><guid>https://blog.youkuaiyun.com/JosBlue/article/details/80924006</guid><author>JosBlue</author><pubDate>Thu, 05 Jul 2018 11:11:11 +0800</pubDate><description><![CDATA[使用ideal搭建以下工程目录结构记录：1.首先搭建taotao-parent，这是一个父工程，搭建步骤如下:不要勾选Create from archetype根据实际输入项目GroupId及ArtifactId注意以下提到的事项，然后finish即可2.接着，我们创建taotao-common。注意:taotao-common在文件位置上是与taotao-parent同级的，只是taotao-c...]]></description><category></category></item><item><title><![CDATA[maven工程搭建分析]]></title><link>https://blog.youkuaiyun.com/JosBlue/article/details/80923973</link><guid>https://blog.youkuaiyun.com/JosBlue/article/details/80923973</guid><author>JosBlue</author><pubDate>Thu, 05 Jul 2018 11:09:37 +0800</pubDate><description><![CDATA[maven常见的打包方式：jar：代码编译完成，打包之后，就会是一个jar包war：war包就是一个web工程，将所有工程的jar包都打到一起，打成一个war包，war是可以部署到tomcat下的。pom：一般都是父工程，父工程必须是pomtaotao工程结构分析：由于是基于SOA架构，所以把表现层和服务层分开，独立部署，所以分别都是独立的web工程，父工程：taotao-parent 为整个工程...]]></description><category></category></item><item><title><![CDATA[架构演变]]></title><link>https://blog.youkuaiyun.com/JosBlue/article/details/80923945</link><guid>https://blog.youkuaiyun.com/JosBlue/article/details/80923945</guid><author>JosBlue</author><pubDate>Thu, 05 Jul 2018 11:08:22 +0800</pubDate><description><![CDATA[一、传统架构方式：最初做项目时，架构一般都会分为3层，即表现层展示系统界面，业务层处理各种业务逻辑，持久层操作来源于数据库中的数据，数据库中则存储我们需要存储的数据。这种三层架构的方式适用于大多数项目，但这种方法还不能称之为架构，我们做的时候，顶多使用各种框架，如Spring，SpringMvc，Mybatis等等将这三层整合到一块。这种架构会存在的问题：当我们的项目并发量比较高时，就会存在问题。...]]></description><category></category></item></channel></rss>