<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom">
  <title>Pleuvoir&#39;s notes</title>
  <id>http://pipe.b3log.org/blogs/Pleuvoir</id>
  <updated></updated>
  <subtitle>记录精彩的程序人生</subtitle>
  <link href="http://pipe.b3log.org/blogs/Pleuvoir"></link>
  <entry>
    <title>ArrayList源码分析</title>
    <updated>2016-08-25T08:00:00+08:00</updated>
    <id>tag:pipe.b3log.org,2016-08-25:/blogs/Pleuvoir/articles/2018/03/31/1522499737243</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/03/31/1522499737243" rel="alternate"></link>
    <summary type="html">ArrayList 源码分析 1.概览 publicclassArrayListextendsAbstractListimplementsList,RandomAccess,Cloneable,java.io.Serializable 实现了 RandomAccess 接口，也就是说支持随机访问，因为 ArrayList 是基于数组实现的。实际上查看 RandomAccess 的实现发现为空实现标记接口。文档提及，如果</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>java容器概览</title>
    <updated>2016-08-24T08:00:00+08:00</updated>
    <id>tag:pipe.b3log.org,2016-08-24:/blogs/Pleuvoir/articles/2018/03/31/1522500112967</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/03/31/1522500112967" rel="alternate"></link>
    <summary type="html">概览容器主要包括 Collection 和 Map 两种，Collection 又包含了 List、Set 以及 Queue。Collection1.Set-HashSet：基于哈希实现，支持快速查找，但不支持有序性操作，例如根据一个范围查找元素的操作。并且失去了元素的插入顺序信息，也就是说使用 Iterator 遍历 HashSet 得到的结果是不确定的。-TreeSet：基于红黑树实现，支持有序性操作，但是查找效率不如</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>deploy 项目到公共 Maven 仓库</title>
    <updated>2018-11-05T01:42:00+08:00</updated>
    <id>tag:pipe.b3log.org,2018-11-05:/blogs/Pleuvoir/articles/2018/11/04/1541467449552</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/11/04/1541467449552" rel="alternate"></link>
    <summary type="html">本文旨在记录在没有私有 maven 仓库的情况下，如何发布项目到公有仓库。以便在有网络的情况下，使用 maven 坐标获取。一、Sonatype 简介 Sonatype 使用 Nexus 为开源项目提供托管服务。你可以通过它发布快照(snapshot)或是稳定版(release)到 Maven 中央仓库。我们只要注册一个 Sonatype 的 JIRA 账号、创建一个 JIRAticket，然后对 POM 文件稍作配置即可。二、步骤 1</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>雨</title>
    <updated>2018-07-07T01:23:00+08:00</updated>
    <id>tag:pipe.b3log.org,2018-07-07:/blogs/Pleuvoir/articles/2018/07/07/1531193440330</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/07/07/1531193440330" rel="alternate"></link>
    <summary type="html">傍晚时分，突然下起了大雨，好在是没有起风，看这雨势丝毫没有黯淡下来的架势，我心知今日看房的计划只能作罢，便也不在急躁。待到雨势稍弱，仰仗着卢先生那把逼仄的小伞，便在雨中游走了起来。平日用来踩水坑的鞋自然派上了用场，只是为了配合他人，也装作急切的样子小跑起来。公交似乎知道了人们的窘迫，也是三步并作两步，及时接纳了我们。也许是车内外恍若隔世，或者是不那么新鲜的空气，一路的旅途略感沉闷，闲思杂虑也不由得滋</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>我与自我</title>
    <updated>2018-05-31T17:30:00+08:00</updated>
    <id>tag:pipe.b3log.org,2018-05-31:/blogs/Pleuvoir/articles/2018/05/31/1530587927712</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/05/31/1530587927712" rel="alternate"></link>
    <summary type="html">我与自我话题引入：「我反思自我」四重根体系叔本华哲学理论表象都属于四重根体系（需要了解一下主体和客体在理论中的具体含义）人（认识主体）：主体意识、感性、理性、悟性关系：动机率、存在率、因果律、认识律世界（客体）：主体意志、时空、物质、概念主体与客体的区分显然，这里的「我」指的就是认识主体了，自我则作为客体。「我」和「自我」之间是存在主被动关系的。「我」按照叔本华四重根理论则指的的主体意识、感性、理性</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>设计模式（观察者模式）</title>
    <updated>2016-10-20T08:00:00+08:00</updated>
    <id>tag:pipe.b3log.org,2016-10-20:/blogs/Pleuvoir/articles/2018/04/06/1522988608123</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/04/06/1522988608123" rel="alternate"></link>
    <summary type="html">观察者模式分离了观察者和被观察者自身的责任，让类各自维护自己的功能，提高了系统的可重用性。怎么做?通过使用 JDK 中提供的{@linkjava.util.Observable}以及{@linkjava.util.Observer}这两个类即可完成简单的观察者模式。代码示例：importjava.util.Observable;importjava.util.Observer;/***通过使用 JDK 中提</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>设计模式（工厂方法）-接口多态选择</title>
    <updated>2016-09-25T08:00:00+08:00</updated>
    <id>tag:pipe.b3log.org,2016-09-25:/blogs/Pleuvoir/articles/2018/03/31/1522467650369</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/03/31/1522467650369" rel="alternate"></link>
    <summary type="html">工厂模式（FactoryPattern）是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式，在工厂模式中，我们在创建对象时不会对客户端暴露创建逻辑，并且是通过使用一个共同的接口来指向新创建的对象。代码示例：接口 publicinterfaceChannelService{voidwechat();voidalipay();}具体的接口实现类 publicclassAchannelServ</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>设计模式（装饰者模式）-扩展原有功能</title>
    <updated>2016-09-20T08:00:00+08:00</updated>
    <id>tag:pipe.b3log.org,2016-09-20:/blogs/Pleuvoir/articles/2018/03/31/1522467650355</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/03/31/1522467650355" rel="alternate"></link>
    <summary type="html">装饰器模式（DecoratorPattern）允许向一个现有的对象添加新的功能，同时又不改变其结构。这种类型的设计模式属于结构型模式，它是作为现有的类的一个包装。这种模式创建了一个装饰类，用来包装原有的类，并在保持类方法签名完整性的前提下，提供了额外的功能。怎么做?新建一个类，该类耦合了需要装饰的类，将实现传递进来，保证原有功能的完整性。为了表明该类是某接口的包装类，所以一般声明为 abstract 类</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>设计模式（单接口适配器模式）-简化代码的一种方式</title>
    <updated>2016-09-19T08:00:00+08:00</updated>
    <id>tag:pipe.b3log.org,2016-09-19:/blogs/Pleuvoir/articles/2018/03/31/1522467650342</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/03/31/1522467650342" rel="alternate"></link>
    <summary type="html">单接口适配器模式是为了让子类实现时屏蔽掉不关心的方法，在子类、适配器、接口之间做一次过渡。比如子类想实现接口中某一个方法，但是接口中方法不止一个，此刻编译器强制子类必须实现该接口的所有方法，这显然是麻烦、不必要且不优雅的。那么此时选择单接口适配器模式则是一种解决方案。怎么做?其实特别简单：就是写一个类，实现某接口，给出默认实现。其实在 JDK8 的语法中已经给出了默认实现的方式，就是使用 default 关</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>设计模式（单例模式）-如何设计一个启动器</title>
    <updated>2016-09-18T08:00:00+08:00</updated>
    <id>tag:pipe.b3log.org,2016-09-18:/blogs/Pleuvoir/articles/2018/03/31/1522467650328</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/03/31/1522467650328" rel="alternate"></link>
    <summary type="html">单例模式的理论就不再描述了以下对自己喜欢的单例模式写法做个总结说明：常见实现常见的单例模式写法有多种，甄选之后比较喜欢如下两种：静态内部类枚举静态内部类来一段静态内部类实现 spring 容器启动器的代码，如何风骚的初始化 spring 容器。publicclassBootstrap{privatestaticfinalLoggerlogger=LoggerFactory.getLogger(Bootstr</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>spring相关工具类</title>
    <updated>2016-09-08T08:00:00+08:00</updated>
    <id>tag:pipe.b3log.org,2016-09-08:/blogs/Pleuvoir/articles/2018/03/31/1522467650301</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/03/31/1522467650301" rel="alternate"></link>
    <summary type="html">记录 Spring 相关工具类。1.方便的获取容器中的 Bean/***{@linkorg.springframework.context.ApplicationContext}包装类，方便获取容器中的 Bean*&amp;lt;p&amp;gt; 注意：需要在容器中注册后方可使用*@authorpleuvoir**/publicclassApplicationContextWrapimplementsApplicationContex</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>logback的配置</title>
    <updated>2016-09-02T08:00:00+08:00</updated>
    <id>tag:pipe.b3log.org,2016-09-02:/blogs/Pleuvoir/articles/2018/03/31/1522467650288</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/03/31/1522467650288" rel="alternate"></link>
    <summary type="html">记录一下 logback 的配置，方便以后 copypaste1.maven 坐标 &amp;lt;properties&amp;gt;&amp;lt;slf4j.version&amp;gt;1.7.19&amp;lt;/slf4j.version&amp;gt;&amp;lt;logback.version&amp;gt;1.1.3&amp;lt;/logback.version&amp;gt;&amp;lt;/properties&amp;gt;&amp;lt;!--日志--&amp;gt;&amp;lt;dependency&amp;gt;&amp;lt;groupId&amp;gt;org.slf4j&amp;lt;/groupId&amp;gt;&amp;lt;artifactId&amp;gt;s</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>debug源码的方法</title>
    <updated>2016-08-25T08:00:00+08:00</updated>
    <id>tag:pipe.b3log.org,2016-08-25:/blogs/Pleuvoir/articles/2018/03/31/1522467650275</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/03/31/1522467650275" rel="alternate"></link>
    <summary type="html">1.maven 配置 2.通过 maven 下 Jar 包源码选中项目右键 run-&amp;gt;Mavenbuild...Goals 中输入 dependency:sources，注意项目不要选错然后点 run，查看 console 等待 maven 下载完毕项目中所有引用的 jar 包即可。</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>maven下载jar包脚本</title>
    <updated>2016-08-24T08:00:00+08:00</updated>
    <id>tag:pipe.b3log.org,2016-08-24:/blogs/Pleuvoir/articles/2018/03/31/1522467650264</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/03/31/1522467650264" rel="alternate"></link>
    <summary type="html">前置条件：需要正确配置 maven 环境 1.新建 pom.xml&amp;lt;?xmlversion=&#34;1.0&#34;?&amp;gt;&amp;lt;projectxmlns=&#34;http://maven.apache.org/POM/4.0.0&#34;xmlns:xsi=&#34;http://www.w3.org/2001/XMLSchema-instance&#34;xsi:schemaLocation=&#34;http://maven.apache.org/POM/4.</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>Java-8语法🐤</title>
    <updated>2016-07-06T08:00:00+08:00</updated>
    <id>tag:pipe.b3log.org,2016-07-06:/blogs/Pleuvoir/articles/2018/03/31/1522469300740</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/03/31/1522469300740" rel="alternate"></link>
    <summary type="html">Java-8-TutorialsforEachmap//1.7Map&amp;lt;String,Object&amp;gt;map=newHashMap&amp;lt;&amp;gt;();map.put(&#34;A&#34;,&#34;map-A&#34;);map.put(&#34;B&#34;,&#34;map-B&#34;);map.put(&#34;C&#34;,&#34;map-C&#34;);map.put(&#34;D&#34;,&#34;map-D&#34;);for(Entry&amp;lt;String,Object&amp;gt;entry:map.entrySet()){Sys</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>一个简易的图片爬虫玩具</title>
    <updated>2016-07-06T08:00:00+08:00</updated>
    <id>tag:pipe.b3log.org,2016-07-06:/blogs/Pleuvoir/articles/2018/03/31/1522467650239</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/03/31/1522467650239" rel="alternate"></link>
    <summary type="html">准备工作字符串保存为文件 defsave(filename,contents):fh=open(filename,&#39;w&#39;,encoding=&#39;utf-8&#39;)fh.write(contents)fh.close()从 URL 读取并保存二进制文件 defread_and_save_file(url,newFileName):r=requests.get(url)withopen(newFileName,&#39;wb</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>python基础语法</title>
    <updated>2016-07-05T08:00:00+08:00</updated>
    <id>tag:pipe.b3log.org,2016-07-05:/blogs/Pleuvoir/articles/2018/03/31/1522467650224</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/03/31/1522467650224" rel="alternate"></link>
    <summary type="html">定义方法返回多个参数#求 list 元素之和 defsquare_of_sum(L):constant=0sum_=0forxinL:sum_+=x*xreturnsum_,constantprint(square_of_sum([1,2,3,4,5]))a,b=square_of_sum([1,2,3,4,5])print(a,b)结果:(55,0)550python 的函数返回多值其实就是返回一个 tup</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
  <entry>
    <title>java中类与对象的加载顺序</title>
    <updated>2016-03-02T08:00:00+08:00</updated>
    <id>tag:pipe.b3log.org,2016-03-02:/blogs/Pleuvoir/articles/2018/03/31/1522467650197</id>
    <link href="http://pipe.b3log.org/blogs/Pleuvoir/articles/2018/03/31/1522467650197" rel="alternate"></link>
    <summary type="html">1.何时会初始化类?主动 new 调用类的静态方法操作类或接口的静态属性或者为其赋值反射操作指定一个类作为 Java 虚拟机启动时的初始化类。初始化一个类的子类同样会初始化它的父类以上均为初始化类的手段。2.加载顺序是什么?创建两个类：父类 Parent，子类 Child 继承父类 Parent 用于演示初始化子类时对父类的影响。publicclassParent{staticStringparenntName=&#34;P</summary>
    <author>
      <name>Pleuvoir</name>
    </author>
  </entry>
</feed>