<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CodeDabaicai的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/CodeDabaicai</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; CodeDabaicai]]></copyright><item><title><![CDATA[EdgeCloudSim-windows端通过intellij打开-方便快捷]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/115956295</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/115956295</guid><author>CodeDabaicai</author><pubDate>Wed, 21 Apr 2021 15:26:42 +0800</pubDate><description><![CDATA[1、下载开源的EdgeCloudSim到本地
https://github.com/CagataySonmez/EdgeCloudSim


复制以上地址打开github链接，可以使用git指令clone也可以直接下载压缩包解压


2、通过intellij打开

左上角点击File-&gt;open-&gt;已经解压好的EdgeCloudSim-master文件夹
打开之后配置相关环境运行：1）在src文件夹右键可以mark directory as你想要的格式
2）记得切换对应的JDK版本
新建一个文件]]></description><category></category></item><item><title><![CDATA[Intellij-对Matlab的支持-开源插件使用]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/115952272</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/115952272</guid><author>CodeDabaicai</author><pubDate>Wed, 21 Apr 2021 14:33:59 +0800</pubDate><description><![CDATA[1、开源地址
https://github.com/kornilova203/matlab-IntelliJ-plugin
2、如何使用

1、先在Maven或者别的方法将本插件下载到自己的intellij过程中
2、直接运行，会出现报错，因为这个插件是辅助Matlab融合到Java开发环境中的，但并没有自带matlab编译器

3、右键自己的matlab程序（一般是画图用的），找到Edit…



4、导入自己本地的Matlab.exe路径，.m文件就能直接在intellij上运行了

3、作用

辅助m]]></description><category></category></item><item><title><![CDATA[Error:Cannot determine path to ‘tools.jar‘ library for 16 (C:/Users/PC/.jdks/openjdk-16)解决方案]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/115937945</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/115937945</guid><author>CodeDabaicai</author><pubDate>Wed, 21 Apr 2021 10:36:52 +0800</pubDate><description><![CDATA[git下来一个新的工程文件，导入intellij之后，找到含main函数的文件运行报错
-Error:Cannot determine path to 'tools.jar' library for 16 (C:/Users/PC/.jdks/openjdk-16)
点击左上角file-project structure

在project将Project SDK等修改为需要的版本，这里我改为1.8



...]]></description><category></category></item><item><title><![CDATA[算法-Stone Game V-石子游戏/阿里笔试0322]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/115226978</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/115226978</guid><author>CodeDabaicai</author><pubDate>Fri, 26 Mar 2021 09:28:24 +0800</pubDate><description><![CDATA[几块石子 排成一行 ，每块石子都有一个关联值，关联值为整数，由数组 stoneValue 给出。

游戏中的每一轮：Alice 会将这行石子分成两个 非空行（即，左侧行和右侧行）；Bob 负责计算每一行的值，即此行中所有石子的值的总和。Bob 会丢弃值最大的行，Alice 的得分为剩下那行的值（每轮累加）。如果两行的值相等，Bob 让 Alice 决定丢弃哪一行。下一轮从剩下的那一行开始。

只 剩下一块石子 时，游戏结束。Alice 的分数最初为 0 。

返回 Alice 能够获得的最大分数 。

 
]]></description><category></category></item><item><title><![CDATA[论文-EdgeCloudSim: An environment for performance evaluation of edge computing systems-笔记]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/115226780</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/115226780</guid><author>CodeDabaicai</author><pubDate>Fri, 26 Mar 2021 09:25:00 +0800</pubDate><description><![CDATA[1、论文题目
EdgeCloudSim: An environment for performance evaluation of edge computing systems  ：边缘计算系统性能评估的环境
2、内容摘要

EdgeCloudSim的模拟器工具作为仿真工具来支持计算资源和网络资源的建模以处理边缘计算方案
EdgeCloudSim建立在CloudSim之上，可满足边缘计算研究的特定需求并支持必要的功能。
本文模拟了不同边缘架构的实验设置，还研究了边缘服务器容量和移动性对整体系统性能的影响

]]></description><category></category></item><item><title><![CDATA[分析-MQ消息队列中间件-在IM即时通讯系统的用途]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/115054401</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/115054401</guid><author>CodeDabaicai</author><pubDate>Sun, 21 Mar 2021 19:43:50 +0800</pubDate><description><![CDATA[MQ消息队列在IM即时通讯的用途

1）用户聊天消息的离线存储环节：因为IM消息的发送属于高吞吐场景，直接操作DB可能会让DB崩溃，所有离线消息在落地入库前，可以先扔到MQ消息队列中，再由单独部署的消费者来有节奏地存储到DB中；
２)用户的行为数据收集环节：因为用户的聊天消息和指令等，可以用于大数据分析，而且基于国家监管要求也是必须要存储一段时间的，所以此类数据的收集同样可以用于MQ消息队列，再由单独部署的消费者存储到DB中；


用户的操作日志收集环节:log这种数据价值不高，但关键时刻又非常有用，而且数]]></description><category></category></item><item><title><![CDATA[2019百度之星开发者大赛-复盘]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/114869837</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/114869837</guid><author>CodeDabaicai</author><pubDate>Tue, 16 Mar 2021 10:27:42 +0800</pubDate><description><![CDATA[进决赛时是前十名，之后因为队员的安排没有去北京参加路演答辩


1、比赛介绍


面向AI爱好者的深度学习算法竞赛——百度之星-开发者大赛，总之是为有创新力、专业性、团队合作精神和极客精神的顶级开发者团队提供真实的数据集+深度学习飞桨平台+一站式深度学习开发平台AI Studio


模型小型化技术成为最近几年学术界和工业界研究的热点，模型小型化技术也从最开始的网络剪枝、知识蒸馏、参数量化等发展为最新的神经网络架构搜索（NAS）和自动模型压缩等技术。


目标检测任务要找出图像中所有感兴趣的目标，确定它..]]></description><category></category></item><item><title><![CDATA[算法-堆排序-原理与Java代码实现]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/114626451</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/114626451</guid><author>CodeDabaicai</author><pubDate>Wed, 10 Mar 2021 09:45:29 +0800</pubDate><description><![CDATA[以大顶堆举例：

1、首先用构造一个初始的大顶堆
2、然后将堆顶和堆尾的一个元素交换，交换后的队尾元素加入排序队列尾
3，重新构建堆
4，重复步骤2-3

理解上就是每次选取堆的最大值，之后将最大值删除，重构堆再重复以上操作

在Java中我们常用优先队列构建大顶堆和小顶堆

PriorityQueue&lt;Integer&gt; pq = new PriorityQueue&lt;&gt;();


在后边的括号中使用Lamba表达式调整大顶堆和小顶堆

使用代码实现一个堆排序如下
package so]]></description><category></category></item><item><title><![CDATA[Java-HashMap的put()方法-源码详解]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/114175568</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/114175568</guid><author>CodeDabaicai</author><pubDate>Sat, 27 Feb 2021 15:05:36 +0800</pubDate><description><![CDATA[1、HashMap是什么？

HashMap继承自Map接口，是键值对存储的一种集合。
JDK1.7之前底层使用数组+链表实现;JDK1.8之后当链表长度大于默认值8的时候，链表转换为红黑树
一般的put()方法就是将key-value添加到HashMap当中，通过key的hashCode经过扰动函数后得到hash值就是在数组中的位置，之后判断数组中是否已经存在了当前的value，存在则覆盖，不存在通过拉链法解决

Map&lt;Object,Obkect&gt; hashmap = new HashMap]]></description><category></category></item><item><title><![CDATA[Netty-ChannelInitializer-实现原理]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113838468</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113838468</guid><author>CodeDabaicai</author><pubDate>Wed, 17 Feb 2021 21:42:20 +0800</pubDate><description><![CDATA[在之前的文章中解读了Netty对于一条连接的各个状态的生命周期进行了解读
1、ChannelInitializer的实现原理

在定义handler的时候通过childHandler()方法设置了一个handle/也就是ChannelInitializer
在ChannelInitializer的initChannel()方法中，通过获取channel对应的管道，在里面加入各种方法

//xxxxxxxxxxxxxx省略代码```
.childHandler(new ChannelInitializer&l]]></description><category></category></item><item><title><![CDATA[Netty-ChannelHandler-生命周期/顺序解读]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113838166</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113838166</guid><author>CodeDabaicai</author><pubDate>Wed, 17 Feb 2021 21:18:45 +0800</pubDate><description><![CDATA[继承关系
ChannelHandler----------&gt;ChannelInboundHandler-----------&gt;ChannelInboundHandlerAdapter
自定义一个handler继承ChannelInboundHandlerAdapter，来查看ChannelInboundHandlerAdapter中各个方法的执行顺序
LifeCyCleTestHandler.java

public class LifeCyCleTestHandler extends Cha.]]></description><category></category></item><item><title><![CDATA[算法-尽可能使字符串相等-滑动窗口]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113705011</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113705011</guid><author>CodeDabaicai</author><pubDate>Fri, 05 Feb 2021 22:28:10 +0800</pubDate><description><![CDATA[1、题目描述
给你两个长度相同的字符串，s 和 t。
将 s 中的第 i 个字符变到 t 中的第 i 个字符需要 |s[i] - t[i]| 的开销（开销可能为 0），也就是两个字符的 ASCII 码值的差的绝对值。

用于变更字符串的最大预算是 maxCost。在转化字符串时，总开销应当小于等于该预算，这也意味着字符串的转化可能是不完全的。

如果你可以将 s 的子字符串转化为它在 t 中对应的子字符串，则返回可以转化的最大长度。
如果 s 中没有子字符串可以转化成 t 中对应的子字符串，则返回 0。
-]]></description><category></category></item><item><title><![CDATA[Netty-基于Netty实现RPC-仿Dubbo]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113704109</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113704109</guid><author>CodeDabaicai</author><pubDate>Fri, 05 Feb 2021 22:07:44 +0800</pubDate><description><![CDATA[1、什么是RPC

RPC，英文全称是Remote Procedure Call，翻译过来就是远程过程调用。
作为一个计算机通信协议，运行在计算机A的程序调用另一台计算机B上的子程序就像调用本地方法一样方便，而这两个程序是分布在不同的服务器上的
RPC远程过程调用图示：

其中Client就是RPC服务的消费者，Server就是服务提供者，通过上图可以看到完整的调用关系
RPC就是将以上的步骤全部封装起来，用户直接使用，而不用关心使用细节，部署后直接能像使用本地方法一样使用远程程序

2、设计一个RPC

]]></description><category></category></item><item><title><![CDATA[Java错误解决-incompatible types: cannot infer type arguments for PriorityQueue＜＞]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113605998</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113605998</guid><author>CodeDabaicai</author><pubDate>Wed, 03 Feb 2021 15:19:39 +0800</pubDate><description><![CDATA[在以下代码运行时出错

PriorityQueue&lt;Long&gt; pq1 = new PriorityQueue&lt;&gt;((o1,o2) -&gt; (o2 - o1));//大顶堆


查看报错原因
Line 6: error: incompatible types: cannot infer type arguments for PriorityQueue&lt;&gt;
reason: cannot infer type-variable(s) E
(argument mismat.]]></description><category></category></item><item><title><![CDATA[Netty-使用netty实现群聊-代码实现]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113574593</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113574593</guid><author>CodeDabaicai</author><pubDate>Tue, 02 Feb 2021 21:29:45 +0800</pubDate><description><![CDATA[使用Netty实现一个简单的群聊功能]]></description><category></category></item><item><title><![CDATA[Netty-Unpooled类-细节使用]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113566254</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113566254</guid><author>CodeDabaicai</author><pubDate>Tue, 02 Feb 2021 17:46:43 +0800</pubDate><description><![CDATA[1、是缓冲区工具类
作为Netty具体的缓冲区/数据容器，提供的常用方法如下
区别于NIO的ByteBuffer
通过给定的数据和字符返回一个Bytebuf对象
public static ByteBuf copiedBuffer(CharSequence string,Charset charset)

2、内部细节
ByteBuf内部维持了三个变量，一个是readerIndex/读数据的指针，一个是writerIndex/写数据的指针，一个是capacity/容量大小
3、实战分析

代码1

pack]]></description><category></category></item><item><title><![CDATA[Netty-EventLoopGroup/NioEventLoopGroup-自动向下]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113564930</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113564930</guid><author>CodeDabaicai</author><pubDate>Tue, 02 Feb 2021 16:52:05 +0800</pubDate><description><![CDATA[1、NioEventLoopGroup是EventLoopGroup的实现类

EventLoopGroup接口直接继承JDK中的EventExecutorGroup接口。
Netty中的NioEventLoopGroup是继承了MultithreadEventLoopGroup抽象类，而MultithreadEventLoopGroup继承MultithreadEventExecutorGroup抽象类。MultithreadEventExecutorGroup抽象类实现了Netty中的EventLoo.]]></description><category></category></item><item><title><![CDATA[IntelliJ IDEA 2021.1.EAP发布-新特性介绍-附下载链接]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113563292</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113563292</guid><author>CodeDabaicai</author><pubDate>Tue, 02 Feb 2021 16:24:43 +0800</pubDate><description><![CDATA[1、Java16支持
最新发布的IntelliJ IDEA 2021.1.EAP版本，增加了对JDK16的基本支持

1)内部类可以声明显式或隐式的成员



tream.collect(toUnmodifiableList())被转换成stream.toList()


当前toList()函数显示在stream的code completion list中


2、WSL 2支持

当用户的 IDE 在 Windows 上运行时，该 EAP 将包括对 WSL 2 内的 Java 项目的初步支持。
Inte]]></description><category></category></item><item><title><![CDATA[Netty-Future/ChannelFuture-核心组件II]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113530214</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113530214</guid><author>CodeDabaicai</author><pubDate>Mon, 01 Feb 2021 21:47:36 +0800</pubDate><description><![CDATA[1、在Netty中的作用

Netty中的IO操作都是异步进行的，并不能和同步一样立即知道消息是否被正确处理
Netty为IO操作注册一个监听，当IO操作成功或者不成功的时候都会自动触发注册的监听事件
Future和ChannelFuture就是为监听IO事件服务的，不敢IO操作成功不成功都会返回一个ChannelFuture

2、Future

Netty的Future接口继承了JDK的Future接口，同时提供了更多的方法

public interface Future&lt;V&gt; exten]]></description><category></category></item><item><title><![CDATA[Netty-Bootstrap/ServerBootstrap-核心组件I]]></title><link>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113529700</link><guid>https://blog.youkuaiyun.com/CodeDabaicai/article/details/113529700</guid><author>CodeDabaicai</author><pubDate>Mon, 01 Feb 2021 21:28:05 +0800</pubDate><description><![CDATA[1、Bootstrap

Bootstrap的字面意思是引导，通常情况下，一个Netty应用由一个Bootstrap开始，配置整个Netty程序和串联各个组件
在Netty中，Bootstrap是客户端程序的启动引导类

2、ServerBootstrap

在Netty中，ServerBootstrap是服务端启动引导类

3、二者相关的常用方法
//该方法用于配置两个服务器端的EventLoop
public ServerBootstrap group(EventLoopGroup parentGrou]]></description><category></category></item></channel></rss>