<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[away_lit的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/away_lit</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; away_lit]]></copyright><item><title><![CDATA[skiplist]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/94763922</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/94763922</guid><author>away_lit</author><pubDate>Fri, 05 Jul 2019 20:59:03 +0800</pubDate><description><![CDATA[package com.ls.hfvj;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * 跳表：实现对有序链表的类似二分查找 
 * 思路:&lt;node,nodelevel&gt;二元组共同确定了下一个候选结点c...]]></description><category></category></item><item><title><![CDATA[maven6 属性]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/93380602</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/93380602</guid><author>away_lit</author><pubDate>Sun, 23 Jun 2019 13:55:45 +0800</pubDate><description><![CDATA[原文：https://www.cnblogs.com/EasonJim/p/6815365.html?tdsourcetag=s_pcqq_aiomsg

引用官方的说明https://maven.apache.org/pom.html#Properties：

Properties

属性是了解POM基础知识的最后一个要素。Maven属性是值占位符，如Ant中的属性。它们的值可以通过使用符号${...]]></description><category></category></item><item><title><![CDATA[maven 7 快照版本]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/93380546</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/93380546</guid><author>away_lit</author><pubDate>Sun, 23 Jun 2019 13:50:48 +0800</pubDate><description><![CDATA[原文：http://www.huangbowen.net/blog/2016/01/29/understand-official-version-and-snapshot-version-in-maven/

Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准，Maven的替代者Gradle也基本沿用了Maven的依赖管理机制。在Maven依赖管理中，唯一标识一个依赖项是由该依...]]></description><category></category></item><item><title><![CDATA[maven5 依赖域scope]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/93380439</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/93380439</guid><author>away_lit</author><pubDate>Sun, 23 Jun 2019 13:38:09 +0800</pubDate><description><![CDATA[Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中，scope的默认值是compile，项目中经常傻傻的分不清，直接默认了。今天梳理一下maven的scope。

scope的分类
compile
默认就是compile，什么都不配置也就是意味着compile。compile表示被依赖项目需要参与当前项目的编译，当然后续...]]></description><category></category></item><item><title><![CDATA[base64编码实现]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/92428172</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/92428172</guid><author>away_lit</author><pubDate>Sun, 16 Jun 2019 20:54:59 +0800</pubDate><description><![CDATA[package com.ls.hfvj;

/**
 * 思路:base64只有64个字符，因此只需要6个二进制位来表示 实现:每3个字节为一组凑4个base64字符。
 * 多余一个字节补4个0bit位(共12位)，凑成2个base64字符；多余两个字节补2个bit位(共18位)，凑成3个base64字符。
 * 为了知道添加了bit位,(便于解码)，一个=表示添加了2个bit位，两个=表示添...]]></description><category></category></item><item><title><![CDATA[protobuf varint编解码实现]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/92427770</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/92427770</guid><author>away_lit</author><pubDate>Sun, 16 Jun 2019 20:52:00 +0800</pubDate><description><![CDATA[varint：int数字用变长字节数组表示。


package com.ls.hfvj;

import java.util.Arrays;

/**
 * varint:把整数用变长字节数组表示，每个int用1-5个byte表示。一个字节内，低7位是有效数据位，第8位是标识位，1表示有后续字节，0则表示该整数的结束没有后续字节。
 * 当整数是小正数时，得到的字节序列明显比较小一些。
 * 编...]]></description><category></category></item><item><title><![CDATA[网络编程基础]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/92412351</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/92412351</guid><author>away_lit</author><pubDate>Sun, 16 Jun 2019 17:45:51 +0800</pubDate><description><![CDATA[基本内容：NIO，unix五种网络编程模型，大小端模式，读写缓冲区与死锁，future模式基本雏形

1.NIO与BIO

BIO：同步阻塞IO。接收一个客户端连接请求时，新建一个线程为该客户端服务；在客户端释放连接前，该线程将一直被该客户端占用；当客户端释放连接时，该线程被销毁。线程数与并发量呈1:1的关系。问题：1.存在高占用问题、2.大量创建/销毁线程的资源消耗、3.服务器响应缓慢，...]]></description><category></category></item><item><title><![CDATA[maven4 常用插件]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/92017348</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/92017348</guid><author>away_lit</author><pubDate>Sat, 15 Jun 2019 00:31:55 +0800</pubDate><description><![CDATA[基本内容：1.maven-compiler-plugin编译插件、2.spring-boot-maven-plugin打包插件、3.autoconfig-maven-plugin
maven-compiler-plugin编译插件
1.该插件用于编译项目源代码。maven3.0以后，默认用javax.tools.JavaCompiler编译器编译源代码(jdk1.6之后默认的编译器)。如果想强制该...]]></description><category></category></item><item><title><![CDATA[maven2 生命周期与插件]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/90652717</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/90652717</guid><author>away_lit</author><pubDate>Wed, 29 May 2019 01:13:12 +0800</pubDate><description><![CDATA[原文：https://blog.youkuaiyun.com/worn_xiao/article/details/80875489

maven插件生命周期

Maven作为一个构建工具由于遵循了约定优于配置的原则，只要编写比Ant所需少得多的脚本就能实现同样的构建。并且Maven还有很多Ant没有的高级特性，例如依赖管理等，这一切使得Maven不仅是构建工具，更是项目管理工具，并越发流行起来。

由于Mav...]]></description><category></category></item><item><title><![CDATA[maven1 maven生命周期详解]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/90652131</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/90652131</guid><author>away_lit</author><pubDate>Wed, 29 May 2019 00:55:43 +0800</pubDate><description><![CDATA[原文:https://juvenshun.iteye.com/blog/213959

1.Maven强大的一个重要的原因是它有一个十分完善的生命周期模型(lifecycle)，这个生命周期可以从两方面来理解，第一，顾名思义，运行Maven的每个步骤都由它来定义的，这种预定义的默认行为使得我们使用Maven变得简单，相比而言，Ant的每个步骤都要你手工去定义。第二，这个模型是一种标准，在不同的项目...]]></description><category></category></item><item><title><![CDATA[设计模式]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/90523420</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/90523420</guid><author>away_lit</author><pubDate>Fri, 24 May 2019 21:40:27 +0800</pubDate><description><![CDATA[基本内容：模板方法模式AQS、主题观察者模式(事件源-事件监听器)、责任链模式(netty handle链)、策略模式(spi)、状态模式、装饰者模式(io流)、代理模式(dubbo invoke)、桥接模式(slf4切换底层实现的桥接包)、适配器模式、外观模式、单例模式、bulid建造器模式

1.模板方法模式：父类定义算法骨架，具体实现延迟到子类实现，子类可以自由的替换某个小步骤的实现。如AQ...]]></description><category></category></item><item><title><![CDATA[kafka]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/85849333</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/85849333</guid><author>away_lit</author><pubDate>Wed, 01 May 2019 21:06:41 +0800</pubDate><description><![CDATA[基本内容：消息中间件优点、pull消费模型优点、分区模型意义、reblance分区分配算法(range,round,sticky)、reblance触发条件、消费者如何优雅退出、可靠性(精确一次语义、副本集)、物理存储

1.消息中间件优点：解耦，削峰，异步。

2.pull消费模型优点：

a.push模型与poll模型对比

1.push模型：服务端主动推送数据给客户端。

优点：

  ...]]></description><category></category></item><item><title><![CDATA[Netty]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/80579030</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/80579030</guid><author>away_lit</author><pubDate>Tue, 05 Jun 2018 19:55:36 +0800</pubDate><description><![CDATA[基本内容：链路有效性与心跳检测、内存池、主从reactor模型、直接内存与堆内存、源码分析(fastthreadlocal为什么快、对象池之recycle)

1.心跳检测：

  (a)目的：链路的有效性检测一般采用心跳检测，确认通信对方是否还活着能够继续正常发送/接收消息。

(b)两类基本心跳检测机制：1.ping-pong机制，若连续N个周期发送ping而没有收到对方的pong...]]></description><category></category></item><item><title><![CDATA[redis]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/80215052</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/80215052</guid><author>away_lit</author><pubDate>Tue, 08 May 2018 14:14:00 +0800</pubDate><description><![CDATA[基本内容：redis特点，优点、redis持久化，主从复制、领导者选举算法、redis缓存穿透，雪崩，热点key及解决方案、redis缓存更新策略、分布式锁的几种实现方式db/redis/zk。

redis特点，优点：内存数据库、后端缓存、单线程。加速客户端读写速度、降低后端服务器，数据库服务器的读/写压力。

redis持久化：

  redis是内存数据库，它把数据保存在内存中，这样再加...]]></description><category></category></item><item><title><![CDATA[操作系统]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/80045271</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/80045271</guid><author>away_lit</author><pubDate>Thu, 26 Apr 2018 23:14:49 +0800</pubDate><description><![CDATA[几个问题：中断，异常，陷入、操作系统的4个基本特征、说说中断机制、说说进程与线程、5种进程调度算法、说说死锁、优先级反转问题及解决、说说虚存、5种页面置换算法、磁盘调度算法、链接。中断，异常，陷入：操作系统为了及时对中断进行相应，在进程执行过程中，如果检测到中断信号，先陷入内核态执行中断处理程序，完成后再切换到用户态继续运行当前进程。为了与外部事件引起的中断相区别，把内部事件引起的中断叫做异常。因...]]></description><category></category></item><item><title><![CDATA[JSP/Servlet]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/79736465</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/79736465</guid><author>away_lit</author><pubDate>Thu, 29 Mar 2018 00:58:36 +0800</pubDate><description><![CDATA[1.Jsp与Servlet    当接收到一个请求时，将.jsp文件转化为.class文件，加载.class文件，在内存中构造Servlet对象，执行处理方法，把输出作为响应体内容。    一般情况下，Jsp引擎会检查.jsp文件对应的Servlet类是否已经存在，并且检查.jsp的更新日期是否早于Servlet。如果.jsp的更新日期是否早于Servlet，那么容器就可以确定.jsp文件没有被修...]]></description><category></category></item><item><title><![CDATA[Java集合容器]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/79706754</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/79706754</guid><author>away_lit</author><pubDate>Tue, 27 Mar 2018 01:53:38 +0800</pubDate><description><![CDATA[基本内容：ArrayList、HashMap、HashSet、TreeMap、LinkedHashMap、ConcurrentHashMap

1.ArrayList，支持随机访问，插入删除操作时间复杂度为O(n)。

 (a) 默认初始容量为10：private static final int DEFAULT_CAPACITY = 10;

 (b)扩容时，扩充为原来的1.5倍：i...]]></description><category></category></item><item><title><![CDATA[计算机网络]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/79706746</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/79706746</guid><author>away_lit</author><pubDate>Tue, 27 Mar 2018 01:24:56 +0800</pubDate><description><![CDATA[TCP,UDP各自特点，优缺点，TCP可靠传输/滑动窗口/流量控制/拥塞控制、OSI分层结构。

 TCP：面向连接，提供可靠传输；把用户数据报拆分封装成为报文；适合传输大量数据，对可靠性要求较高的场景。

  UDP：非面向连接，不可靠；不拆分用户数据报，直接加UDP头；适合传输少量数据，对可靠性要求不高的场景。

  UDP没有建立/释放连接、可靠传输、拥塞控制等过程，速度更快。...]]></description><category></category></item><item><title><![CDATA[leetcode200. Number of Islands(DFS，BFS，UnionFound)]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/79697344</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/79697344</guid><author>away_lit</author><pubDate>Mon, 26 Mar 2018 14:07:50 +0800</pubDate><description><![CDATA[独立连通分量的个数: class Solution {
    	private char[][] grid;
        public int numIslands(char[][] grid) {
            if(grid.length==0){
                return 0;
            }
            this.grid=gri...]]></description><category></category></item><item><title><![CDATA[Java并发(2)一些基本问题]]></title><link>https://blog.youkuaiyun.com/away_lit/article/details/79692738</link><guid>https://blog.youkuaiyun.com/away_lit/article/details/79692738</guid><author>away_lit</author><pubDate>Mon, 26 Mar 2018 00:54:21 +0800</pubDate><description><![CDATA[一些问题：synchronized原理，特点、volatile的作用、如何提升索性能、各种锁的适用场景、CAS描述 ,ABA问题的产生及解决方案、银行家算法的过程、缺点。

1.Java的线程安全

    当对个线程访问同一个对象时，不管运行时环境采用何种方式调度或者这些线程如何交替执行，也不需要进行额外的同步或协同，这个类都能表现出正确的行为，那么就称这个类是线程安全的。

2线程安全三要素：...]]></description><category></category></item></channel></rss>