<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zaskkk</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zaskkk]]></copyright><item><title><![CDATA[都9102年了，还不会Docker？10分钟带你从入门操作到实战上手]]></title><link>https://blog.youkuaiyun.com/zaskkk/article/details/84986840</link><guid>https://blog.youkuaiyun.com/zaskkk/article/details/84986840</guid><author>zaskkk</author><pubDate>Wed, 12 Dec 2018 10:48:00 +0800</pubDate><description><![CDATA[
  
    
            Docker简述
Docker是一种OS虚拟化技术，是一个开源的应用容器引擎。它可以让开发者将应用打包到一个可移植的容器中，并且该容器可以运行在几乎所有linux系统中（Windows10目前也原生支持，Win10前需要内置虚拟机），正所谓“一次打包，到处运行”。
Docker容器的运行是完全的沙箱机制，相互之间不会有任何关联（除非自己串联集群）。网络、存...]]></description><category></category></item><item><title><![CDATA[“过时”的SpringMVC我们到底在用什么？深入分析DispatchServlet源码]]></title><link>https://blog.youkuaiyun.com/zaskkk/article/details/84336570</link><guid>https://blog.youkuaiyun.com/zaskkk/article/details/84336570</guid><author>zaskkk</author><pubDate>Thu, 22 Nov 2018 11:40:58 +0800</pubDate><description><![CDATA[之前已经分析过了Spring的IOC(《零基础带你看Spring源码——IOC控制反转》)与AOP(《从源码入手，一文带你读懂Spring AOP面向切面编程》)的源码，本次就来分析下SpringMVC。本文先简述下目前SpringMVC的使用情况，然后通过Demo的简单让大家有一个初步的使用印象，然后带着印象去看其中执行的分发源码。
到底什么是Spring MVC，我们还在用吗？
Spring ...]]></description><category></category></item><item><title><![CDATA[Java多线程——锁概念与锁优化]]></title><link>https://blog.youkuaiyun.com/zaskkk/article/details/84099114</link><guid>https://blog.youkuaiyun.com/zaskkk/article/details/84099114</guid><author>zaskkk</author><pubDate>Thu, 15 Nov 2018 09:56:20 +0800</pubDate><description><![CDATA[为了性能与使用的场景，Java实现锁的方式有非常多。而关于锁主要的实现包含synchronized关键字、AQS框架下的锁，其中的实现都离不开以下的策略。
悲观锁与乐观锁

乐观锁。乐观的想法，认为并发读多写少。每次操作的时候都不上锁，直到更新的时候才通过CAS判断更新。对于AQS框架下的锁，初始就是乐观锁，若CAS失败则转化为悲观锁。
悲观锁。悲观的想法，认为并发写多读少。每次操作数据都上锁，即...]]></description><category></category></item><item><title><![CDATA[进阶的Redis之哈希分片原理与集群实战]]></title><link>https://blog.youkuaiyun.com/zaskkk/article/details/84076567</link><guid>https://blog.youkuaiyun.com/zaskkk/article/details/84076567</guid><author>zaskkk</author><pubDate>Mon, 12 Nov 2018 11:13:00 +0800</pubDate><description><![CDATA[前面介绍了《进阶的Redis之数据持久化RDB与AOF》和《进阶的Redis之Sentinel原理及实战》，这次来了解下Redis的集群功能，以及其中哈希分片原理。

集群分片模式

如果Redis只用复制功能做主从，那么当数据量巨大的情况下，单机情况下可能已经承受不下一份数据，更不用说是主从都要各自保存一份完整的数据。在这种情况下，数据分片是一个非常好的解决办法。

Redis的Cluster正...]]></description><category></category></item><item><title><![CDATA[进阶的Redis之数据持久化RDB与AOF]]></title><link>https://blog.youkuaiyun.com/zaskkk/article/details/84076561</link><guid>https://blog.youkuaiyun.com/zaskkk/article/details/84076561</guid><author>zaskkk</author><pubDate>Sun, 04 Nov 2018 22:27:00 +0800</pubDate><description><![CDATA[大家都知道，Redis之所以性能好，读写快，是因为Redis是一个内存数据库，它的操作都几乎基于内存。但是内存型数据库有一个很大的弊端，就是当数据库进程崩溃或系统重启的时候，如果内存数据不保存的话，里面的数据就会丢失不见了。这样的数据库并不是一个可靠的数据库。

