<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[OYMNCHR的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/OYMNCHR</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; OYMNCHR]]></copyright><item><title><![CDATA[kafka初识]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/136641273</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/136641273</guid><author>OYMNCHR</author><pubDate>Tue, 12 Mar 2024 09:15:40 +0800</pubDate><description><![CDATA[在数据驱动的时代，实时数据流转已经成为企业运营的关键。Apache Kafka，作为一个高吞吐量、可扩展、分布式的流处理平台，为处理大规模实时数据提供了强有力的支持。基于zookeeper协调的分布式消息系统，它的最大的特性就是可以实时的处理大量数据以满足各种需求场景：比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎，web/nginx日志、访问日志，消息服务等等。]]></description><category></category></item><item><title><![CDATA[缓存框架Ehcache的介绍，且与Springboot的集成]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/135588196</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/135588196</guid><author>OYMNCHR</author><pubDate>Sun, 14 Jan 2024 21:04:21 +0800</pubDate><description><![CDATA[缓存技术在现代软件开发中扮演着越来越重要的角色，作为一个成熟的开源Java缓存库，Ehcache在提高应用性能、减少数据库负载、加速用户体验方面占有一席之地。本篇博客将全方位多角度地深入理解Ehcache，帮助大家把握其核心功能、实现原理及应用实例。Ehcache是一个纯Java的进程内缓存框架，具有速度快、简单、可伸缩、可配置及提供多级缓存功能等优点，因此成为了许多开发者的首选缓存方案。]]></description><category></category></item><item><title><![CDATA[麻将之胡牌]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/134632173</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/134632173</guid><author>OYMNCHR</author><pubDate>Sun, 26 Nov 2023 21:16:43 +0800</pubDate><description><![CDATA[基础胡牌：市面上的麻将相关游戏应该有更加高效的判断算法，这里实现一种比较容易理解，回溯的方式来依次遍历所有可能性，以此看看有没有符合胡牌牌型。用数组来表示各种类型的牌，即下标0-33分为代表1-9万，1-9筒，1-9条，以及东西南北中发白。最近打麻将有点频繁（有点罪恶），结合得发一篇博客的情况，因此这里小水一篇文章，用回溯的方式实现一下胡牌的判定。在回溯过程中，每遍历一张牌，会先尝试将其作为对子，如果不符合，再尝试作为刻子，或者顺子。基础胡牌：三副刻子或者顺子加上一对子，即可胡牌。]]></description><category></category></item><item><title><![CDATA[Android之适配器模式的应用（ListView与Adapter）]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/129001586</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/129001586</guid><author>OYMNCHR</author><pubDate>Sun, 12 Feb 2023 23:20:52 +0800</pubDate><description><![CDATA[Android之适配器模式的应用（ListView与Adapter）]]></description><category></category></item><item><title><![CDATA[Android基础教程——从入门到精通（下）]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/128913683</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/128913683</guid><author>OYMNCHR</author><pubDate>Tue, 07 Feb 2023 10:17:58 +0800</pubDate><description><![CDATA[Android基础教程——从入门到精通（下）]]></description><category></category></item><item><title><![CDATA[Android基础教程——从入门到精通（上）]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/128913579</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/128913579</guid><author>OYMNCHR</author><pubDate>Tue, 07 Feb 2023 10:00:10 +0800</pubDate><description><![CDATA[Android基础教程——从入门到精通（上）]]></description><category></category></item><item><title><![CDATA[双亲委派机制]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/128813323</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/128813323</guid><author>OYMNCHR</author><pubDate>Tue, 31 Jan 2023 10:39:13 +0800</pubDate><description><![CDATA[​	当一个Hello.class要被加载时，**在不考虑自定义类加载器的情况下，**首先会在AppClassLoader中检查是否已经被加载过了，如果没有被加载过，会交由上层父加载器进行处理，同样，父加载器也是先判断是否已经被加载过了，如果没有进一步交由上一层类加载器，直到BootstrapClassLoader，此时已经没有类加载器了，这时候考虑自己是否能够加载，如果无法加载，就会下沉交由子加载器，一直到最底层。通过前面的知识，我们不妨来思考思考。，奇怪，main方法不都有吗。那么为什么要有这种机制呢？]]></description><category></category></item><item><title><![CDATA[AndroidStudio编写xml文件时没有自动补全提示]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/128586199</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/128586199</guid><author>OYMNCHR</author><pubDate>Fri, 06 Jan 2023 23:26:45 +0800</pubDate><description><![CDATA[AndroidStudio编写xml文件时没有自动补全提示]]></description><category></category></item><item><title><![CDATA[Failed to install the following Android SDK packages as some licences have not been accepted.]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/128582255</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/128582255</guid><author>OYMNCHR</author><pubDate>Fri, 06 Jan 2023 17:25:55 +0800</pubDate><description><![CDATA[Failed to install the following Android SDK packages as some licences have not been accepted.]]></description><category></category></item><item><title><![CDATA[Java处理Excel表格的读取和写入]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/126668173</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/126668173</guid><author>OYMNCHR</author><pubDate>Fri, 02 Sep 2022 17:58:02 +0800</pubDate><description><![CDATA[Java处理Excel表格的读取和写入]]></description><category></category></item><item><title><![CDATA[进程间的通信方式（六种）]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/124728256</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/124728256</guid><author>OYMNCHR</author><pubDate>Thu, 12 May 2022 11:57:31 +0800</pubDate><description><![CDATA[进程之间的通信
参考文章：https://blog.youkuaiyun.com/qq_34827674/article/details/107678226

前提知识：每个进程都有自己的用户空间，而内核空间是每个进程共享的。因此进程之间想要进行通信，就需要通过内核来实现。
管道：
管道是最简单，效率最差的一种通信方式。
管道本质上就是内核中的一个缓存，当进程创建一个管道后，Linux会返回两个文件描述符，一个是写入端的描述符，一个是输出端的描述符，可以通过这两个描述符往管道写入或者读取数据。
如果想要实现两个进程通过]]></description><category></category></item><item><title><![CDATA[集合和数组的正确转换方式（可能有你不知道的坑哦）]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/124527679</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/124527679</guid><author>OYMNCHR</author><pubDate>Sun, 01 May 2022 15:38:48 +0800</pubDate><description><![CDATA[文章目录一、集合转数组二、数组转集合1. Arrays.asList（）：2. 正确的转换方式：
一、集合转数组
《阿里巴巴 Java 开发手册》中写道：使用集合转数组的方法，必须使用集合的toArray（T[] array）方法，并且传入的是类型一致，长度为0的空数组。
toArray（T[] array）方法的参数是一个泛型数组，如果toArray方法中没有传递任何参数，那么方法返回值是一个Object数组。
List&lt;String&gt; strList = new ArrayList&lt;&]]></description><category></category></item><item><title><![CDATA[fail-fast 机制是什么？(详解)]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/124515536</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/124515536</guid><author>OYMNCHR</author><pubDate>Sat, 30 Apr 2022 17:19:10 +0800</pubDate><description><![CDATA[1. 介绍：
fail-fast：快速失败系统，通常设计用于停止有缺陷的过程，这是一种理念，在进行系统设计时优先考虑异常情况，一旦发生异常，直接停止并上报。
举一个最简单的fail-fast例子：
public int divide(int divisor, int dividend){
    if (dividend == 0) {
        throw new RuntimeException("被除数不能为0");    //这里就是fail-fast的体现
    }
    return ]]></description><category></category></item><item><title><![CDATA[Mysql详解——InnoDB的数据存储结构]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/124446658</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/124446658</guid><author>OYMNCHR</author><pubDate>Wed, 27 Apr 2022 11:22:02 +0800</pubDate><description><![CDATA[更多关于数据库的知识可点击我的主页哦
文章目录一、InnoDB数据存储结构1. 数据库的存储结构：页1.1 磁盘和内存交互的基本单位：页1.2 页的上层结构2. 页的内部结构2.1 文件头和文件尾（1）文件头：（2）文件尾：2.2 用户记录、最大最小记录、空闲空间行格式的记录头信息：最大最小记录：2.3 页目录、页头（1）页目录：（2）页头：3. 行格式3.1 Compact变长字段长度列表NULL值列表记录头信息：记录的真实数据：3.2 Dynamic和Compressed行溢出：3.3 Redundan]]></description><category></category></item><item><title><![CDATA[Mysql详解——索引优化]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/124436775</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/124436775</guid><author>OYMNCHR</author><pubDate>Tue, 26 Apr 2022 21:02:25 +0800</pubDate><description><![CDATA[本篇文章是对Mysql索引的创建以及优化进行一个介绍，关于索引的底层原理可以看我另一篇文章：Mysql详解——索引详解
文章目录一、索引的创建和设计原则1. 索引的声明和使用1.1 索引的分类：1.2 索引的创建：在创建表时创建索引：在已经存在的表上创建索引：1.3 索引的删除：2. MySQL8.0中索引新特性2.1 支持降序索引2.2 支持隐藏索引3. 索引的设计原则3.1 数据准备：3.2 哪些情况适合创建索引1. 字段值有唯一性的限制2. 频繁作为WHERE查询条件的字段3. 经常GROUP BY和]]></description><category></category></item><item><title><![CDATA[Mysql详解——索引详解]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/124436567</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/124436567</guid><author>OYMNCHR</author><pubDate>Tue, 26 Apr 2022 20:45:09 +0800</pubDate><description><![CDATA[文章目录一、索引1. 索引的介绍优点：缺点：2. InnoDB中索引的推演2.1 没有索引之前的查找在一页中查找：在很多页中查找：2.2 索引的设计1. 一个简单的索引设计方案2. InnoDB中的索引方案：**（1）第一次迭代** ：目录项记录的页（2）第二次迭代：多个目录项记录的页（3）第三次迭代：目录项记录的目录页（4）B+Tree：2.3 常见索引概念：1. 聚簇索引：2. 非聚簇索引：3. 联合索引：2.4 InnoDB的B+树的补充说明：1. 根页面位置往年不动2. 内节点中目录项记录的唯一性3]]></description><category></category></item><item><title><![CDATA[Mysql详解——范式]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/124436225</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/124436225</guid><author>OYMNCHR</author><pubDate>Tue, 26 Apr 2022 20:34:07 +0800</pubDate><description><![CDATA[文章目录一、数据库的设计规范1. 范式1.1 第一范式1.2 第二范式1.3 第三范式1.4 小结2. 反范式化3. 巴斯范式4. 第四范式5. 第五范式
一、数据库的设计规范
1. 范式
在关系型数据库中，关于数据库表设计的基本原则，规则被称为范式，范式的英文名称为Normal Form，简称NF。要想设计一个合理的关系型数据库，就需要满足一定的范式。
目前关系型数据库有六种常见范式，按照范式级别，从低到高有：第一范式（1NF），第二范式（2NF），第三范式（3NF），巴斯科德范式（BCNF），第四范式（]]></description><category></category></item><item><title><![CDATA[Mysql详解——事务与日志]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/124375843</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/124375843</guid><author>OYMNCHR</author><pubDate>Sun, 24 Apr 2022 09:59:19 +0800</pubDate><description><![CDATA[一、事务基本知识
1. 事务基本概述
1.1 存储引擎支持情况
通过 SHOW ENGINES 命令来查看MySQL支持的存储引擎有哪些，以及这些存储引擎是否支持事务。
从下图可知，在MySQL中只有InnoDB支持事务。

1.2 基本概念
事务：一组操作逻辑单元，使数据从一个状态变为另一个状态。
事务执行的原则：保证事务中的操作作为一个工作单元来完成，要么整个事务被提交，要么放弃所有的修改，回滚到最初的状态。
1.3 事务的ACID特性


原子性（atomicity）：
原子性指事务是不可分割的工作单]]></description><category></category></item><item><title><![CDATA[Java篇 之 序列化与反序列化]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/120888762</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/120888762</guid><author>OYMNCHR</author><pubDate>Thu, 21 Oct 2021 16:11:30 +0800</pubDate><description><![CDATA[一、什么是序列化和反序列化
序列化：指把内存中的Java对象，通过某种方式存储到磁盘中或者传递给其他网络节点，通俗来说就是将对象转化为二进制串。
反序列化：把磁盘中的对象数据或者网络节点上的对象数据，恢复成Java对象模型的过程。通俗来说就是将序列化生成的二进制串转化为对象。
二、为什么要进行序列化

在分布式系统中，微服务之间进行数据传输，就得将对象转换为二进制形式。
服务器钝化：如果服务器发现某些对象好久没活动了，服务器会把这些内存中的对象持久化在磁盘中；如果服务器发现某些对象需要活动时，先去内存找，找]]></description><category></category></item><item><title><![CDATA[一篇文章搞定IO流（超级详细！！！）]]></title><link>https://blog.youkuaiyun.com/OYMNCHR/article/details/120888448</link><guid>https://blog.youkuaiyun.com/OYMNCHR/article/details/120888448</guid><author>OYMNCHR</author><pubDate>Thu, 21 Oct 2021 16:04:03 +0800</pubDate><description><![CDATA[文章目录一、IO流的分类：（1）根据流向分为输入流和输出流：（2）根据传输数据单位分为字节流和字符流：（3）根据流的角色分为节点流和处理流：二、IO流的四大基类（1）InputStream（2 ）Reader（3）OutputStream（4）Writer三、节点流（1）FileReader（2）FileWriter（3）FileInputStream&amp; FileOutStream四、处理流（1）缓冲流（2）转换流（3）输入输出流（4）打印流（5）数据流（6）对象流（7）随机存取文件流
一、IO流的]]></description><category></category></item></channel></rss>