<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[javasoftdeveloper的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/javasoftdeveloper</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; javasoftdeveloper]]></copyright><item><title><![CDATA[多模态大模型到底理不理解文档图表？兼谈RAG如何解决全局摘要问答类问题]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/138823709</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/138823709</guid><author>javasoftdeveloper</author><pubDate>Mon, 13 May 2024 23:17:35 +0800</pubDate><description><![CDATA[这其实也很自然，因为图片本身就是对语言的一种补充，图中所呈现的信息，通常都会有别处用文本进行了阐述，而多模态大模型M通常由一个vision encoder，一个语言模型，以及一个视觉-语言连接件组成，现有的多模态benchmark中有大量的评估样本是从单模态的文本语料中转化过来，因此，大语言模型的训练数据中无意间泄露了多模态benchmark中转化不充分的评估样本，所以自然会出现这种情况。至此，在前一步骤中创建的索引可以建模为无向加权图，其中实体节点通过关系边连接，边权重表示检测到的关系实例的归一化计数。]]></description><category></category></item><item><title><![CDATA[RAG应用中的路由模式]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/138823088</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/138823088</guid><author>javasoftdeveloper</author><pubDate>Mon, 13 May 2024 23:02:03 +0800</pubDate><description><![CDATA[依据的用户查询意图在 RAG 应用程序使用“路由控制模式”可以帮助我们创建更强大的 RAG 应用程序。我们通常希望用户能够访问的数据可以来自各种来源，如报告、文档、图片、数据库和第三方系统。对于基于业务的 RAG 应用程序，我们可能还希望用户能够与其它业务系统进行交互，例如：销售、订购和会计等。由于数据来源的多样性，信息的存储方式以及我们想要与之交互的方式也可能是多样的。一些数据可能存储在向量存储器中，一些存储在 SQL 数据库中，而一些可能需要通过 API 调用来访问，因为它存在于第三方系统中。]]></description><category></category></item><item><title><![CDATA[springboot]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/126173308</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/126173308</guid><author>javasoftdeveloper</author><pubDate>Fri, 05 Aug 2022 10:57:26 +0800</pubDate><description><![CDATA[作用启动器(Starter)包含许多依赖项,这些依赖项是使项目快速启动和运行所需的依赖项。例如: 通过配置spring-boot-starter-data-redis,可以快捷的使用Spring对Redis进行数据访问。命名规范官方开发的starter遵循类似命名模式；第三方starter命名应当遵循thirdpartyproject-spring-boot-starter常用Starter。...]]></description><category></category></item><item><title><![CDATA[RPC技术]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/125474791</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/125474791</guid><author>javasoftdeveloper</author><pubDate>Sun, 26 Jun 2022 21:41:27 +0800</pubDate><description><![CDATA[RPC概念]]></description><category></category></item><item><title><![CDATA[sharding-jdbc入门]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/124879854</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/124879854</guid><author>javasoftdeveloper</author><pubDate>Fri, 20 May 2022 11:25:17 +0800</pubDate><description><![CDATA[概览
认识ShardingSphere
ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈，它由ShardingJDBC、Sharding-Proxy和Sharding-Sidecar（计划中）这3款相互独立的产品组成。
他们均提
供标准化的数据分片、分布式事务和数据库治理功能，可适用于如Java同构、异构语言、容
器、云原生等各种多样化的应用场景。
官网地址： https://shardingsphere.apache.org/index_zh.html
ShardingSph]]></description><category></category></item><item><title><![CDATA[数据库中间件设计理论]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/124738479</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/124738479</guid><author>javasoftdeveloper</author><pubDate>Thu, 12 May 2022 20:08:08 +0800</pubDate><description><![CDATA[数据库中间件设计要点]]></description><category></category></item><item><title><![CDATA[Linux系统下载并安装Redis]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/124598251</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/124598251</guid><author>javasoftdeveloper</author><pubDate>Sat, 07 May 2022 11:19:09 +0800</pubDate><description><![CDATA[Linux上下载并安装Redis：下面是下载安装过程，如果只是想快速安装，那就直接看图中命令，全部下载安装命令都在图中
1、在home目录下下载Redis安装包
下载Redis安装包命令：wget http://download.redis.io/releases/redis-5.0.5.tar.gz

2、解压压缩包得到名为redis-5.0.5的文件
解压命令：tar xf redis-5.0.5.tar.gz

3、我要把Redis安装到/usr/locat/ 目录下，所以下面的操作是把redis-5]]></description><category></category></item><item><title><![CDATA[BIO、NIO]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/123740038</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/123740038</guid><author>javasoftdeveloper</author><pubDate>Fri, 25 Mar 2022 16:53:35 +0800</pubDate><description><![CDATA[讲述BIO到NIO想干]]></description><category></category></item><item><title><![CDATA[Kafka踩坑记]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/123137503</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/123137503</guid><author>javasoftdeveloper</author><pubDate>Fri, 25 Feb 2022 17:18:26 +0800</pubDate><description><![CDATA[kafka消费重试]]></description><category></category></item><item><title><![CDATA[java并发线程工具类]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/123083717</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/123083717</guid><author>javasoftdeveloper</author><pubDate>Wed, 23 Feb 2022 10:25:19 +0800</pubDate><description><![CDATA[CountDownLatch
概念

countDownLatch这个类使用一个线程等待其他线程各自执行完毕后再执行
是通过一个计数器实现的，计数器的初始值是线程的数量。每当一个线程执行完毕后，计数器的值就-1，当计数器的值为0时，表示所有线程都执行完毕，然后在闭锁上等待的线程*就可以恢复工作了。

源码
1.countDownLatch类中只提供了一个构造器
//参数count为计数值
public CountDownLatch(int count) {  };  



类中有三个方法是非常重要的：
/]]></description><category></category></item><item><title><![CDATA[java集合类总结]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/122954250</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/122954250</guid><author>javasoftdeveloper</author><pubDate>Tue, 15 Feb 2022 23:27:53 +0800</pubDate><description><![CDATA[HashMap
HashMap中的属性：
1.capacity:容量，Node数组的大小（桶的数量），值为2的N次幂
2.threshold:扩容阈值，等于capacity * load factor 当size大于此值时进行扩容
3.loadFactor：负载因子，默认为0.75f
4.size属性是指map中的键值对个数
5.initialCapacity hashMap初始化时设置的容量大小(Node数组的长度),initialCapacity = (需要存储的元素个数 / 负载因子) + 1，如果可]]></description><category></category></item><item><title><![CDATA[reentrantLock、readWriteLock、AQS]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/122766645</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/122766645</guid><author>javasoftdeveloper</author><pubDate>Tue, 01 Feb 2022 22:36:07 +0800</pubDate><description><![CDATA[Lock接口使用

void lock()   获取锁（不死不休）方法不允许Thread.interrupt中断,即使检测到Thread.isInterrupted,一样会继续尝试获取锁，失败则继续休眠。只是在最后获取锁成功后再把当前线程置为interrupted状态,然后再中断线程。
bollean tryLock() 获取锁(浅尝辄止,尝试获取锁)
boolean  tryLock(long time,TimeUnit unit)throws InterruptedExcepiton 获取锁(过时不候，]]></description><category></category></item><item><title><![CDATA[手写ReentarntLock]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/122669778</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/122669778</guid><author>javasoftdeveloper</author><pubDate>Mon, 24 Jan 2022 16:21:16 +0800</pubDate><description><![CDATA[自定义reetrantlock方便理解]]></description><category></category></item><item><title><![CDATA[线程操作原子性]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/122597776</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/122597776</guid><author>javasoftdeveloper</author><pubDate>Thu, 20 Jan 2022 11:23:13 +0800</pubDate><description><![CDATA[原子性
违反原子性示例
public  class Counter{
    volatile int i=0;
    public void add(){
        i++;
    }
    public static void main (String[]args)throws InterruptedExcetion{
        final Counter ct=new Counter();
        for(int i=0;i&lt;6;i++){
            ne]]></description><category></category></item><item><title><![CDATA[线程操作原子性]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/122526106</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/122526106</guid><author>javasoftdeveloper</author><pubDate>Sun, 16 Jan 2022 17:50:19 +0800</pubDate><description><![CDATA[原子性
违反原子性示例
public  class Counter{
    volatile int i=0;
    public void add(){
        i++;
    }
    public static void main (String[]args)throws InterruptedExcetion{
        final Counter ct=new Counter();
        for(int i=0;i&lt;6;i++){
            ne]]></description><category></category></item><item><title><![CDATA[CPU高速缓存与JMM]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/122526067</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/122526067</guid><author>javasoftdeveloper</author><pubDate>Sun, 16 Jan 2022 17:48:24 +0800</pubDate><description><![CDATA[yCPU高速缓存
为了解决CPU越来越快的运行速度与相对较慢的主存访问速度的矛盾。CPU中的寄存器数量有限，在执行内存寻址指令时，经常需要从内存中读取指令所需的数据或是将寄存器中的数据写回内存。引入高速缓存后，CPU在需要访问主存中某一地址空间时，高速缓存会拦截所有对于内存的访问，并判断所需数据是否已经存在于高速缓存中。如果缓存命中，则直接将高速缓存中的数据交给CPU；如果缓存未命中，则进行常规的主存访问，获取数据交给CPU的同时也将数据存入高速缓存。
缓存一致性
在多核CPU的架构下，通常每一个核心都拥有]]></description><category></category></item><item><title><![CDATA[使用condition来实现阻塞队列]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/122521656</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/122521656</guid><author>javasoftdeveloper</author><pubDate>Sun, 16 Jan 2022 12:32:35 +0800</pubDate><description><![CDATA[使用Lock和Condition实现阻塞式队列]]></description><category></category></item><item><title><![CDATA[Synchronized底层实现，锁升级的具体过程]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/122255808</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/122255808</guid><author>javasoftdeveloper</author><pubDate>Fri, 31 Dec 2021 14:40:02 +0800</pubDate><description><![CDATA[Synchronized锁升级]]></description><category></category></item><item><title><![CDATA[请求合并]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/100110088</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/100110088</guid><author>javasoftdeveloper</author><pubDate>Tue, 27 Aug 2019 23:28:26 +0800</pubDate><description><![CDATA[高并发场景中，调用批量接口相比调用非批量接口有更大的性能优势。但有时候，请求更多的是单个接口，不能够直接调用批量接口，如果这个接口是高频接口，对其做请求合并就很有必要了。比如电影网站的获取电影详情接口，APP的一次请求是单个接口调用，用户量少的时候请求也不多，完全没问题；但同一时刻往往有大量用户访问电影详情，是个高并发的高频接口，如果都是单次查询，后台就不一定能hold住了。为了优化这个接口，后台...]]></description><category></category></item><item><title><![CDATA[事务]]></title><link>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/84933516</link><guid>https://blog.youkuaiyun.com/javasoftdeveloper/article/details/84933516</guid><author>javasoftdeveloper</author><pubDate>Tue, 11 Dec 2018 22:30:03 +0800</pubDate><description><![CDATA[1.什么是事务？

  事物指的是逻辑上的一组操作，这组操作要么全部成功，要么全部失败。

2.事务的特性：

 原子性、一致性、隔离性、持久性。

  原子性：是指事物是一个不可分割的工作单元，事务中的操作要么都发生，要么都不发生。

  一致性：是指事务前后数据的完整性必须保持一致,即数据总和是一致的(比如张三有两千元，李四有两千元 张三转账给李四一千元，这时张三有一千元，李四有三千元，这样数...]]></description><category></category></item></channel></rss>