<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LuckyRascal的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LuckyRascal</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LuckyRascal]]></copyright><item><title><![CDATA[线程安全-从CPU讲起，深入理解 Java 内存模型]]></title><link>https://blog.youkuaiyun.com/LuckyRascal/article/details/126983310</link><guid>https://blog.youkuaiyun.com/LuckyRascal/article/details/126983310</guid><author>LuckyRascal</author><pubDate>Wed, 23 Nov 2022 11:30:52 +0800</pubDate><description><![CDATA[线程安全-从CPU讲起，深入理解Java内存模型]]></description><category></category></item><item><title><![CDATA[并发编程-Java线程的生命周期]]></title><link>https://blog.youkuaiyun.com/LuckyRascal/article/details/126396528</link><guid>https://blog.youkuaiyun.com/LuckyRascal/article/details/126396528</guid><author>LuckyRascal</author><pubDate>Thu, 18 Aug 2022 00:39:53 +0800</pubDate><description><![CDATA[并发编程-Java线程的生命周期]]></description><category></category></item><item><title><![CDATA[并发编程-线程与进程区别]]></title><link>https://blog.youkuaiyun.com/LuckyRascal/article/details/126395944</link><guid>https://blog.youkuaiyun.com/LuckyRascal/article/details/126395944</guid><author>LuckyRascal</author><pubDate>Wed, 17 Aug 2022 23:21:51 +0800</pubDate><description><![CDATA[并发编程-线程与进程区别]]></description><category></category></item><item><title><![CDATA[Java基础-注解]]></title><link>https://blog.youkuaiyun.com/LuckyRascal/article/details/126342981</link><guid>https://blog.youkuaiyun.com/LuckyRascal/article/details/126342981</guid><author>LuckyRascal</author><pubDate>Tue, 16 Aug 2022 10:57:11 +0800</pubDate><description><![CDATA[Java基础-注解]]></description><category></category></item><item><title><![CDATA[Java基础-反射]]></title><link>https://blog.youkuaiyun.com/LuckyRascal/article/details/126266670</link><guid>https://blog.youkuaiyun.com/LuckyRascal/article/details/126266670</guid><author>LuckyRascal</author><pubDate>Sun, 14 Aug 2022 22:22:50 +0800</pubDate><description><![CDATA[Java基础-反射]]></description><category></category></item><item><title><![CDATA[Java基础-泛型]]></title><link>https://blog.youkuaiyun.com/LuckyRascal/article/details/126228417</link><guid>https://blog.youkuaiyun.com/LuckyRascal/article/details/126228417</guid><author>LuckyRascal</author><pubDate>Tue, 09 Aug 2022 09:56:30 +0800</pubDate><description><![CDATA[Java基础-泛型]]></description><category></category></item><item><title><![CDATA[LinkList源码分析]]></title><link>https://blog.youkuaiyun.com/LuckyRascal/article/details/126117416</link><guid>https://blog.youkuaiyun.com/LuckyRascal/article/details/126117416</guid><author>LuckyRascal</author><pubDate>Wed, 03 Aug 2022 10:18:14 +0800</pubDate><description><![CDATA[LinkList源码]]></description><category></category></item><item><title><![CDATA[ArrayList源码分析]]></title><link>https://blog.youkuaiyun.com/LuckyRascal/article/details/125717333</link><guid>https://blog.youkuaiyun.com/LuckyRascal/article/details/125717333</guid><author>LuckyRascal</author><pubDate>Tue, 02 Aug 2022 10:16:36 +0800</pubDate><description><![CDATA[ArrayList源码分析]]></description><category></category></item><item><title><![CDATA[八大基础数据结构]]></title><link>https://blog.youkuaiyun.com/LuckyRascal/article/details/123576914</link><guid>https://blog.youkuaiyun.com/LuckyRascal/article/details/123576914</guid><author>LuckyRascal</author><pubDate>Fri, 18 Mar 2022 16:38:01 +0800</pubDate><description><![CDATA[常用的数据结构数组（Array）队列（Queue）链表（Linked List）栈（Stack）树（Tree）散列表（Hash）堆（Heap）图（Graph）
数组（Array）
数组是最简单、使用最频繁的一种数据结构。它一种线性表数据结构，用一组连续的内存空间来存储一组相同类型的数据。

如上图所示，数据是按照顺序存储在内存的连续空间内，arr后面的[]代表下标，由于数据是存储在连续空间内的，所以每个数据的内存地址(在内存上的位置)都可以通过数组下标计算出来，从而可以直接访问目标数据，达到随机访问的目的。]]></description><category></category></item><item><title><![CDATA[数据的逻辑结构和存储结构（物理结构）详解]]></title><link>https://blog.youkuaiyun.com/LuckyRascal/article/details/119725627</link><guid>https://blog.youkuaiyun.com/LuckyRascal/article/details/119725627</guid><author>LuckyRascal</author><pubDate>Mon, 16 Aug 2021 10:47:46 +0800</pubDate><description><![CDATA[数据的逻辑结构和存储结构（物理结构）详解什么是数据结构数据的逻辑结构集合线性结构树形结构图形结构数据的物理结构(存储结构)1、顺序存储结构2、链式存储结构3、索引存储结构4、链式存储结构存储结构特点顺序存储结构的特点非顺序存储的特点分类线性结构的特征非线性结构的特征
什么是数据结构
 数据结构，直白地理解，就是研究数据的存储方式。这种结构定义相适应的运算，设计出相应的算法，并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。
