<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[爱吃青菜的鱼]]></title><description><![CDATA[代码改变世界。]]></description><link>https://blog.youkuaiyun.com/MakeIT_2015</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; MakeIT_2015]]></copyright><item><title><![CDATA[【计算机网络面试题】]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/49250753</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/49250753</guid><author>MakeIT_2015</author><pubDate>Mon, 19 Oct 2015 15:38:27 +0800</pubDate><description><![CDATA[TCP/IP 
1. OSI与TCP/IP各层的结构与功能，都有哪些协议。 
2. TCP与UDP的区别。 
3. TCP报文结构。 
4. TCP的三次握手与四次挥手过程，各个状态名称与含义，TIMEWAIT的作用。 
5. TCP拥塞控制。 
6. TCP滑动窗口与回退N针协议。 
7. Http的报文结构。 
8. Http的状态码含义。 
9. Http request的几种类型。 
10.]]></description><category></category></item><item><title><![CDATA[JavaSE知识点个人总结]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/49247235</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/49247235</guid><author>MakeIT_2015</author><pubDate>Mon, 19 Oct 2015 12:48:37 +0800</pubDate><description><![CDATA[J2SE基础 
1.    八种基本数据类型的大小，以及他们的封装类。 
2.    Switch能否用string做参数？ 
不可以 
3.  equals与==的区别。 
equals是比较值是否相等，而==是比较引用对象是否是同一个对象 
4. Object有哪些公用方法？ 
hashCode()、clone、toString（） 
5. Java的四种引用，强弱软虚，用到的场景。 
强引用：]]></description><category></category></item><item><title><![CDATA[Android下JSON解析的方式]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47810393</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47810393</guid><author>MakeIT_2015</author><pubDate>Thu, 20 Aug 2015 16:53:46 +0800</pubDate><description><![CDATA[Android下的JSON解析有很多的方法，今天学习其中的两种，第一种是轻量级，也就是数据量比较容易解析的，第二种是重量级一点的，也就是数据量比较多，而且解析比较复杂的。 
在学习这两种方法之前，首先先学习如何生成JsonObject对象 
生成Json数据的完整代码如下：package com.yupeibiao.jsondeom;import java.io.BufferedWriter;
im]]></description><category></category></item><item><title><![CDATA[Java          高效并发编程初探]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47761137</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47761137</guid><author>MakeIT_2015</author><pubDate>Tue, 18 Aug 2015 22:18:45 +0800</pubDate><description><![CDATA[在学习Java的时候，多线程是一个很重要很重要的问题。 
从Java的内存模型而言，多线程需要读取内存，CPU（一个CPU代表一个线程）和内存的读取的速度不是一个等级的，那么就需要一个高效的缓存线程，通过将内存上需要操作的数据复制到缓存线程上，再由缓存线程与线程进行通讯，然后缓存线程将结果返回到内存中。 
但是在多线程并发操作的时候，往往带来的问题就是线程的不安全，资源的不安全，所以线程的安全非常重]]></description><category></category></item><item><title><![CDATA[Java内存分配和垃圾回收]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47687831</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47687831</guid><author>MakeIT_2015</author><pubDate>Sat, 15 Aug 2015 23:09:26 +0800</pubDate><description><![CDATA[最近拜读了周志明老师的深入理解Java虚拟机，也写一点皮毛的Java垃圾回收机制，可能存在一些纰漏，本人是菜鸟，哈哈。 
废话不多说，直接进入正题。 
Java提供了垃圾回收机制（GC）让我们可以免去很多的像C++的内存释放的问题，但是问题接着又来了，由于GC是随机的，不可避免有一些内存会浪费，那么就需要我们对Java的GC机制有着清晰的认识。 
第一、怎么判断对象已经死了呢？ 
在Java中提供了]]></description><category></category></item><item><title><![CDATA[Android进程的生命周期及其进程等级分析]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47680219</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47680219</guid><author>MakeIT_2015</author><pubDate>Sat, 15 Aug 2015 11:12:36 +0800</pubDate><description><![CDATA[如果有细心注意的话，在Android的Mainifest的下面，有一个application标签，这个标签默认指定的是系统提供的application，但是其实这个application可以由我们自己指定，因为在Mainifest里面，任何一个标签都是一个对象使用，所以application自然也是一个类，也可以继承实现，然后使用我们自己的application，代码如下，由于时间紧，所以只实现几个]]></description><category></category></item><item><title><![CDATA[如何让两个不同的app共享数据]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47628631</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47628631</guid><author>MakeIT_2015</author><pubDate>Fri, 14 Aug 2015 00:28:24 +0800</pubDate><description><![CDATA[如果我有这样的需求，比如QQ和QQ音乐都是腾讯出品的产品，此时我已经登录QQ，那么再登录QQ音乐的时候必然是不会再次出现登录界面的，因为此时的数据已经共享了，QQ音乐可以获得QQ的数据，所以检测到的时候，就不会再起登录了。 
在Android中是如何实现的？ 
首先在我们的AndroidMainifest中，第一级是mainifest，第二级是application，第三级是service，acti]]></description><category></category></item><item><title><![CDATA[AndroidManifest.xml文件解析]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47627843</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47627843</guid><author>MakeIT_2015</author><pubDate>Fri, 14 Aug 2015 00:17:54 +0800</pubDate><description><![CDATA[本文是一篇非常详细的介绍AndroidManifest.xml文件的文章，转载自 
http://www.cnblogs.com/pilang/archive/2011/04/20/2022932.html但是文中说的两个App共享的问题，除了shareduserid之外作者说是shareperfernce，本人不是很认同这个观点。一、关于AndroidManifest.xmlAndroidMani]]></description><category></category></item><item><title><![CDATA[解析Android下assert与raw的区别]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47624165</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47624165</guid><author>MakeIT_2015</author><pubDate>Thu, 13 Aug 2015 23:04:03 +0800</pubDate><description><![CDATA[*res/raw和assets的相同点： 
1.两者目录下的文件在打包后会原封不动的保存在apk包中，不会被编译成二进制。 
*res/raw和assets的不同点： 
1**.res/raw中的文件会被映射到R.java文件中**，访问的时候直接使用资源id即R.id.filename；assets文件夹下的文件不会被映射到R.java中，访问的时候需要AssetManager类。 
2.res/]]></description><category></category></item><item><title><![CDATA[Java--反射机制初探]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47609669</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47609669</guid><author>MakeIT_2015</author><pubDate>Thu, 13 Aug 2015 11:16:25 +0800</pubDate><description><![CDATA[好多天没写博客  项目刚刚上线  来写一写deom  昨晚复习了一下java的反射机制  写了一个小deom复习下反射机制  代码这东西还是写出来比较爽呀 
废话不多说 
反射：Java反射机制容许程序在运行时加载、探知、使用编译期间完全未知的classes。 
也就是说，Java可以加载一个运行时才得知名称的class，获得其完整结构。 
这个完整结构是说我们可以通过反射得到里面的任何东西，不管是]]></description><category></category></item><item><title><![CDATA[数据结构与算法（5、链表的拼接）]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47010797</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/47010797</guid><author>MakeIT_2015</author><pubDate>Wed, 22 Jul 2015 22:12:31 +0800</pubDate><description><![CDATA[今天复习一下链表的拼接，从2个链表的拼接开始 
例如有一个链表A，一个链表B，A和B已经排序好，现在的需求是将链表A和链表B的元素按照排好序，然后形成新的链表C。 
首先规划一下思路： 
1、判断是否是空链表，如果是空链表，就返回另外一个链表 
    （第一个function   isEmpty()判断是否是空链表） 
2、如果不是空链表，那么让A和B的第一个元素进行比较，如果A的第一个元素（取链]]></description><category></category></item><item><title><![CDATA[数据结构与算法（4、约瑟夫环问题到循环链表）]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/46992751</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/46992751</guid><author>MakeIT_2015</author><pubDate>Tue, 21 Jul 2015 21:52:00 +0800</pubDate><description><![CDATA[首先先解释约瑟夫环问题，这个问题，背景其实挺残酷的，来自于一场自杀游戏，举个现实的例子，如果你有4个朋友，但是只能给一个人带饭，那么做这样的游戏，4个人围成一个环，你说从1开始数，数到2，就淘汰掉2，剩下的继续围成一个环，在继续这个游戏，直到剩下一个为止。 
表达能力有限，直接百度百科！ 
约瑟夫环（约瑟夫问题）是一个数学的应用问题：已知n个人（以编号1，2，3…n分别表示）围坐在一张圆桌周围。从编]]></description><category></category></item><item><title><![CDATA[数据结构与算法（3  Reverse链表）]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/46967093</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/46967093</guid><author>MakeIT_2015</author><pubDate>Mon, 20 Jul 2015 13:27:31 +0800</pubDate><description><![CDATA[首先个人理解数组和链表的异同点： 
1：数组是一个有固定容量的容器，在内存中是一个一个排列着，有自己的固定长度，虽然可以生成动态数组，但是不建议，因为消耗内存。所以如果想从数组中插入或者删除一个元素的时候，就显得资源消耗比较大，因为每插入一个，数组就要向后移动插入位置之后的每一个位置。所以数组在插入删除中效率是比较低的，然后数组可以通过index索引，直接查到数组的对应索引的元素。 
2：链表跟数组]]></description><category></category></item><item><title><![CDATA[数据结构与算法（2、从Reverse到大O表示法）]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/46353131</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/46353131</guid><author>MakeIT_2015</author><pubDate>Wed, 03 Jun 2015 23:27:51 +0800</pubDate><description><![CDATA[接上面的问题，如何从实现一个数组的翻转，其实很简单 
1、定义一个头，一个尾 
2、判断条件：头是否大于尾 
3、交换元素值 
4、头，尾更向中间靠拢 
代码如下：//关键代码
public static void reverseArray(int arr[]){
int left=0;
int right=arr.length-1;
while(left<right){
   int temp=a]]></description><category></category></item><item><title><![CDATA[数据结构与算法（1、数组和链表）]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/46352941</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/46352941</guid><author>MakeIT_2015</author><pubDate>Wed, 03 Jun 2015 23:08:58 +0800</pubDate><description><![CDATA[1、数组和链表 
对于数组和链表而言，数组的每一个元素都有其对应的下标，例如int array[]={1,2,3};
//array[1]=2;
/*
数组可以根据角标去查找元素，所以查找效率比较高，但是数组的增删非常不方便，因为需要移动大量的元素去实现增删
*/链表：链表是弥补了数组的不足同时也有自己的缺点 
链表的增删比较容易，但是失去了角标只能通过头结点一个一个去遍历//链表的创建
//结构体]]></description><category></category></item><item><title><![CDATA[Android多线程机制解析]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/45746145</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/45746145</guid><author>MakeIT_2015</author><pubDate>Fri, 15 May 2015 16:14:28 +0800</pubDate><description><![CDATA[为何要使用多线程？ 
线程安全、经典的卖票问题 
线程耗时、耗时的操作不能在主线程中运行 
耗时的操作 
ANR，比如IO操作，也就是网络操作，文件操作，数据库操作等等 
如何与主线程交互 
可以使用runOnUiThread,Handler,AsyncTask 
Handler解析： 
Handler机制包含MessageQueue，Looper 
在Hnalder在sendMessage()后，]]></description><category></category></item><item><title><![CDATA[自定义View之组合自定义控件]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/45655005</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/45655005</guid><author>MakeIT_2015</author><pubDate>Tue, 12 May 2015 01:44:15 +0800</pubDate><description><![CDATA[今晚是几分焦虑的学习呀，想着第一次面试在周六，想多学点知识，但是发现好像其实自己的基础都学完了，在找多点进阶的学，离题了，恩，好的，入正题，如何在安卓中使用自定义View控件，并且实现动态的实现，接口回调机制等。 
这篇文章仅仅是组合控件，不涉及自定义View的绘制。开始！！！ 
1、首先在values下新建一个attrs的xml文件，指定自定义控件的各种属性 
代码如下：<?xml version]]></description><category></category></item><item><title><![CDATA[使用Fragment实现微信界面的点击切换]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/45642223</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/45642223</guid><author>MakeIT_2015</author><pubDate>Mon, 11 May 2015 11:32:41 +0800</pubDate><description><![CDATA[之前我们使用ViewPager实现了滑动和点击事件，如果单单实现点击，不实现滑动，可以考虑使用Fragment进行替代 
1、设置布局文件 
2、初始化界面 
寻找控件，初始化显示界面 
3、增加点击事件package com.imooc.tab02;import android.os.Bundle;
import android.support.v4.app.Fragment;
import an]]></description><category></category></item><item><title><![CDATA[ViewPage滑动页面（1）]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/45640291</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/45640291</guid><author>MakeIT_2015</author><pubDate>Mon, 11 May 2015 09:04:38 +0800</pubDate><description><![CDATA[本博客是观看immoc上面的视频解说然后自己整理得到的，源码也是imooc上面的，谢谢。 
第一种完成的方法：（使用传统的xml文件，重量级） 
1、设置布局，其中需要注意的是ViewPager是在v4的包中，所以标签应该注明是v4包中的ViewPager的class文件，如下格式 <android.support.v4.view.ViewPager
        android:id="@+id]]></description><category></category></item><item><title><![CDATA[Android 程序无法运行ADB server didn't ACK问题]]></title><link>https://blog.youkuaiyun.com/MakeIT_2015/article/details/45490785</link><guid>https://blog.youkuaiyun.com/MakeIT_2015/article/details/45490785</guid><author>MakeIT_2015</author><pubDate>Tue, 05 May 2015 00:44:02 +0800</pubDate><description><![CDATA[究其源就是adb server没启动经过分析整理如下：[html] view plaincopy 
C:\Users\xxxx>adb nodaemon server 
cannot bind ‘tcp:5037’ 
原来adb server 端口绑定失败继续查看到底是哪个端口给占用了 
[html] view plaincopy 
C:\Users\xxxxxx>netstat -ano | fi]]></description><category></category></item></channel></rss>