所以数据的持久化是内存型数据库的重中之重。它不仅提供数据保存硬盘的功能，还可以借此用硬盘容量扩展数据存储空间，使得Redis的可以存储超...]]></description><category></category></item><item><title><![CDATA[浅谈分布式CAP定理]]></title><link>https://blog.youkuaiyun.com/zaskkk/article/details/84076555</link><guid>https://blog.youkuaiyun.com/zaskkk/article/details/84076555</guid><author>zaskkk</author><pubDate>Fri, 19 Oct 2018 10:21:00 +0800</pubDate><description><![CDATA[
  
    
            互联网发展到现在，由于数据量大、操作并发高等问题，大部分网站项目都采用分布式的架构。
而分布式系统最大的特点数据分散，在不同网络节点在某些时刻（数据未同步完，数据丢失），数据会不一致。
在2000年，Eric Brewer教授在PODC的研讨会上提出了一个猜想：一致性、可用性和分区容错性三者无法在分布式系统中被同时满足，并且最多只能满足其中两个！
在200...]]></description><category></category></item><item><title><![CDATA[Java异步编程——深入源码分析FutureTask]]></title><link>https://blog.youkuaiyun.com/zaskkk/article/details/84076551</link><guid>https://blog.youkuaiyun.com/zaskkk/article/details/84076551</guid><author>zaskkk</author><pubDate>Tue, 09 Oct 2018 11:51:00 +0800</pubDate><description><![CDATA[
  
    
            Java的异步编程是一项非常常用的多线程技术。
之前通过源码详细分析了ThreadPoolExecutor《你真的懂ThreadPoolExecutor线程池技术吗？看了源码你会有全新的认识》。通过创建一个ThreadPoolExecutor，往里面丢任务就可以实现多线程异步执行了。
但之前的任务主要倾向于线程池，并没有讲到异步编程方面的内容。本文将通过介...]]></description><category></category></item><item><title><![CDATA[一文了解JVM全部垃圾回收器，从Serial到ZGC]]></title><link>https://blog.youkuaiyun.com/zaskkk/article/details/84076548</link><guid>https://blog.youkuaiyun.com/zaskkk/article/details/84076548</guid><author>zaskkk</author><pubDate>Fri, 28 Sep 2018 16:20:00 +0800</pubDate><description><![CDATA[
  
    
            《对象搜索算法与回收算法》介绍了垃圾回收的基础算法，相当于垃圾回收的方法论。接下来就详细看看垃圾回收的具体实现。
上文提到过现代的商用虚拟机的都是采用分代收集的，不同的区域用不同的收集器。常用的7种收集器，其适用的范围如图所示







Serial、ParNew、Parallel Scavenge用于新生代；
CMS、Serial Old、Paral...]]></description><category></category></item><item><title><![CDATA[必知必会JVM垃圾回收——对象搜索算法与回收算法]]></title><link>https://blog.youkuaiyun.com/zaskkk/article/details/84076545</link><guid>https://blog.youkuaiyun.com/zaskkk/article/details/84076545</guid><author>zaskkk</author><pubDate>Thu, 27 Sep 2018 16:26:00 +0800</pubDate><description><![CDATA[
  
    
            垃圾回收（GC）是JVM的一大杀器，它使程序员可以更高效地专注于程序的开发设计，而不用过多地考虑对象的创建销毁等操作。但是这并不是说程序员不需要了解GC。GC只是Java编程中一项自动化工具，任何一个工具都有它适用的范围，当超出它的范围的时候，可能它将不是那么自动，而是需要人工去了解与适应地适用。
拥有一定工作年限的程序员，在工作期间肯定会经常碰到像内存溢...]]></description><category></category></item><item><title><![CDATA[从源码入手，一文带你读懂Spring AOP面向切面编程]]></title><link>https://blog.youkuaiyun.com/zaskkk/article/details/84076542</link><guid>https://blog.youkuaiyun.com/zaskkk/article/details/84076542</guid><author>zaskkk</author><pubDate>Fri, 14 Sep 2018 12:55:00 +0800</pubDate><description><![CDATA[
  
    
            之前《零基础带你看Spring源码——IOC控制反转》详细讲了Spring容器的初始化和加载的原理，后面《你真的完全了解Java动态代理吗？看这篇就够了》介绍了下JDK的动态代理。
基于这两者的实现上，这次来探索下Spring的AOP原理。虽然AOP是基于Spring容器和动态代理，但不了解这两者原理也丝毫不影响理解AOP的原理实现，因为大家起码都会用。
...]]></description><category></category></item><item><title><![CDATA[你真的完全了解Java动态代理吗？看这篇就够了]]></title><link>https://blog.youkuaiyun.com/zaskkk/article/details/84076537</link><guid>https://blog.youkuaiyun.com/zaskkk/article/details/84076537</guid><author>zaskkk</author><pubDate>Sun, 09 Sep 2018 13:24:00 +0800</pubDate><description><![CDATA[
  
    
            之前讲了《零基础带你看Spring源码——IOC控制反转》，本来打算下一篇讲讲Srping的AOP的，但是其中会涉及到Java的动态代理，所以先单独一篇来了解下Java的动态代理到底是什么，Java是怎么实现它的。
