<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom">
  <title>Ethan 的博客</title>
  <id>http://pipe.b3log.org/blogs/Ethan</id>
  <updated></updated>
  <subtitle>记录精彩的程序人生</subtitle>
  <link href="http://pipe.b3log.org/blogs/Ethan"></link>
  <entry>
    <title>InnoDB记录存储结构</title>
    <updated>2019-05-21T09:59:26+08:00</updated>
    <id>tag:pipe.b3log.org,2019-05-21:/blogs/Ethan/articles/2019/05/21/1558403966023</id>
    <link href="http://pipe.b3log.org/blogs/Ethan/articles/2019/05/21/1558403966023" rel="alternate"></link>
    <summary type="html">准备工作到现在为止，MySQL 对于我们来说还是一个黑盒，我们只负责使用客户端发送请求并等待服务器返回结果，表中的数据到底存到了哪里？以什么格式存放的？MySQL 是以什么方式来访问的这些数据？这些问题我们统统不知道，对于未知领域的探索向来就是社会主义核心价值观中的一部分，作为新一代社会主义接班人，不把它们搞懂怎么支援祖国建设呢？我们前边唠叨请求处理过程的时候提到过，MySQL 服务器上负责对表中数据的读</summary>
    <author>
      <name>Ethan</name>
    </author>
  </entry>
  <entry>
    <title>SpringBoot配置文件加载5大结论</title>
    <updated>2019-01-30T10:10:06+08:00</updated>
    <id>tag:pipe.b3log.org,2019-01-30:/blogs/Ethan/articles/2019/01/30/1548814205554</id>
    <link href="http://pipe.b3log.org/blogs/Ethan/articles/2019/01/30/1548814205554" rel="alternate"></link>
    <summary type="html">结论 1@Value+@Profile 注解@Value+@Profile 注解可以动态读取 SpringBoot 的 application 配置文件属性值，不能读取自定义配置文件属性值。如果找不到启动时就会报错。结论 2@Value+@Profile+@PropertySource 注解@Value+@Profile+@PropertySource 注解可以读取@PropertySource 注解指定的配置文件属性值</summary>
    <author>
      <name>Ethan</name>
    </author>
  </entry>
  <entry>
    <title>接口、抽象类的继承与实现和执行顺序详解</title>
    <updated>2019-01-10T14:37:33+08:00</updated>
    <id>tag:pipe.b3log.org,2019-01-10:/blogs/Ethan/articles/2019/01/10/1547102253407</id>
    <link href="http://pipe.b3log.org/blogs/Ethan/articles/2019/01/10/1547102253407" rel="alternate"></link>
    <summary type="html">接口的继承和实现接口的继承接口可以继承接口，而且可以多继承，只有类继承类才是单继承。publicinterfacePerson{Stringage=&#34;24&#34;;voidage();}publicinterfaceSuperMan{Stringname=&#34;张三&#34;;voidname();}publicinterfaceFatherextendsSuperMan,Person{}同时子接口不需要重写父接口的</summary>
    <author>
      <name>Ethan</name>
    </author>
  </entry>
  <entry>
    <title>MySQL 事务隔离级别详解</title>
    <updated>2018-12-11T13:47:18+08:00</updated>
    <id>tag:pipe.b3log.org,2018-12-11:/blogs/Ethan/articles/2018/12/11/1544507238131</id>
    <link href="http://pipe.b3log.org/blogs/Ethan/articles/2018/12/11/1544507238131" rel="alternate"></link>
    <summary type="html">一、四大特性原子性事务必须是原子工作单元；对于其数据修改，要么全都执行，要么全都不执行。通常，与某个事务关联的操作具有共同的目标，并且是相互依赖的。如果系统只执行这些操作的一个子集，则可能会破坏事务的总体目标。原子性消除了系统处理操作子集的可能性。一致性事务在完成时，必须使所有的数据都保持一致状态。在相关数据库中，所有规则都必须应用于事务的修改，以保持所有数据的完整性。事务结束时，所有的内部数据结构</summary>
    <author>
      <name>Ethan</name>
    </author>
  </entry>
  <entry>
    <title>mysql 锁机制了解一下</title>
    <updated>2018-08-31T09:13:17+08:00</updated>
    <id>tag:pipe.b3log.org,2018-08-31:/blogs/Ethan/articles/0001/01/01/1535677993719</id>
    <link href="http://pipe.b3log.org/blogs/Ethan/articles/0001/01/01/1535677993719" rel="alternate"></link>
    <summary type="html">大家有没有什么关于 mysql 锁机制的好书推荐一下，或者上线到链书也可以！留下您的宝贵意见......</summary>
    <author>
      <name>Ethan</name>
    </author>
  </entry>
  <entry>
    <title>深入浅出java常量池</title>
    <updated>2018-06-25T15:09:26+08:00</updated>
    <id>tag:pipe.b3log.org,2018-06-25:/blogs/Ethan/articles/2018/06/25/1529910565515</id>
    <link href="http://pipe.b3log.org/blogs/Ethan/articles/2018/06/25/1529910565515" rel="alternate"></link>
    <summary type="html">jvm 虚拟内存分布：程序计数器是 jvm 执行程序的流水线，存放一些跳转指令。本地方法栈是 jvm 调用操作系统方法所使用的栈。虚拟机栈是 jvm 执行 java 代码所使用的栈。方法区存放了一些常量、静态变量、类信息等，可以理解成 class 文件在内存中的存放位置。虚拟机堆是 jvm 执行 java 代码所使用的堆。Java 中的常量池，实际上分为两种形态：静态常量池和运行时常量池所谓静态常量池，即.class 文件中的常量池</summary>
    <author>
      <name>Ethan</name>
    </author>
  </entry>
  <entry>
    <title>深入理解JVM : Java内存区域划分</title>
    <updated>2018-06-25T09:15:03+08:00</updated>
    <id>tag:pipe.b3log.org,2018-06-25:/blogs/Ethan/articles/2018/06/25/1529889303411</id>
    <link href="http://pipe.b3log.org/blogs/Ethan/articles/2018/06/25/1529889303411" rel="alternate"></link>
    <summary type="html">Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分为若干个不同的数据区域。java 虚拟机运行时数据区一、程序计数器程序计数器可以看做是当前线程所执行的字节码的行号指示器。在 JVM 的概念模型里，字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。由于 JVM 的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的，为了在线程切换后能恢复到正确的执行位置，每条线程都</summary>
    <author>
      <name>Ethan</name>
    </author>
  </entry>
  <entry>
    <title>SpringBoot-自动配置源码解析</title>
    <updated>2018-04-27T16:04:14+08:00</updated>
    <id>tag:pipe.b3log.org,2018-04-27:/blogs/Ethan/articles/2018/04/27/1524816254388</id>
    <link href="http://pipe.b3log.org/blogs/Ethan/articles/2018/04/27/1524816254388" rel="alternate"></link>
    <summary type="html">接着上一篇博客《SpringBoot-快速搭建 WEB 工程》提出的需要分析的三个方面：我们来深入的探究 SpringBoot 是如何在没有一个配置文件的情况下为我们启动好一个完整的 WEB 工程的，首先我们从@SpringBootApplication 开始这里的分析会剖出一些次要的信息沿着主干走，所以可能会有一些略过的地方。以下源码截取自 spring-boot-1.4.0.RELEASE@Target(Ele</summary>
    <author>
      <name>Ethan</name>
    </author>
  </entry>
  <entry>
    <title>SpringBoot-启动流程分析</title>
    <updated>2018-04-27T15:56:01+08:00</updated>
    <id>tag:pipe.b3log.org,2018-04-27:/blogs/Ethan/articles/2018/04/27/1524815761201</id>
    <link href="http://pipe.b3log.org/blogs/Ethan/articles/2018/04/27/1524815761201" rel="alternate"></link>
    <summary type="html">从 SpringApplication.run();开始：/***Statichelperthatcanbeusedtoruna{@link*SpringApplication}fromthe*specifiedsourceusingdefaultsettings.*@paramsourcethesourcetoload*@paramargstheapplicationarguments(usuall</summary>
    <author>
      <name>Ethan</name>
    </author>
  </entry>
  <entry>
    <title>利用Markdown创建表格</title>
    <updated>2018-04-27T15:16:39+08:00</updated>
    <id>tag:pipe.b3log.org,2018-04-27:/blogs/Ethan/articles/2018/04/27/1524813398993</id>
    <link href="http://pipe.b3log.org/blogs/Ethan/articles/2018/04/27/1524813398993" rel="alternate"></link>
    <summary type="html">Markdown 作为一种轻量级书写/写作语言，并没有提供很好的排版、编辑等功能。因此，如果想要利用 Markdown 创建表格（特别是复杂表格），其实是一项不太轻松的事情。经过笔者在简书平台上的测试与其他若干帖子的表述，Markdown 应是只提供了最简单的创建表格与内容对齐方式的功能。总结而言，有如下两种最为直观的创建表格方式：简单方式 Name|Academy|score-|:-:|-:HarryPot</summary>
    <author>
      <name>Ethan</name>
    </author>
  </entry>
  <entry>
    <title>Java注解用法详解——@SuppressWarnings</title>
    <updated>2018-04-27T14:17:14+08:00</updated>
    <id>tag:pipe.b3log.org,2018-04-27:/blogs/Ethan/articles/2018/04/27/1524809833918</id>
    <link href="http://pipe.b3log.org/blogs/Ethan/articles/2018/04/27/1524809833918" rel="alternate"></link>
    <summary type="html">一、前言编码时我们总会发现如下变量未被使用的警告提示：上述代码编译通过且可以运行，但每行前面的“感叹号”就严重阻碍了我们判断该行是否设置的断点了。这时我们可以在方法前添加@SuppressWarnings(&#34;unused&#34;)去除这些“感叹号”。**二、@SuppressWarings 注解****作用：用于抑制编译器产生警告信息。**示例 1——抑制单类型的警告：@SuppressWarnings(&#34;u</summary>
    <author>
      <name>Ethan</name>
    </author>
  </entry>
  <entry>
    <title>Spring Boot 特性 —— SpringApplication</title>
    <updated>2018-04-27T13:35:43+08:00</updated>
    <id>tag:pipe.b3log.org,2018-04-27:/blogs/Ethan/articles/2018/04/27/1524807342507</id>
    <link href="http://pipe.b3log.org/blogs/Ethan/articles/2018/04/27/1524807342507" rel="alternate"></link>
    <summary type="html">使用 SpringApplication 引导项目启动 SpringApplication 类为我们引导项目提供了一种便利的方式——通过 main()方法直接启动。大多数情况下，我们可以把项目启动这个任务直接委托给 SpringApplication.run 方法：publicstaticvoidmain(String\[\]args){SpringApplication.run(MySpringConfigur</summary>
    <author>
      <name>Ethan</name>
    </author>
  </entry>
  <entry>
    <title>Springboot 之 使用POI导出Excel文件</title>
    <updated>2018-04-27T10:53:05+08:00</updated>
    <id>tag:pipe.b3log.org,2018-04-27:/blogs/Ethan/articles/2018/04/27/1524797585177</id>
    <link href="http://pipe.b3log.org/blogs/Ethan/articles/2018/04/27/1524797585177" rel="alternate"></link>
    <summary type="html">创建表头信息表头信息用于自动生成表头结构及排序 publicclassExcelHeaderimplementsComparable&amp;lt;ExcelHeader&amp;gt;{/***excel 的标题名称*/privateStringtitle;/***每一个标题的顺序*/privateintorder;/***说对应方法名称*/privateStringmethodName;publicStringgetTitle</summary>
    <author>
      <name>Ethan</name>
    </author>
  </entry>
  <entry>
    <title>spring-boot:简述springboot启动流程</title>
    <updated>2018-04-27T10:31:20+08:00</updated>
    <id>tag:pipe.b3log.org,2018-04-27:/blogs/Ethan/articles/2018/04/27/1524796280260</id>
    <link href="http://pipe.b3log.org/blogs/Ethan/articles/2018/04/27/1524796280260" rel="alternate"></link>
    <summary type="html">正文说 springboot 的启动流程当然少不了 springboot 启动入口类@SpringBootApplicationpublicclassSpringBootWebApplication{publicstaticvoidmain(String[]args){SpringApplicationapplication=newSpringApplication(SpringBootWebApplica</summary>
    <author>
      <name>Ethan</name>
    </author>
  </entry>
  <entry>
    <title>Springboot 之 POI导出Word文件</title>
    <updated>2018-04-26T10:20:11+08:00</updated>
    <id>tag:pipe.b3log.org,2018-04-26:/blogs/Ethan/articles/2018/04/26/1524709211471</id>
    <link href="http://pipe.b3log.org/blogs/Ethan/articles/2018/04/26/1524709211471" rel="alternate"></link>
    <summary type="html">导出 Word 文件其实与 Springboot 没有多大关系，这都是 Apache 子项目 POI 的功劳。下面简单介绍一下在 Springboot 项目中如何使用 POI 导出 Word 文件。关键的依赖是 poi 的 jar 包：org.apache.poipoi3.15org.apache.poipoi-scratchpad3.15 创建 Word 模板文件创建一个 Word 文件，命名为：template.doc，内容如图：编写导出程</summary>
    <author>
      <name>Ethan</name>
    </author>
  </entry>
</feed>