<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Muscleape的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Muscleape</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Muscleape]]></copyright><item><title><![CDATA[Java transient关键字使用小记]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/108187725</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/108187725</guid><author>Muscleape</author><pubDate>Sun, 23 Aug 2020 20:18:05 +0800</pubDate><description><![CDATA[原文地址
哎，虽然自己最熟的是Java，但很多Java基础知识都不知道，比如transient关键字以前都没用到过，所以不知道它的作用是什么，今天做笔试题时发现有一题是关于这个的，于是花个时间整理下transient关键字的使用，涨下姿势~~~好了，废话不多说，下面开始：
1. transient的作用及使用方法
我们都知道一个对象只要实现了Serilizable接口，这个对象就可以被序列化，java的这种序列化模式为开发者提供了很多便利，我们可以不必关系具体序列化的过程，只要这个类实现了Serilizab]]></description><category></category></item><item><title><![CDATA[【转载】Java 8系列之重新认识HashMap]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/108137903</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/108137903</guid><author>Muscleape</author><pubDate>Thu, 20 Aug 2020 23:49:57 +0800</pubDate><description><![CDATA[原文地址 https://tech.meituan.com/2016/06/24/java-hashmap.html
HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK（Java Developmet Kit）版本的更新，JDK1.8对HashMap底层的实现进行了优化，例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别，深入探讨HashMap的结构实现和功能原理。
Java为数据结构中的映射定义了一个接口java.util.Map，此接口]]></description><category></category></item><item><title><![CDATA[Spring中Bean（@Controller、@Service、@Repository）线程安全情况分析]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/106100242</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/106100242</guid><author>Muscleape</author><pubDate>Wed, 13 May 2020 21:23:21 +0800</pubDate><description><![CDATA[对于Spring中的Bean是怎么样的一种存在，特别是常用的@Controller、@Service、@Repository，每次处理一个请求的时候都是统一个Bean在处理吗？还是新生成Bean处理请求？]]></description><category></category></item><item><title><![CDATA[Java代理之 - cglib动态代理的一点点]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105971060</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105971060</guid><author>Muscleape</author><pubDate>Thu, 07 May 2020 13:57:25 +0800</pubDate><description><![CDATA[> **外部引用**（cglib相关引用）
> - 引用包cglib-xxx.jar
> - 非Maven项目还需要手动引用包asm-xxx.jar

> **组成**
> 1. 业务类（不需要额外接口）
> 2. 代理类（实现MethodInterceptor接口），主要**两个方法**：
> -- 重写接口中intercept()方法，intercept()方法中调用被代理类的功能并扩展代理类的功能；
> --  对外提供的一个创建代理对象的方法；]]></description><category></category></item><item><title><![CDATA[Java代理之 - JDK 动态代理浅浅一点]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105970331</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105970331</guid><author>Muscleape</author><pubDate>Thu, 07 May 2020 13:00:24 +0800</pubDate><description><![CDATA[JDK动态代理需要3个部分：
1、需要一个接口，只是被代理类要该接口（**代理类不再跟被代理类强关联**）；
2、被代理类，实现1中的接口，并实现接口中方法，在方法中完成自己的功能；
3、代理类，实现InvocationHandler接口，并主要有**三个方法（一个是构造函数）**：
> - 构造函数，接收被代理类作为构造函数入参；
> - 实现接口中invoke()方法，在invoke()方法中**利用反射调用被代理类中方法**，并扩展代理自己的功能；
> - 并提供一个供外部调用的**代理实例创建方法*]]></description><category></category></item><item><title><![CDATA[Java代理之 - JDK 静态代理浅析]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105970131</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105970131</guid><author>Muscleape</author><pubDate>Thu, 07 May 2020 12:48:14 +0800</pubDate><description><![CDATA[JDK静态代理需要3个部分：
1、需要一个接口，代理类和被代理类要实现同一个接口；
2、被代理类，实现1中的接口，并实现接口中方法，在方法中完成自己的功能；
3、代理类，实现1中的接口，实例化2中的被代理类，实现接口方法时，调用被代理类的实现，并扩展自己的功能；]]></description><category></category></item><item><title><![CDATA[Redis对象类型、对象编码及对应关系]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105910512</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105910512</guid><author>Muscleape</author><pubDate>Sun, 03 May 2020 23:35:37 +0800</pubDate><description><![CDATA[Redis中5中数据类型就底层实现的]]></description><category></category></item><item><title><![CDATA[10张图带你深入理解Docker容器和镜像（转载）]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105759619</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105759619</guid><author>Muscleape</author><pubDate>Sat, 25 Apr 2020 23:36:05 +0800</pubDate><description><![CDATA[深入理解Docker容器和镜像的区别]]></description><category></category></item><item><title><![CDATA[并发编程之线程池ThreadPoolExecutor（转载）]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105759309</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105759309</guid><author>Muscleape</author><pubDate>Sat, 25 Apr 2020 23:15:53 +0800</pubDate><description><![CDATA[并发编程之线程池ThreadPoolExecutor]]></description><category></category></item><item><title><![CDATA[MySQL Explain详解（转载）]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105680996</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105680996</guid><author>Muscleape</author><pubDate>Wed, 22 Apr 2020 14:15:20 +0800</pubDate><description><![CDATA[Explain 参数详解]]></description><category></category></item><item><title><![CDATA[Redis-关于RDB的几点顿悟-COW（Copy On Write）]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105670481</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105670481</guid><author>Muscleape</author><pubDate>Wed, 22 Apr 2020 00:03:48 +0800</pubDate><description><![CDATA[在看Redis的持久化机制中的RDB时，有几个疑问，
1、RDB的过程中是否会停止对外提供服务？
2、RDB的过程中数据修改了，备份的是修改前的还是修改后的？]]></description><category></category></item><item><title><![CDATA[MySQL索引与Index Condition Pushdown（转载）]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105655444</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105655444</guid><author>Muscleape</author><pubDate>Tue, 21 Apr 2020 12:35:01 +0800</pubDate><description><![CDATA[原文链接：MySQL索引与Index Condition Pushdown

大约在两年前，我写了一篇关于MySQL索引的文章。最近有同学在文章的评论中对文章的内容提出质疑，质疑主要集中在联合索引的使用方式上。在那篇文章中，我说明联合索引是将各个索引字段做字符串连接后作为key，使用时将整体做前缀匹配。

而这名同学在这个页面找到了如下一句话：index condition pushdown is...]]></description><category></category></item><item><title><![CDATA[MySQL索引背后的数据结构及算法原理（转载）]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105655289</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105655289</guid><author>Muscleape</author><pubDate>Tue, 21 Apr 2020 12:22:41 +0800</pubDate><description><![CDATA[摘要

本文以MySQL数据库为研究对象，讨论与数据库索引相关的一些话题。特别需要说明的是，MySQL支持诸多存储引擎，而各种存储引擎对索引的支持也各不相同，因此MySQL数据库支持多种索引类型，如BTree索引，哈希索引，全文索引等等。为了避免混乱，本文将只关注于BTree索引，因为这是平常使用MySQL时主要打交道的索引，至于哈希索引和全文索引本文暂不讨论。

文章主要内容分为三个部分。

第...]]></description><category></category></item><item><title><![CDATA[过滤器（Filter）与拦截器（Interceptor）]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105641882</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105641882</guid><author>Muscleape</author><pubDate>Mon, 20 Apr 2020 18:41:28 +0800</pubDate><description><![CDATA[过滤器（Filter）与拦截器（Interceptor）]]></description><category></category></item><item><title><![CDATA[MySQL JSON类型字段操作]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105641118</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105641118</guid><author>Muscleape</author><pubDate>Mon, 20 Apr 2020 18:08:58 +0800</pubDate><description><![CDATA[MySQL中JSON类型字段的操作]]></description><category></category></item><item><title><![CDATA[HashMap深度复制]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105638424</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105638424</guid><author>Muscleape</author><pubDate>Mon, 20 Apr 2020 16:46:06 +0800</pubDate><description><![CDATA[需要复制一个对象，但是普通的复制方法都是浅拷贝的方式]]></description><category></category></item><item><title><![CDATA[跨域处理]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105638309</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105638309</guid><author>Muscleape</author><pubDate>Mon, 20 Apr 2020 16:31:03 +0800</pubDate><description><![CDATA[Java中对跨域问题的处理方式]]></description><category></category></item><item><title><![CDATA[git stash 临时存一下]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105638015</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105638015</guid><author>Muscleape</author><pubDate>Mon, 20 Apr 2020 16:25:59 +0800</pubDate><description><![CDATA[当前分支的代码未开发完（提交会异常），但是需要切换到别的分支上处理些紧急问题，为了避免提交本地代码影响其他同事的开发，或者是未保存导致本地代码丢失]]></description><category></category></item><item><title><![CDATA[git log配置浪起来]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105637491</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105637491</guid><author>Muscleape</author><pubDate>Mon, 20 Apr 2020 16:07:08 +0800</pubDate><description><![CDATA[git原生的log内容看起来杂乱无章，配置git log管道流的方式来展示]]></description><category></category></item><item><title><![CDATA[git-修改commit信息]]></title><link>https://blog.youkuaiyun.com/Muscleape/article/details/105637401</link><guid>https://blog.youkuaiyun.com/Muscleape/article/details/105637401</guid><author>Muscleape</author><pubDate>Mon, 20 Apr 2020 16:04:08 +0800</pubDate><description><![CDATA[修改commit信息主要有这几种情况
1.刚刚commit，还没有push，使用git commit --amend;
2.刚刚push，要修改最近一个push的commit信息，使用git commit --amend；
3.修改历史push的commit信息，使用git rebase -i HEAD~n【其中的n为记录数】，配合2中的命令


注意：
其中1、2两种情况的修改方式是一样的，但...]]></description><category></category></item></channel></rss>