数据结构是相互之间存在一种或多种特定关系的数据元素的集合，即带“结构”的数据]]></description><category></category></item><item><title><![CDATA[java的舍入规则，DecimalFormat的默认舍入规则]]></title><link>https://blog.youkuaiyun.com/LuckyRascal/article/details/116269583</link><guid>https://blog.youkuaiyun.com/LuckyRascal/article/details/116269583</guid><author>LuckyRascal</author><pubDate>Thu, 29 Apr 2021 15:18:15 +0800</pubDate><description><![CDATA[java的舍入规则，DecimalFormat的默认舍入规则Java有如下的舍入规则：UPDOWNCEILINGFLOORHALF_UPHALF_DOWNHALF_EVENUNNECESSARY
Java有如下的舍入规则：
UP
远离零方向舍入的舍入模式。
DOWN
向零方向舍入的舍入模式。
CEILING
向正无限大方向舍入的舍入模式。
FLOOR
向负无限大方向舍入的舍入模式。
HALF_UP
向最接近数字方向舍入的舍入模式。如果与两个相邻数字的距离相等，则向上舍入。(四舍五入)
HALF_DOWN
向]]></description><category></category></item><item><title><![CDATA[fail-fast（快速失败）机制和fail-safe（安全失败）机制的介绍和区别]]></title><link>https://blog.youkuaiyun.com/LuckyRascal/article/details/115954456</link><guid>https://blog.youkuaiyun.com/LuckyRascal/article/details/115954456</guid><author>LuckyRascal</author><pubDate>Wed, 21 Apr 2021 17:01:16 +0800</pubDate><description><![CDATA[fail-fast（快速失败）机制和fail-safe（安全失败）机制的介绍和区别fail-fast和fail-safe的区别：fail-fast ( 快速失败 )单线程案例多线程案例避免fail-fast的方法fail-safe ( 安全失败 )原理缺点
fail-fast和fail-safe的区别：
fail-safe允许在遍历的过程中对容器中的数据进行修改，而fail-fast则不允许。
fail-fast ( 快速失败 )
fail-fast:直接在容器上进行遍历，在遍历过程中，一旦发现容器中的数据]]></description><category></category></item><item><title><![CDATA[JAVA线程的基本认识]]></title><link>https://blog.youkuaiyun.com/LuckyRascal/article/details/115869593</link><guid>https://blog.youkuaiyun.com/LuckyRascal/article/details/115869593</guid><author>LuckyRascal</author><pubDate>Wed, 21 Apr 2021 10:53:36 +0800</pubDate><description><![CDATA[JAVA 线程一、线程的基本认识定义本质Java 线程创建callable和Runnable的区别?Java 生命周期二、线程的基本操作和原理join作用本质join对于线程的作用t1.join()为什么阻塞 主线程 而不是t1线程.Thread.sleep(long millis)Thread.sleep(0);作用wait &amp; notifywait/notify 需要加synchronized
一、线程的基本认识
定义
线程是操作系统能够进行运算调度的最小单位。它被包含在进程中，是进程中的实际运]]></description><category></category></item><item><title><![CDATA[HashMap源码分析jdk 1.8]]></title><link>https://blog.youkuaiyun.com/LuckyRascal/article/details/115481403</link><guid>https://blog.youkuaiyun.com/LuckyRascal/article/details/115481403</guid><author>LuckyRascal</author><pubDate>Tue, 13 Apr 2021 10:13:18 +0800</pubDate><description><![CDATA[JDK1.8 HashMap底层源码分析HashMap简介成员变量四种构造方法initialCapacity 容量值（保证为2的幂次方）put方法解析putVal方法(n - 1) &amp; hash扩容resize方法转红黑树 treeifyBin方法HashMap中put()的工作原理
HashMap简介
HashMap通过散列映射来存储键值对数据因为在查询上使用散列码（通过键生成一个数字作为数组下标，这个数字就是hash code）。非线程安全的。

Jdk 1.7 以前是采用数组 + 链表
Jdk]]></description><category></category></item><item><title><![CDATA[数组、链表、树]]></title><link>https://blog.youkuaiyun.com/LuckyRascal/article/details/115461862</link><guid>https://blog.youkuaiyun.com/LuckyRascal/article/details/115461862</guid><author>LuckyRascal</author><pubDate>Tue, 06 Apr 2021 15:51:48 +0800</pubDate><description><![CDATA[数据结构数组链表双向链表树红黑树
数组
特点：

1、内存地址连续，使用之前必须指定数组长度
2、可以通过下坐标的方式访问成员，查询效率高
3、增删操作会给系统带来性能的消耗（保证数组下坐标越界问题，需要动态扩容）

链表
单向链表和双向链表
双向链表：LinkList等
单项链表：哈希表
双向链表
特点：

1、灵活的空间需求，存储空间不需要连续
2、不支持下坐标的访问，支持顺序遍历检索
3、针对增删效率更高些，只和操作节点的前后节点有关系，无效移动元素

树
红黑树
红黑树 Red-Black Tree]]></description><category></category></item></channel></rss>