<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ Manchester丶Lee]]></title><description><![CDATA[A little more, a little more.]]></description><link>https://blog.youkuaiyun.com/JBFDHDRG</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JBFDHDRG]]></copyright><item><title><![CDATA[ArrayList源码分析]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/103418036</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/103418036</guid><author>JBFDHDRG</author><pubDate>Fri, 06 Dec 2019 10:33:56 +0800</pubDate><description><![CDATA[ArrayList是一种最常用的集合类，底层数据结构是数组，提供动态扩展数组长度的特性，允许元素的值为null。ArrayList是一种非线程安全的集合类，若要在多线程的环境，需要注意同步问题，也可以使用Collections.synchronizedList()方法保证线程安全问题。
继承关系

构造方法
默认构造方法，创建一个空的数组对象
    public ArrayList() {
  ...]]></description><category></category></item><item><title><![CDATA[Java SPI]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/103400743</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/103400743</guid><author>JBFDHDRG</author><pubDate>Thu, 05 Dec 2019 10:59:03 +0800</pubDate><description><![CDATA[一、简介
SPI全称Service Provider Interface，它是JDK内置的一种可以动态发现服务的机制。通过这种方式，可以方便地将服务提供者与第三方实现客户端解耦。它主要包含三个基本组件：服务接口，提供者注册API以及服务访问API。
下面是Wikipedia的解释

服务是一组众所周知的接口和（通常是抽象的）类。服务提供者是服务的特定实现。提供程序中的类通常实现接口并子类化服务本身...]]></description><category></category></item><item><title><![CDATA[Spring Boot源码分析-配置文件加载原理]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/103400605</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/103400605</guid><author>JBFDHDRG</author><pubDate>Thu, 05 Dec 2019 10:54:59 +0800</pubDate><description><![CDATA[在Spring Boot源码分析-启动过程中我们进行了启动源码的分析，大致了解了整个Spring Boot的启动过程，具体细节这里不再赘述，感兴趣的同学可以自行阅读。今天让我们继续阅读源码，了解配置文件加载原理。

基于Spring Boot 2.1.0.RELEASE



在开始阅读源码之前，首先准备三个问题。

什么时候开始加载配置文件？
如何读取相关配置文件内容？
如何区分不同环境的配置？...]]></description><category></category></item><item><title><![CDATA[Spring Boot源码分析-启动过程]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/103400559</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/103400559</guid><author>JBFDHDRG</author><pubDate>Thu, 05 Dec 2019 10:53:43 +0800</pubDate><description><![CDATA[Spring Boot作为目前最流行的Java开发框架，秉承“约定优于配置”原则，大大简化了Spring MVC繁琐的XML文件配置，基本实现零配置启动项目。

本文基于Spring Boot 2.1.0.RELEASE版本了解Spring Boot如何启动



首先让我们看一下最简单的Spring Boot启动代码
@SpringBootApplication
public class Dem...]]></description><category></category></item><item><title><![CDATA[Spring Cloud Alibaba基础教程：Nacos服务发现与配置管理]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/103336438</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/103336438</guid><author>JBFDHDRG</author><pubDate>Sun, 01 Dec 2019 16:33:06 +0800</pubDate><description><![CDATA[随着微服务概念的流行，越来越多的公司采用Spring Cloud全家桶构建微服务系统，实现业务的快速迭代。Spring Cloud提供了快速构建分布式微服务常用组件，包括Spring Cloud Eureka、Spring Cloud Ribbon、Spring Cloud Hystrix、Spring Cloud Zuul等等。依赖Spring强大生态环境，其已经成为Java开发人员构建微服务系...]]></description><category></category></item><item><title><![CDATA[Spring Cloud Alibaba基础教程：Nacos服务发现与配置管理]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/103336115</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/103336115</guid><author>JBFDHDRG</author><pubDate>Sun, 01 Dec 2019 16:09:17 +0800</pubDate><description><![CDATA[随着微服务概念的流行，越来越多的公司采用Spring Cloud全家桶构建微服务系统，实现业务的快速迭代。Spring Cloud提供了快速构建分布式微服务常用组件，包括Spring Cloud Eureka、Spring Cloud Ribbon、Spring Cloud Hystrix、Spring Cloud Zuul等等。依赖Spring强大生态环境，其已经成为Java开发人员构建微服务系...]]></description><category></category></item><item><title><![CDATA[Spring Cloud Alibaba基础教程：Nacos服务发现与配置管理]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/103336031</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/103336031</guid><author>JBFDHDRG</author><pubDate>Sun, 01 Dec 2019 16:02:58 +0800</pubDate><description><![CDATA[随着微服务概念的流行，越来越多的公司采用Spring Cloud全家桶构建微服务系统，实现业务的快速迭代。Spring Cloud提供了快速构建分布式微服务常用组件，包括Spring Cloud Eureka、Spring Cloud Ribbon、Spring Cloud Hystrix、Spring Cloud Zuul等等。依赖Spring强大生态环境，其已经成为Java开发人员构建微服务系...]]></description><category></category></item><item><title><![CDATA[MessageDigest 使用注意，并发问题]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/54414689</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/54414689</guid><author>JBFDHDRG</author><pubDate>Sat, 14 Jan 2017 00:21:17 +0800</pubDate><description><![CDATA[说一下最近在开发过程中遇到加密相关的问题，先引用一段MD5的解释。百度百科 MD5
  Message Digest Algorithm MD5（中文名为消息摘要算法第五版）为计算机安全领域广泛使用的一种散列函数，用以提供消息的完整性保护。该算法的文件号为RFC 1321（R.Rivest,MIT Laboratory for Computer Science and RSA Data Securi]]></description><category></category></item><item><title><![CDATA[对于Fragment“懒加载”问题的一点点见解]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/53900345</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/53900345</guid><author>JBFDHDRG</author><pubDate>Tue, 27 Dec 2016 23:08:56 +0800</pubDate><description><![CDATA[1. 问题来源在开发过程中，或多或少会需要捕获与Fragment生命周期相关的一些事件，去做相关的数据初始化等其他操作，而Fragment的生命周期并不完全像Activity那样，两者之间还是有一些区别的。例如，我们想在用户第一次看到该Fragment的时候去加载该Fragment中的数据，并非每次用户看到Fragment都去加载数据，这时候就需要我们非常清楚Fragment的生命周期方法，才能实现]]></description><category></category></item><item><title><![CDATA[Android 通讯录导航栏]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/52888260</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/52888260</guid><author>JBFDHDRG</author><pubDate>Fri, 21 Oct 2016 23:31:23 +0800</pubDate><description><![CDATA[这几天无意间翻到之前写的一篇关于自定义通讯录导航栏的博客，文章中只是做了一点点简单介绍，写的并不完整。由于这段时间比较空闲，索性把整篇文章重新整理一遍。这样的一个控件实现起来不难，需要对自定义view有一定的基础，也要了解怎么实现一个集合的排序。大体思路很简单。
首先完成view的基本绘制以及相关的内部逻辑。
其次，就是要对联系人数据进行排序，即姓名首字母按26个英文字母进行排序，说道排序不得不说的]]></description><category></category></item><item><title><![CDATA[Google Espresso 环境搭建以及简单使用教程]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/52859197</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/52859197</guid><author>JBFDHDRG</author><pubDate>Wed, 19 Oct 2016 14:35:45 +0800</pubDate><description><![CDATA[2013 GTAC谷歌介绍了Android平台自动化测试框架“Espresso”(Video, Slides)，10月18号谷歌正式开放“Espresso”，使用Espresso可以写出简洁，漂亮并且可靠的Android UI测试。例如：@Test
public void greeterSaysHello() {
  onView(withId(R.id.name_field)).perform(t]]></description><category></category></item><item><title><![CDATA[TextView实现彩色闪动效果]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/52825694</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/52825694</guid><author>JBFDHDRG</author><pubDate>Sat, 15 Oct 2016 21:58:29 +0800</pubDate><description><![CDATA[开头闲扯几句，很长时间没有写博客，也怪自己没有一直保持这个习惯。其实写博客，对个人的提升是非常大的。不管你接触到多少新的知识点，记不住或者不理解，对于你的提升是非常有限的，但是如果你每天将自己新接触的到的东西写下来的话，不仅会让你更加深入的理解知识，还可以锻炼你的语言表达能力。
言归正传，TextView作为开发中最常见的UI控件，每个Android开发者都再熟悉不过了，那就直接进入主题。彩色 闪动]]></description><category></category></item><item><title><![CDATA[Android Support Library-标题栏(Toolbar)滚动效果]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/51884786</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/51884786</guid><author>JBFDHDRG</author><pubDate>Mon, 11 Jul 2016 23:08:29 +0800</pubDate><description><![CDATA[本文主要介绍如何使用CoordinatorLayout，AppBarLayout和Toolbar以及一个可滑动的view实现，指定view滑动时隐藏和显示Toobar，这样不仅可以扩大内容显示区域，还可以保留Toolbar。类似于YouTube Android客户端实现的效果。首先来个效果图 
注意事项之前我使用ListView作为滑动view的时候，一直都不成功，后来改用RecyclerView就]]></description><category></category></item><item><title><![CDATA[Android Support Library-FloatingActionButton]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/51870351</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/51870351</guid><author>JBFDHDRG</author><pubDate>Sun, 10 Jul 2016 10:21:06 +0800</pubDate><description><![CDATA[FloatingActionButton
  FloatingActionButton继承了ImageButton，是一种浮在UI上面的按钮。
简单使用
  使用起来比较简单，和普通的按钮比起来差别并不是很大，基本使用都差不多，看起来更加炫一点。
布局文件<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http:]]></description><category></category></item><item><title><![CDATA[Android Support Library-TextInputLayout]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/51870076</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/51870076</guid><author>JBFDHDRG</author><pubDate>Sun, 10 Jul 2016 09:11:34 +0800</pubDate><description><![CDATA[Android Support Library简介
  Android Support Library提供了许多向后兼容的新特性和非常有用的UI元素，这些并没有包含在Android Framework中。 
  如果想要使用此库需要在gradle中添加
使用这个库需要在gradle中添加
  compile ‘com.android.support:design:22.2.0’
TextInputL]]></description><category></category></item><item><title><![CDATA[Android-Linkify的使用]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/51824052</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/51824052</guid><author>JBFDHDRG</author><pubDate>Mon, 04 Jul 2016 21:59:30 +0800</pubDate><description><![CDATA[LinkifyLinkify是一个辅助类，它可以自动地在TextView（或其派生类）中通过RegEx（正则表达式）模式匹配来创建超链接。当TextView中的内容匹配成功并生成超链接之后，TextView内容的下面就会出现下划线，单击则可以触发相应的操作，例如拨号，打开浏览器等。
Linkify使用Linkify可以在xml中使用，也可以通过Java代码使用。
XML方式
  通过给TextVie]]></description><category></category></item><item><title><![CDATA[VIM 常用快捷键]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/51758678</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/51758678</guid><author>JBFDHDRG</author><pubDate>Sat, 25 Jun 2016 15:29:13 +0800</pubDate><description><![CDATA[u 撤销上一次的操作
CTRL-R 重做，回退前一个命令


删除


x 删除一个字符J 删除当前行与下一行之间的换行符u 撤销上一次操作U 撤销在最后一个编辑的行上的操作o 在当前行的下面插入新行，并进入编辑模式O 在当前行的上面插入新行，并进入编辑模式ZZ 退出并保存
移动

词移动


w 向后移动一个单词b 向前移动一个单词e 移动到后一个单词的词末ge 移动到]]></description><category></category></item><item><title><![CDATA[Java，MD5]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/50401859</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/50401859</guid><author>JBFDHDRG</author><pubDate>Fri, 25 Dec 2015 10:56:44 +0800</pubDate><description><![CDATA[public static String md5(String target) {
        try {
            MessageDigest messageDigest = MessageDigest.getInstance("MD5");
            byte[] bytes = messageDigest.digest(target.getBytes());]]></description><category></category></item><item><title><![CDATA[Ubuntu搭建Android开发环境]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/49928931</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/49928931</guid><author>JBFDHDRG</author><pubDate>Thu, 19 Nov 2015 15:55:33 +0800</pubDate><description><![CDATA[最近一段时间工作环境从windows转到了ubuntu下，虽然说只是做Android应用层开发对于windows或者linux其实都是看个人爱好，在哪个平台下面都是差不多的，但是接触到系统层windows就不行了。其次，本来就也是学计算机的，多接触点东西还是好的，感受下Linus Torvalds的杰作。废话不多说。第一步，下载jdk，这里就不提供链接，可以去官网，或者自行百度下载。 
下载好之后，]]></description><category></category></item><item><title><![CDATA[Android 动画]]></title><link>https://blog.youkuaiyun.com/JBFDHDRG/article/details/49781385</link><guid>https://blog.youkuaiyun.com/JBFDHDRG/article/details/49781385</guid><author>JBFDHDRG</author><pubDate>Wed, 11 Nov 2015 14:38:47 +0800</pubDate><description><![CDATA[帧动画 FrameAnimation
帧动画其实就是多张图片连续播放实现动画效果
在drawable文件夹中定义XML帧动画文件（根节点为animation-list）
其中XML文件中的oneshot属性可选值为true或者false，指定是否循环播放，true表示只播放一次，false表示循环播放
先上图：帧动画XML文件定义如下：<?xml version="1.0" encoding="ut]]></description><category></category></item></channel></rss>