<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[String_guai]]></title><description><![CDATA[没时间学习的查爷]]></description><link>https://blog.youkuaiyun.com/String_guai</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; String_guai]]></copyright><item><title><![CDATA[本地缓存-loadingCache]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/121109056</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/121109056</guid><author>String_guai</author><pubDate>Mon, 22 Nov 2021 10:46:54 +0800</pubDate><description><![CDATA[本地缓存
get方法：
V get(K key, int hash, CacheLoader&lt;? super K, V&gt; loader) throws ExecutionException {
            Preconditions.checkNotNull(key);
            Preconditions.checkNotNull(loader);

            Object var15;
            try {
            //c]]></description><category></category></item><item><title><![CDATA[BIO输给NIO了吗 ——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/104736249</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/104736249</guid><author>String_guai</author><pubDate>Fri, 13 Mar 2020 22:53:49 +0800</pubDate><description><![CDATA[能看到这篇博客的人估计已经对BIO和NIO有了一定的了解
采用不同的IO对系统的性能来说影响也是不容小觑的。
下面我们来看普通的BIO的通信方式。
在这里插入代码片

...]]></description><category></category></item><item><title><![CDATA[多文件自平衡云传输 （六）番外篇 ——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/104782168</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/104782168</guid><author>String_guai</author><pubDate>Thu, 12 Mar 2020 14:52:45 +0800</pubDate><description><![CDATA[多文件自平衡云传输 （六）番外篇

]]></description><category></category></item><item><title><![CDATA[多文件自平衡云传输 （五）资源管理中心篇 ——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/104782135</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/104782135</guid><author>String_guai</author><pubDate>Thu, 12 Mar 2020 14:52:32 +0800</pubDate><description><![CDATA[多文件自平衡云传输 （五）资源注册中心篇

]]></description><category></category></item><item><title><![CDATA[多文件自平衡云传输（四）资源发送端 ——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/104782115</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/104782115</guid><author>String_guai</author><pubDate>Thu, 12 Mar 2020 14:52:18 +0800</pubDate><description><![CDATA[多文件自平衡云传输（四）资源发送端

]]></description><category></category></item><item><title><![CDATA[多文件自平衡云传输（三）节点选择和资源分配 ——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/104782070</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/104782070</guid><author>String_guai</author><pubDate>Thu, 12 Mar 2020 14:51:32 +0800</pubDate><description><![CDATA[多文件自平衡云传输（三）节点选择和资源分配

]]></description><category></category></item><item><title><![CDATA[多文件自平衡云传输（二）资源接收 断点续传篇 ——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/104779502</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/104779502</guid><author>String_guai</author><pubDate>Thu, 12 Mar 2020 14:51:10 +0800</pubDate><description><![CDATA[多文件自平衡云传输（二）资源接收端篇
资源接收端从请求到接收的过程
1.资源接收端启动时先与拥有资源的服务器(可以是APP服务器，也可以是拥有资源的服务器）进行短连接进行资源资本信息的获取。
2.根据获取的资源的信息中的资源的名称进行短连接资源注册中心，请求拥有资源的节点列表
3.根据资源基本信息中的资源的多个文件的基本信息进行本地资源的查询，若本地拥有该资源(之前可能进行过请求保存到本地),进行...]]></description><category></category></item><item><title><![CDATA[多文件自平衡云传输 (一) 资源篇 ——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/104771811</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/104771811</guid><author>String_guai</author><pubDate>Thu, 12 Mar 2020 14:50:47 +0800</pubDate><description><![CDATA[多文件自平衡云传输(一)
传统的客户端和服务端来说，客户端面对的是单一的服务器，
服务器及网络的带宽决定了网络的性能，每台服务器提供的信息数量，受到自身存储空间的限制，而任意时刻它所能支持的客户端的访问数量，则受到自身处理能力和网络带宽的限制，一旦服务器崩溃，整个网络也随之瘫痪。
对于服务器来说，当拥有大量的客户端进行访问的时候，服务器将承受巨大的压力。
对我们的多文件传输来说，我们的客户端想要请...]]></description><category></category></item><item><title><![CDATA[服务发现框架  ——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/104733853</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/104733853</guid><author>String_guai</author><pubDate>Wed, 11 Mar 2020 20:00:23 +0800</pubDate><description><![CDATA[想必看到这篇博客，一定对服务发现机制有一定的了解。
服务发现机制

]]></description><category></category></item><item><title><![CDATA[LinkedBlockingQueue多线程安全的保障 ——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/104397243</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/104397243</guid><author>String_guai</author><pubDate>Sun, 08 Mar 2020 16:36:11 +0800</pubDate><description><![CDATA[LinkedBlockingQueue多线程安全的保障

]]></description><category></category></item><item><title><![CDATA[ArrayBlockingQueue 实现多线程安全 ——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/104360928</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/104360928</guid><author>String_guai</author><pubDate>Sun, 08 Mar 2020 16:29:09 +0800</pubDate><description><![CDATA[我们都知道在使用线程池的时候我们需要选择相应的阻塞队列，当核心线程池的线程处于忙的状态，那需要将新的任务加入到阻塞队列中。
一.ArrayBlockingQueue
二.LinkedBlockingQueue

...]]></description><category></category></item><item><title><![CDATA[Reentrantlock和其搭档Condition ——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/104377823</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/104377823</guid><author>String_guai</author><pubDate>Sun, 08 Mar 2020 16:27:38 +0800</pubDate><description><![CDATA[这篇博客具体来说说Condition，但同时也离不开Reentrantlock，因为我们知道对于synchronize来说，是由Object类配合其进行使用，那么对于Reentrantlock来说则采用的Condition和其进行配合，但不同的是对于一个synchronize只拥有一个阻塞队列，就是我们平时new 一个Object对象，采用Object对象或者是一个Object类作为Synchro...]]></description><category></category></item><item><title><![CDATA[ThreadPoolExecutor线程池 ——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/104388613</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/104388613</guid><author>String_guai</author><pubDate>Wed, 19 Feb 2020 22:17:11 +0800</pubDate><description><![CDATA[说起线程池大家一定都不陌生，其实在很多地方都有应用。
当我们解释为什么使用线程池的时候，我们都会说线程池可以减少线程创建的开销，节省系统的资源。
但其实线程池真正做到我们说的那样，还和我们设置的参数有关。我们都知道在我们使用线程池的时候，开头要搞很多参数。
 public ThreadPoolExecutor
 (int corePoolSize, int maximumPoolSize,long...]]></description><category></category></item><item><title><![CDATA[Reentrantlock和背后金主AQS —————— 开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/104297603</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/104297603</guid><author>String_guai</author><pubDate>Sun, 16 Feb 2020 11:32:07 +0800</pubDate><description><![CDATA[ThreadPoolExecutor源码解析
public void execute(Runnable command) {
        if (command == null)
            throw new NullPointerException();
            int c = ctl.get();
//在最初的初始化的时候会进行对核心线程池数量的确定
//

...]]></description><category></category></item><item><title><![CDATA[采用JDBC解释java SPI机制和线程上下文类加载器 ——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/104225336</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/104225336</guid><author>String_guai</author><pubDate>Sun, 09 Feb 2020 12:40:42 +0800</pubDate><description><![CDATA[采用JDBC解释java  SPI机制和线程上下文类加载器
先说说SPI（Service Provider Interface），大部分解释是这样的，我简单总结一下就是这样，SPI机制可以做到将服务接口和和真正的服务接口的实现类分开，可以增加程序的可扩展性，通过扫描规定的路径来进行实现类的获取，可以说是一种服务发现机制。
好处就在于，在面向对象的设计中，我们一般建议基于接口的编程，如果代码中涉及到...]]></description><category></category></item><item><title><![CDATA[HashMap源码解析JDK1.8 ——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/104065683</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/104065683</guid><author>String_guai</author><pubDate>Sun, 26 Jan 2020 15:31:20 +0800</pubDate><description><![CDATA[hashMap源码解析
导航
1.影响hashmap性能因素

key的hash实现
loadFactor的设定

2.hashMap的数据结构
3.hashmap的主要方法解析

put()
get()
resize()
remove()
containsKey()


]]></description><category></category></item><item><title><![CDATA[javaScript中原型和原型链的分析深究 ——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/102646875</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/102646875</guid><author>String_guai</author><pubDate>Mon, 21 Oct 2019 18:50:25 +0800</pubDate><description><![CDATA[javaScript中原型和原型链的分析深究

]]></description><category></category></item><item><title><![CDATA[Spring内部原理模拟实现（一）——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/101916328</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/101916328</guid><author>String_guai</author><pubDate>Wed, 02 Oct 2019 16:45:02 +0800</pubDate><description><![CDATA[Spring模拟实现
引入
知道Spring框架的的人，应该对 IOC（控制反转） 和 DI （依赖注入）都有一定的认识。
IOC ：IOC全称为“Inversion of Control”，即控制反转，不是一种技术，而是一种设计思想。在这种设计思想中，你设计好的对象交给容器管理，而不是在应用程序内部对对象进行管理。控制的含义是IOC容器控制了对象（也可以包括文件及其他外部资源）；而反转的含义是I...]]></description><category></category></item><item><title><![CDATA[java分发器 及（注解 + 反射机制）——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/101702205</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/101702205</guid><author>String_guai</author><pubDate>Mon, 30 Sep 2019 00:44:35 +0800</pubDate><description><![CDATA[java分发器 及 （注解 + 反射机制）
引  入：
在C/S框架应用中，当应用层通过点击界面的按钮进行资源的请求的时候，请求的背后代码的实现实际上会自动构成一系列的requst信息请求，由C/S框架内部的communcation层进行消息的发送，服务器通过解析requst请求获取到action（希望服务器端做出的响应）来调用已经配置好的对应的action的方法来进行请求的响应工作，当然这些方法...]]></description><category></category></item><item><title><![CDATA[Google中Gson的巧妙使用 ——————   开开开山怪]]></title><link>https://blog.youkuaiyun.com/String_guai/article/details/101727408</link><guid>https://blog.youkuaiyun.com/String_guai/article/details/101727408</guid><author>String_guai</author><pubDate>Mon, 30 Sep 2019 00:33:33 +0800</pubDate><description><![CDATA[这篇相当于是一个分发器中的一个内容补充，但是同时也真正巧妙的使用了Gson这个强大的类。
首先说说这个Gson的类，类中的一个方法 toJson（）可以将一个任意类型转化为字符串。
并且还有另一个方法gson.fromJson(para, type)，可以将一个字符串通过给出的类型转化成一个实例。
这对于我们分发器中参数content的包装和解析非常实用

...]]></description><category></category></item></channel></rss>