<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[时空秋千的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/z_s_b_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; z_s_b_]]></copyright><item><title><![CDATA[栈的压入、弹出序列]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/126442867</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/126442867</guid><author>z_s_b_</author><pubDate>Sat, 20 Aug 2022 19:22:19 +0800</pubDate><description><![CDATA[栈的压入、弹出序列]]></description><category></category></item><item><title><![CDATA[包含min函数的栈]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/126432242</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/126432242</guid><author>z_s_b_</author><pubDate>Fri, 19 Aug 2022 21:41:29 +0800</pubDate><description><![CDATA[包含min函数的栈]]></description><category></category></item><item><title><![CDATA[顺时针打印矩阵]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/126413657</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/126413657</guid><author>z_s_b_</author><pubDate>Fri, 19 Aug 2022 10:31:12 +0800</pubDate><description><![CDATA[顺时针打印矩阵]]></description><category></category></item><item><title><![CDATA[对称的二叉树]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/126394500</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/126394500</guid><author>z_s_b_</author><pubDate>Thu, 18 Aug 2022 11:29:17 +0800</pubDate><description><![CDATA[对称的二叉树]]></description><category></category></item><item><title><![CDATA[二叉树的镜像]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/126374701</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/126374701</guid><author>z_s_b_</author><pubDate>Wed, 17 Aug 2022 10:48:23 +0800</pubDate><description><![CDATA[二叉树的镜像]]></description><category></category></item><item><title><![CDATA[树的子结构]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/126337188</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/126337188</guid><author>z_s_b_</author><pubDate>Mon, 15 Aug 2022 10:07:37 +0800</pubDate><description><![CDATA[树的子结构]]></description><category></category></item><item><title><![CDATA[合并两个排序的链表]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/126324215</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/126324215</guid><author>z_s_b_</author><pubDate>Sat, 13 Aug 2022 22:23:34 +0800</pubDate><description><![CDATA[合并两个排序的链表]]></description><category></category></item><item><title><![CDATA[链表的反转]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/126302521</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/126302521</guid><author>z_s_b_</author><pubDate>Fri, 12 Aug 2022 16:59:40 +0800</pubDate><description><![CDATA[反转链表]]></description><category></category></item><item><title><![CDATA[链表中环的入口结点]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/126301664</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/126301664</guid><author>z_s_b_</author><pubDate>Fri, 12 Aug 2022 12:56:52 +0800</pubDate><description><![CDATA[链表中环的入口结点]]></description><category></category></item><item><title><![CDATA[链表中倒数最后k个结点]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/126281070</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/126281070</guid><author>z_s_b_</author><pubDate>Thu, 11 Aug 2022 12:29:18 +0800</pubDate><description><![CDATA[链表中倒数最后k个结点]]></description><category></category></item><item><title><![CDATA[synchronized 能否被中断？]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/125588105</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/125588105</guid><author>z_s_b_</author><pubDate>Sun, 03 Jul 2022 19:25:57 +0800</pubDate><description><![CDATA[**结论：**已经获取到锁的能被中断，正在等待锁的不能被中断。
如：
运行结果：

这里线程 A 获取到锁后被中断了。
又如：
线程 A 会一直处于等待状态，并不会被中断。]]></description><category></category></item><item><title><![CDATA[数据库索引的优缺点]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/125083232</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/125083232</guid><author>z_s_b_</author><pubDate>Wed, 01 Jun 2022 14:47:38 +0800</pubDate><description><![CDATA[优点
	* 提高数据检索效率，降低 IO 成本
	* 唯一索引可以保证数据的唯一性
	* 加速表和表之间的连接，对于有依赖关系的子表和父表联合查询时，可以提高查询速度
	* 减少查询中分组和排序的时间，降低 CPU 消耗

缺点
	* 创建和维护索引需要耗费时间
	* 索引需要占用磁盘空间
	* 降低了数据更新的速度，因为对数据进行更新时，索引也要动态地维护]]></description><category></category></item><item><title><![CDATA[InnoDB 和 MyISAM 的区别]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/125069572</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/125069572</guid><author>z_s_b_</author><pubDate>Tue, 31 May 2022 17:13:56 +0800</pubDate><description><![CDATA[InnoDB 支持外键和事务，MyISAM 不支持
InnoDB 支持行锁和表锁，MyISAM 只支持表锁
InnoDB 有重启后的崩溃恢复功能 (基于事务)
MyISAM 只缓存索引，不缓存真实数据；InnoDB 不仅缓存索引还缓存真实数据，对内存要求较高，且内存大小对性能有决定性的影响
数据量较小，且操作多为插入和查询时，MyISAM 性能高一些
MyISAM 针对数据统计有额外的变量存储，故 count(*) 的查询效率很高
数据文件结构

InnoDB：表名.frm (存储表结构，8.0 时被合并.]]></description><category></category></item><item><title><![CDATA[1.8 ConcurrentHashMap 总结]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/125035103</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/125035103</guid><author>z_s_b_</author><pubDate>Sun, 29 May 2022 19:36:23 +0800</pubDate><description><![CDATA[底层结构
Node 数组 + 链表 + 红黑树
原理
synchronized + CAS
构造方法
public ConcurrentHashMap(int initialCapacity) {  
    if (initialCapacity &lt; 0) 
        throw new IllegalArgumentException();   
    int cap = ((initialCapacity &gt;= (MAXIMUM_CAPACITY &gt;&gt;&gt; 1)) ]]></description><category></category></item><item><title><![CDATA[1.7 ConcurrentHashMap 总结]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/125020305</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/125020305</guid><author>z_s_b_</author><pubDate>Sat, 28 May 2022 17:15:21 +0800</pubDate><description><![CDATA[底层结构
Segment 数组，每个 Segment 对象中包含一个 HashEntry 数组，数组元素可以是链表
原理
分段锁（Segment 继承自 ReetrantLock）
构造方法
public ConcurrentHashMap(int initialCapacity, float loadFactor, int concurrencyLevel)


计算 Segment 数组的长度 ssize：大于等于 concurrencyLevel 的最小 2 的次幂；记录 segmentShift 和]]></description><category></category></item><item><title><![CDATA[Java HashMap 总结 (1.7/1.8)]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/125008926</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/125008926</guid><author>z_s_b_</author><pubDate>Fri, 27 May 2022 18:18:05 +0800</pubDate><description><![CDATA[底层结构
1.7：数组 + 链表
1.8：数组 + 链表 + 红黑树
put 方法流程
1.7

判断数组是否已初始化，没有则进行初始化（容量默认是16，若在构造方法中指定了则为大于等于指定容量的最小 2 的次幂）
计算下标，若 key 为 null 则下标为 0，key 不为 null 时下标为 hash &amp; length - 1，其中 hash 值通过 key.hashCode() 与哈希种子计算得到
调用 addEntry 方法，先判断是否需要扩容，扩容条件为：元素数量(插入前) &gt;= ]]></description><category></category></item><item><title><![CDATA[Java List 的 remove 方法]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/123547959</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/123547959</guid><author>z_s_b_</author><pubDate>Thu, 17 Mar 2022 13:28:29 +0800</pubDate><description><![CDATA[Java List 的 remove 方法有两个重载，一个接收 int 型参数（通过下标删除），一个接收 Object 型参数（通过元素删除）。对于 List&lt;Integer&gt;，如果传入一个整型字面值，会删除对应下标处的元素，如：
public class Main {
    public static void main(String[] args) {
        List&lt;Integer&gt; list = new ArrayList&lt;&gt;();
        l]]></description><category></category></item><item><title><![CDATA[Java instanceof 运算符]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/123541228</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/123541228</guid><author>z_s_b_</author><pubDate>Thu, 17 Mar 2022 08:50:17 +0800</pubDate><description><![CDATA[Java 的 instanceof 运算符可以用来判断一个对象是不是某个类（接口）的实例。
注意点：

左边必须是引用类型，否则编译不通过；
左边对象的编译时类型必须与右边的类相同或有继承关系，否则编译不通过；
右边的类不能带泛型的类，否则编译不通过（泛型擦除，运行时没有泛型信息）；

运行时，若左边对象不为 null 且强转为右边的类型时没有抛出异常，则返回 true，否则返回 false。
参考：https://blog.youkuaiyun.com/Dream_Weave/article/details/1056]]></description><category></category></item><item><title><![CDATA[关于 Spring MVC 中 Model、ModelMap 和 Map]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/123148780</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/123148780</guid><author>z_s_b_</author><pubDate>Sat, 26 Feb 2022 13:39:42 +0800</pubDate><description><![CDATA[其实是同一个对象，如：
@Controller
public class TestController {
    @ResponseBody
    @GetMapping("/test")
    public String test(Model model, ModelMap modelMap, Map map) {
        System.out.println(model == modelMap);
        System.out.println(model == map);
    ]]></description><category></category></item><item><title><![CDATA[Spring 使用自动装配的同时手动赋值会怎么样？]]></title><link>https://blog.youkuaiyun.com/z_s_b_/article/details/121432566</link><guid>https://blog.youkuaiyun.com/z_s_b_/article/details/121432566</guid><author>z_s_b_</author><pubDate>Fri, 19 Nov 2021 22:52:58 +0800</pubDate><description><![CDATA[在 Spring 中我们可以使用自动装配来初始化对象的属性，如果我们使用 autowire 的同时又通过 property 手动为属性赋值时会怎么样呢？（xml 配置方式）答案是：只会执行手动赋值。如：
public class Dog {
    private String name;
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
    ]]></description><category></category></item></channel></rss>