动态代理看起来好像是个什么高大上的名词，但其实并没有那么复杂，直接从字面就很容易理解。动态地代理，可以猜测一下它的含义，在运行时动态地对某些东...]]></description><category></category></item><item><title><![CDATA[零基础带你看Spring源码——IOC控制反转]]></title><link>https://blog.youkuaiyun.com/zaskkk/article/details/84076534</link><guid>https://blog.youkuaiyun.com/zaskkk/article/details/84076534</guid><author>zaskkk</author><pubDate>Sun, 09 Sep 2018 13:21:00 +0800</pubDate><description><![CDATA[
  
    
            本章开始来学习下Spring的源码，看看Spring框架最核心、最常用的功能是怎么实现的。
网上介绍Spring，说源码的文章，大多数都是生搬硬推，都是直接看来的观点换个描述就放出来。这并不能说有问题，但没有从一个很好的、容易切入的角度去了解学习。博主来尝试抛弃一些所知，从使用上入手，步步回溯源码去了解学习。
很多人会混乱IOC和DI的两个概念，其实这两者...]]></description><category></category></item><item><title><![CDATA[你真的懂ThreadPoolExecutor线程池技术吗？看了源码你会有全新的认识]]></title><link>https://blog.youkuaiyun.com/zaskkk/article/details/84076530</link><guid>https://blog.youkuaiyun.com/zaskkk/article/details/84076530</guid><author>zaskkk</author><pubDate>Sun, 09 Sep 2018 13:18:00 +0800</pubDate><description><![CDATA[
  
    
            Java是一门多线程的语言，基本上生产环境的Java项目都离不开多线程。而线程则是其中最重要的系统资源之一，如果这个资源利用得不好，很容易导致程序低效率，甚至是出问题。
有以下场景，有个电话拨打系统，有一堆需要拨打的任务要执行，首先肯定是考虑多线程异步去执行。假如我每执行一个拨打任务都new一个Thread去执行，当同时有1万个任务需要执行的时候，那么就会...]]></description><category></category></item><item><title><![CDATA[Java多线程——ReentrantReadWriteLock源码阅读]]></title><link>https://blog.youkuaiyun.com/zaskkk/article/details/84076526</link><guid>https://blog.youkuaiyun.com/zaskkk/article/details/84076526</guid><author>zaskkk</author><pubDate>Sun, 09 Sep 2018 13:15:00 +0800</pubDate><description><![CDATA[
  
    
            之前讲了《AQS源码阅读》和《ReentrantLock源码阅读》，本次将延续阅读下ReentrantReadWriteLock，建议没看过之前两篇文章的，先大概了解下，有些内容会基于之前的基础上阅读。
这个并不是ReentrantLock简单的升级，而是落地场景的优化，我们来详细了解下吧。
背景
JUC包里面已经有一个ReentrantLock了，为何还...]]></description><category></category></item><item><title><![CDATA[Java多线程——ReentrantLock源码阅读]]></title><link>https://blog.youkuaiyun.com/zaskkk/article/details/84076520</link><guid>https://blog.youkuaiyun.com/zaskkk/article/details/84076520</guid><author>zaskkk</author><pubDate>Sun, 09 Sep 2018 13:09:00 +0800</pubDate><description><![CDATA[
  
    
            上一章《AQS源码阅读》讲了AQS框架，这次讲讲它的应用类（注意不是子类实现，待会细讲）。
ReentrantLock，顾名思义重入锁，但什么是重入，这个锁到底是怎样的，我们来看看类的注解说明







ReentrantLock与隐式锁synchronized功能相同，但ReentrantLock更具有扩展性。
《锁优化》里提到Java在1.6对隐式...]]></description><category></category></item><item><title><![CDATA[Java多线程——AQS框架源码阅读]]></title><link>https://blog.youkuaiyun.com/zaskkk/article/details/84076515</link><guid>https://blog.youkuaiyun.com/zaskkk/article/details/84076515</guid><author>zaskkk</author><pubDate>Sun, 09 Sep 2018 13:00:00 +0800</pubDate><description><![CDATA[
  
    
            AQS，全称AbstractQueuedSynchronizer，是Concurrent包锁的核心，没有AQS就没有Java的Concurrent包。它到底是个什么，我们来看看源码的第一段注解是怎么说明





















看完第一段，总结下

AQS是一个同步的基础框架，基于一个先进先出的队列。
锁机制基于一个状态值，它是原子值。
...]]></description><category></category></item></channel></rss>