<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fyduan的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fyduan</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fyduan]]></copyright><item><title><![CDATA[View相关问题解惑（ViewRootImpl，PhoneWindow创建时机，View.post为何可以获取View宽高）]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/86658355</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/86658355</guid><author>fyduan</author><pubDate>Sat, 26 Jan 2019 20:19:14 +0800</pubDate><description><![CDATA[毕业一年了，都没有找到时间对Android技术进行整理，疲于项目工作，发现对一些基础性的疑惑没有进行追根溯源。若想在技术方面有所提升，对源码的解读是必须要迈过去的坎。以后要继续坚持写博客了。

1. Activity.setContentView（）到底做了什么？执行了此方法，就开始渲染视图（执行ViewRootImpl.performTransversal）了吗?

首先回答：setConten...]]></description><category></category></item><item><title><![CDATA[mysql无法插入中文字符或者报错SQLExeception]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/52959385</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/52959385</guid><author>fyduan</author><pubDate>Fri, 28 Oct 2016 20:41:06 +0800</pubDate><description><![CDATA[可参考


解决：mysql无法插入中文字符或者报错SQLExeception
最近在使用Hibernate的时候遇到了很多小问题，其中就有mysql无法插入中文字符或者报错SQLExeception这个问题，
对于这个问题其实直接进入可参考的链接，跟着照做即可，
其实主要需要两步修改才能完成
1，更改mysql安装目录里面的my.ini配置文件（windows系统）中牵扯到设置ch]]></description><category></category></item><item><title><![CDATA[docker 入门]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/51920431</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/51920431</guid><author>fyduan</author><pubDate>Fri, 29 Jul 2016 09:14:11 +0800</pubDate><description><![CDATA[安装Docker（参考了安装前的配置）

安装Docker2（参考了开启docker服务，pull 镜像等）

玩转Docker（ubuntu,虽然安装指令不同，但是docker 的操作指令是相同的）

Docker原理（经典）

docker学习笔记



介绍：
Docker 基于C/S架构，Docker CLient, Docker Diamon
Docker c]]></description><category></category></item><item><title><![CDATA[项目用到的开源库]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/50785865</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/50785865</guid><author>fyduan</author><pubDate>Wed, 20 Jul 2016 10:26:26 +0800</pubDate><description><![CDATA[SwipeBackLayout控件：https://github.com/ikew0ng/SwipeBackLayout/tree/master/library/src/main/java/me/imid/swipebacklayout/lib
其有关的解析：https://segmentfault.com/a/1190000002977515


ViewHolder的相关库：https]]></description><category></category></item><item><title><![CDATA[android studio NDK 配置及入门案例]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/51960098</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/51960098</guid><author>fyduan</author><pubDate>Wed, 20 Jul 2016 01:45:16 +0800</pubDate><description><![CDATA[据说android studio 的NDK现在开发已经很方便了，现在来尝试一波。


首先介绍一下我的android studio 环境 android studio 1.5


首先需要配置一下NDK开发环境: 
下载android-ndk-r10,并解压
点击project structure--->选择SDK Location --->选择解压后的android-ndk-r1]]></description><category></category></item><item><title><![CDATA[linux进程状态]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/51610705</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/51610705</guid><author>fyduan</author><pubDate>Wed, 08 Jun 2016 09:06:44 +0800</pubDate><description><![CDATA[转自：http://blog.youkuaiyun.com/huzia/article/details/18946491

Linux是一个多用户，多任务的系统，可以同时运行多个用户的多个程序，就必然会产生很多的进程，而每个进程会有不同的状态。

Linux进程状态：R (TASK_RUNNING)，可执行状态。

只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状态，这]]></description><category></category></item><item><title><![CDATA[深入理解Linux进程间通信]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/51465047</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/51465047</guid><author>fyduan</author><pubDate>Mon, 23 May 2016 09:33:14 +0800</pubDate><description><![CDATA[转自：http://www.ibm.com/developerworks/cn/linux/l-ipc/

序

linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD（加州大学伯克利分校的伯克利软件发布中心）在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充，形]]></description><category></category></item><item><title><![CDATA[解析memcached]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/51360573</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/51360573</guid><author>fyduan</author><pubDate>Tue, 10 May 2016 09:37:01 +0800</pubDate><description><![CDATA[memcached翻译文档


memcached的客户端（阿里的java实现）



memcached的java版客户端的使用实例



memcached的分布式实现不是memcached服务端实现的，memcached的服务端之间相互不能通信，因此memcached的分布式是通过memcached客户端实现的。


memcached的客户端：主要就是实现了分布]]></description><category></category></item><item><title><![CDATA[最大数字序列和问题，买卖股票问题，以及最长公共字串问题]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/51025457</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/51025457</guid><author>fyduan</author><pubDate>Tue, 19 Apr 2016 18:25:25 +0800</pubDate><description><![CDATA[最大字串加强版
最大子串和原理

给定由n个整数(可能为负整数)组成的序列A1,A2,A3,...,An,求该序列的连续子段的和的最大值。当所有整数均为负整数时定义其最大子段和为0


例如   {-4, 11，-2, 13，-7，-3，12} 的最大子段和为22

int MaxSum(int array[],int n)  
{  
    int b=0;  
    int]]></description><category></category></item><item><title><![CDATA[深复制与浅复制]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/51119662</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/51119662</guid><author>fyduan</author><pubDate>Mon, 11 Apr 2016 11:10:56 +0800</pubDate><description><![CDATA[浅拷贝是指在拷贝对象时，对于基本数据类型的变量会重新复制一份，而对于引用类型的变量只是对引用进行拷贝，没有对引用指向的对象进行拷贝。


而深拷贝是指在拷贝对象时，同时会对引用指向的对象进行拷贝。

区别就在于是否对 对象中的引用变量所指向的对象进行拷贝。




与序列化，反序列化的关系：



序列化，反序列化过程中对象是深复制，反序列化还原后的对象地址与原来的的地]]></description><category></category></item><item><title><![CDATA[二叉树有关编程]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/51065050</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/51065050</guid><author>fyduan</author><pubDate>Tue, 05 Apr 2016 23:31:38 +0800</pubDate><description><![CDATA[package BinaryTreeSummary;  
   
import java.util.ArrayList;  
import java.util.Iterator;  
import java.util.LinkedList;  
import java.util.List;  
import java.util.Queue;  
import java.util.Stack;]]></description><category></category></item><item><title><![CDATA[与AQS有关的并发类]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/51062761</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/51062761</guid><author>fyduan</author><pubDate>Tue, 05 Apr 2016 11:13:11 +0800</pubDate><description><![CDATA[ReetrantLock与Condition:
参考

在java.util.concurrent包中，有两个很特殊的工具类，Condition和ReentrantLock,使用过的人都知道，ReentrantLock（重入锁）是jdk的concurrent包提供的一种独占锁的实现。它继承自Dong Lea的 AbstractQueuedSynchronizer（同步器），确切的说是Reen]]></description><category></category></item><item><title><![CDATA[理解网络模型各层协议的分工及由来]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/50879840</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/50879840</guid><author>fyduan</author><pubDate>Sun, 13 Mar 2016 20:22:27 +0800</pubDate><description><![CDATA[我们每天使用互联网，你是否想过，它是如何实现的？

　　全世界几十亿台电脑，连接在一起，两两通信。上海的某一块网卡送出信号，洛杉矶的另一块网卡居然就收到了，两者实际上根本不知道对方的物理位置，你不觉得这是很神奇的事情吗？

　　互联网的核心是一系列协议，总称为"互联网协议"（Internet Protocol Suite）。它们对电脑如何连接和组网，做出了详尽的规定。理解了这些协议，就理解]]></description><category></category></item><item><title><![CDATA[TCP慢启动、拥塞避免、快重传、快恢复]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/50673754</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/50673754</guid><author>fyduan</author><pubDate>Tue, 16 Feb 2016 11:36:05 +0800</pubDate><description><![CDATA[转自：点击打开链接
为了防止网络的拥塞现象，TCP提出了一系列的拥塞控制机制。最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动(Slow start)”和“拥塞避免(Congestion avoidance)”组成，后来TCP Reno版本中又针对性的加入了“快速重传(Fast retransmit)”、“快速恢复(Fast Recovery)”算法，再后]]></description><category></category></item><item><title><![CDATA[解析java序列化机制]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/50496253</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/50496253</guid><author>fyduan</author><pubDate>Mon, 11 Jan 2016 12:39:22 +0800</pubDate><description><![CDATA[java序列化


对象序列化机制：把内存中的java对象包装成与平台无关的二进制流，从而允许将二进制流持久保存到磁盘上，或者通过网络将这种二进制流传输到另外的节点，然后再通
过反序列化，将java对象从IO流中恢复。


序列化的必要性： java中，一切皆对象，在分布式环境中需要将Object从这一端网络到另一端，这就需要有一种可以在两端传输数据的协议，java序列化就是为了解决]]></description><category></category></item><item><title><![CDATA[java中equal()与==的区别（顺便谈谈String,stringBuffer,StringBuilder）]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/50493748</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/50493748</guid><author>fyduan</author><pubDate>Sun, 10 Jan 2016 21:01:47 +0800</pubDate><description><![CDATA[首先==，当用于基本数据类型是比较大小，比较的是他们的值。
当用于复合数据类型（类对象）时，比较的是两个对象存放的的地址，除非是同一new出来的对象，否则比较的结果是false。


至于equal(),上帝类Object中有equal()方法，因此所有类都有equal()的方法，在Object里面equals方法同上面复合类型里面使用==一样也是比较两个对象的地址，但是并非所有的类的eq]]></description><category></category></item><item><title><![CDATA[Matrix的preXxx,setXxx,postXxx方法执行顺序的区分]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/50478896</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/50478896</guid><author>fyduan</author><pubDate>Thu, 07 Jan 2016 20:55:02 +0800</pubDate><description><![CDATA[Matrix的preXxx,setXxx,postXxx方法执行顺序的区分





大家在android开发时，免不了用到Matrix这个类,其实就是一个操作矩阵的类。
其中包括pre系列方法：preScale，preTranslate，preRotate，preSkew，set系列方法：setScale，setTranslate，setRotate，setSkew，post系列方]]></description><category></category></item><item><title><![CDATA[刷新界面之invalidate()与postInvalidate()]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/50471646</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/50471646</guid><author>fyduan</author><pubDate>Wed, 06 Jan 2016 20:52:25 +0800</pubDate><description><![CDATA[刷新界面之invalidate()与postInvalidate()




刷新View的界面，有两种方法：invalidate()和postInvalidate(),那么他们又有什么区别和联系呢？


invalidate（）：一般用于更新UI线程里的View界面
postInvalidate（）：用于更新非UI线程的View界面


难道invalidate（），只能]]></description><category></category></item><item><title><![CDATA[解决：Android Studio 不能预览]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/50449702</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/50449702</guid><author>fyduan</author><pubDate>Sat, 02 Jan 2016 22:29:37 +0800</pubDate><description><![CDATA[关于无法预览布局文件，是很苦恼的，有一种快速解决办法：
找到res -> values ->styles.xml,进入styles.xml,将

    
    
        
    
改为：


    
    
        
    

其实就是在Theme前面加上Base.即可。


ps：据说出现此种现象是引入的V7包版本太新而adt版本太老导致，可以更新adt版]]></description><category></category></item><item><title><![CDATA[AsyncTask源码解析]]></title><link>https://blog.youkuaiyun.com/fyduan/article/details/50412927</link><guid>https://blog.youkuaiyun.com/fyduan/article/details/50412927</guid><author>fyduan</author><pubDate>Sun, 27 Dec 2015 16:39:30 +0800</pubDate><description><![CDATA[作为异步消息机制，AsyncTask可替代Thread+Handler,以更新UI线程，
先上一个例子，感受一下AsyncTask
AsyncTask是抽象类，因此首先需要继承它，并实现它为实现的方法。在继承时，需要三个泛型参数，
params :执行任务时，传入的参数，在后台执行。
Progress:任务执行过程中，需要显示当前进度的单位类型
Result：执行完毕后，返回结果的类型]]></description><category></category></item></channel></rss>