<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ToraNe的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ToraNe</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ToraNe]]></copyright><item><title><![CDATA[[Java] 如何理解和设置ThreadPoolExecutor三大核心属性？什么情况下工作线程数会突破核心线程数？任务拒绝策略都有哪些？]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/128349539</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/128349539</guid><author>ToraNe</author><pubDate>Sun, 18 Dec 2022 09:00:00 +0800</pubDate><description><![CDATA[ThreadPoolExecutor是多线程编程中比较常用的一种工具类，熟练掌握其基本工作原理是非常重要的。希望通过本文你能了解到ThreadPoolExecutor是如何去把一个任务添加到其内部管理起来、同时在任务积压时又有哪几种基本的任务拒绝策略。]]></description><category></category></item><item><title><![CDATA[[Java] 什么是锁？什么是并发控制？线程安全又是什么？锁的本质是什么？如何实现一个锁？]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/128294942</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/128294942</guid><author>ToraNe</author><pubDate>Tue, 13 Dec 2022 20:42:29 +0800</pubDate><description><![CDATA[锁、并发控制和线程安全这几个概念是相辅相成的，通过本篇文章我们知道了锁其实是一种工具类，也知道其主要职责主要是负责维护锁状态以及加锁失败时阻塞线程，我们也简单地用Java自定义了一个我们自己的锁实现。理解锁的本质是理解多线程编程的基础。]]></description><category></category></item><item><title><![CDATA[[Java] HashMap是如何实现的？扩容机制是什么？树化机制知道吗？结合源码带你理解HashMap的原理。]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/128288396</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/128288396</guid><author>ToraNe</author><pubDate>Mon, 12 Dec 2022 19:48:44 +0800</pubDate><description><![CDATA[HashMap的实现逻辑还是比较简单的，内部是散列表，散列表本质则是数组，散列表数组内的每一个元素都是一个哈希槽，多个哈希值取模后相同的数据会被存储在相同的哈希槽内，为了存储这些数据HashMap使用了链表和红黑树这两种数据结构，它们在数据量变化时通过树化反树化机制来互相转换。而扩容机制则是把HashMap内部的散列表进行倍增的一种处理。]]></description><category></category></item><item><title><![CDATA[[Java] 序列化（Serialization）的本质是什么？在Java中怎么实现？为什么要了解序列化技术？序列化技术选型要点是什么？]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/128268885</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/128268885</guid><author>ToraNe</author><pubDate>Sun, 11 Dec 2022 09:00:00 +0800</pubDate><description><![CDATA[序列化技术本身与业务代码关系并不大，反而更多与企业系统架构关系更大一点。越是趋向于分布式架构的系统，对于好的序列化技术的需求越大，而业务压力小甚至不需要做分布式架构的系统则对于序列化技术的需求没有那么大。目前来看，大部分企业都在往分布式架构系统靠的大环境下，理解序列化技术的本质也变得越发重要。]]></description><category></category></item><item><title><![CDATA[[Database] 关系型数据库中的MVCC是什么？怎么理解？原理是什么？MySQL是如何实现的？]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/128203688</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/128203688</guid><author>ToraNe</author><pubDate>Tue, 06 Dec 2022 21:11:05 +0800</pubDate><description><![CDATA[在并发场景下，如果我们不对数据做保护，那么很容易出现不可预知的数据错误，在多线程中是如此，在数据库进程服务多个外部进程时也是如此，笔者将用本文去介绍数据库在面对并发场景时，是如何做并发控制的。同时也会简单介绍一下并发控制和锁的基础。]]></description><category></category></item><item><title><![CDATA[[Database] 脏读、幻读这些都是什么？事务隔离级别又是什么？MySQL数据库的事务隔离级别都有哪些？]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/128193273</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/128193273</guid><author>ToraNe</author><pubDate>Tue, 06 Dec 2022 08:00:00 +0800</pubDate><description><![CDATA[事务之于数据库是非常重要的，而事务隔离级别之于事务也是一样，是非常重要的。理解几种事务隔离级别以及它们面临如脏读、幻读、不可重复读等问题，是更好地理解关系型数据库如何工作的基础。]]></description><category></category></item><item><title><![CDATA[[Java] 从内存的角度去理解ThreadLocal如何把不同线程间的访问隔离开来？ThreadLocal的内存泄露问题是什么？如何避免？]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/128113249</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/128113249</guid><author>ToraNe</author><pubDate>Wed, 30 Nov 2022 15:42:58 +0800</pubDate><description><![CDATA[ThreadLocal的原理是什么？ThreadLocal的内存泄漏问题时什么？如何避免呢？本文带大家从内存的视角和源码去理解ThreadLocal的实现原理和如何避免出现内存泄漏问题。]]></description><category></category></item><item><title><![CDATA[[网络] TCP协议中的三次握手是什么？利用3次握手的SYN Flood DDOS攻击知道吗？]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/128072484</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/128072484</guid><author>ToraNe</author><pubDate>Mon, 28 Nov 2022 16:54:56 +0800</pubDate><description><![CDATA[协议的设计者并不是神，它们能提供某项特性的同时，也一定需要额外的元信息，这些额外的元信息通常需要在两个通信组件中做数据同步，这个同步的过程被称为握手（handshake）。理解了这一点，笔者相信咱们再去理解其他网络协议的握手处理时，就能把握住其最主要的目的，能够更好更快速地理解协议设计者为什么设计。]]></description><category></category></item><item><title><![CDATA[[网络] TCP协议是什么？套接字Socket是什么？它们是什么关系？]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/128065086</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/128065086</guid><author>ToraNe</author><pubDate>Sun, 27 Nov 2022 19:01:07 +0800</pubDate><description><![CDATA[TCP协议是当今互联网最重要的基础设施之一，正确理解TCP协议与操作系统进程、Socket文件、网卡和用户进程之间的关系，对于帮助我们去理解当今越来越复杂的企业系统架构会非常有帮助。]]></description><category></category></item><item><title><![CDATA[[网络] https是什么？https是怎么保障我们信息传输的安全的？]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/128016852</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/128016852</guid><author>ToraNe</author><pubDate>Thu, 24 Nov 2022 15:33:11 +0800</pubDate><description><![CDATA[HTTPs总的来说并不难，如果能很好的理解TLS之于HTTPs的作用，那么理解TLS之于其他协议的作用就很简单了，甚至你可以为自己开发私有协议添加TLS的使用，使其变得更加安全。而TLS保证通信安全的根本是加密，而三种加密方式，TLS通常使用对商业环境最友好的混合加密来完成安全通信工作。]]></description><category></category></item><item><title><![CDATA[[Java] 浅析rpc的原理及所用到的基本底层技术]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/127999332</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/127999332</guid><author>ToraNe</author><pubDate>Wed, 23 Nov 2022 20:17:49 +0800</pubDate><description><![CDATA[通过本文笔者希望我们大家都能理解rpc的本质到底是什么，这样无论是面对阿帕奇的dubbo、谷歌的gRPC亦或是老旧的SOAP，咱们都能快速的理解其到底是在干什么。
商业产品无穷无尽，唯有理解其本质才能以不变应万变。]]></description><category></category></item><item><title><![CDATA[[Java] Spring Boot Auto Configure（Spring Boot自动装配）的原理]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/127956347</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/127956347</guid><author>ToraNe</author><pubDate>Mon, 21 Nov 2022 08:45:00 +0800</pubDate><description><![CDATA[Spring Boot能帮助我们Java开发者快速开发基于Spring框架的应用，除了其作为依赖管理好帮手的一众Spring-Boot-Starter之外，其自动装配（Auto Configure）特性也起到了非常重要的作用。那么Spring Boot是如何实现自动装配的呢？本文将结合源码去讲解其原理。]]></description><category></category></item><item><title><![CDATA[[Java] 什么是IoC？什么是DI？它们的区别是什么？]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/127018442</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/127018442</guid><author>ToraNe</author><pubDate>Thu, 29 Sep 2022 03:06:23 +0800</pubDate><description><![CDATA[学习应用程序框架永远绕不过的一个话题就是控制反转（IoC）和依赖注入（DI），这两个概念总是令初学者感到困惑，然而这两个概念却是贯穿现代应用程序框架（Application Framework）的最基本的概念，必须要掌握。所以笔者将通过本文带大家了解一下什么是IoC、什么是DI。]]></description><category></category></item><item><title><![CDATA[[Java] 乐观锁？公平锁？可重入锁？盘点Java中锁相关的概念]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/126541039</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/126541039</guid><author>ToraNe</author><pubDate>Mon, 19 Sep 2022 00:15:50 +0800</pubDate><description><![CDATA[锁相关的概念很多，如乐观锁、公平锁等之外还有独享锁、共享锁、自旋锁、分段锁、偏向锁等大量概念，通常看得人眼花缭乱，笔者将利用本文尽可能地盘点梳理这些概念。]]></description><category></category></item><item><title><![CDATA[[Java] VSCode Maven项目提示java.lang.NoClassDefFoundError的解决方案]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/126432952</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/126432952</guid><author>ToraNe</author><pubDate>Sun, 21 Aug 2022 18:10:21 +0800</pubDate><description><![CDATA[VSCode运行Maven项目时出现java.lang.NoClassDefFoundError错误？有两个原因！该怎么解决？！]]></description><category></category></item><item><title><![CDATA[[JVM] 浅析JVM的垃圾回收机制的相关概念]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/126213034</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/126213034</guid><author>ToraNe</author><pubDate>Sun, 14 Aug 2022 12:55:43 +0800</pubDate><description><![CDATA[JVM垃圾回收机制概念太多？分代？垃圾回收器？Minor GC、Major GC、ParNew GC、Serial Old GC、CMS GC查下来眼花缭乱迷迷糊糊？一篇文章文章带你分清楚这些概念。]]></description><category></category></item><item><title><![CDATA[数据结构之 - 散列表（Hash table）]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/118184946</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/118184946</guid><author>ToraNe</author><pubDate>Thu, 24 Jun 2021 14:46:37 +0800</pubDate><description><![CDATA[散列表是什么？改如何理解散列表？散列表的基本概念是哪些？Map里的散列表是如何扩容的？一篇文章带你看清散列表的本质。]]></description><category></category></item><item><title><![CDATA[[排序算法] 归并排序的原理及其Java实现]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/104546782</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/104546782</guid><author>ToraNe</author><pubDate>Sat, 29 Feb 2020 20:55:01 +0800</pubDate><description><![CDATA[你知道什么是归并排序算法吗？怎么实现这种排序？听说还有并行版的归并排序，怎么实现呢？本文将带你了解归并排序算法和其并行版的实现。]]></description><category></category></item><item><title><![CDATA[[排序算法] 插入排序的原理及其Java实现]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/104487616</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/104487616</guid><author>ToraNe</author><pubDate>Tue, 25 Feb 2020 23:13:40 +0800</pubDate><description><![CDATA[插入排序，其实现方式，通过逐渐扩大数组头部有序部分的方式，逐渐令整个数组变得有序。具体是通过每一轮 **“插入”** 有序部分外的一个元素(下标：SortedBoundle + 1)到有序部分[0, SortedBoundle]的合适位置pos来实现，因为[0, SortedBoundle]这一部分是有序的，所以可以通过二分查找的方式来加快计算pos的所要时间。这样经过N次插入之后整个长度N的数组就变得有序了。]]></description><category></category></item><item><title><![CDATA[[排序算法]  冒泡排序的原理及其Java实现]]></title><link>https://blog.youkuaiyun.com/ToraNe/article/details/104483231</link><guid>https://blog.youkuaiyun.com/ToraNe/article/details/104483231</guid><author>ToraNe</author><pubDate>Mon, 24 Feb 2020 19:41:51 +0800</pubDate><description><![CDATA[**冒泡排序**，其实现方式，是在每一轮操作中从头部开始把相对较大的数组后部移动，这途中如果遇到更大的元素，那就选择更大的元素向后移动。这样能保证每一轮移动都能让最大的元素“冒泡”到数组尾部。也正是因为这个特性，这个算法被命名为冒泡排序。]]></description><category></category></item></channel></rss>