<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[KesarChen的博客]]></title><description><![CDATA[个人博客地址：http://claymantwinkle.github.io/]]></description><link>https://blog.youkuaiyun.com/KesarChen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; KesarChen]]></copyright><item><title><![CDATA[腾讯Android面经]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/53332157</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/53332157</guid><author>KesarChen</author><pubDate>Fri, 25 Nov 2016 10:59:47 +0800</pubDate><description><![CDATA[秋招收官最后一战。
腾讯一面（电话）：
自我介绍
项目，平时怎么学习？
设计模式 
（1）知道哪些设计模式？设计模式在Android、Java中是怎么应用的，每个都说一下？ 
（2）InputStream和OutStream用了什么设计模式？
Android部分 
（1）讲下Android中多线程的实现与应用场景。 
（2）Android内存泄露的场景有哪些？ 
（3）Sqlite了解多少？可以并发]]></description><category></category></item><item><title><![CDATA[秋招百度Android面经]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/53313329</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/53313329</guid><author>KesarChen</author><pubDate>Wed, 23 Nov 2016 22:36:16 +0800</pubDate><description><![CDATA[春招的时候错过了百度，秋招的时候总算抓住机会。 
  百度笔试：在线笔试（赛码网）的时间是在晚上7点，我实习下班是晚上6点，当时下班后我飞快地赶回宿舍开电脑，连晚饭都顾不上。实践证明，饿的时候头脑是最清醒的。拿下算法题后，笔试应该可以通过。]]></description><category></category></item><item><title><![CDATA[eclipse与idea中classpath配置路径不同导致迁移项目时的FileNotFoundException问题]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/51193657</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/51193657</guid><author>KesarChen</author><pubDate>Tue, 19 Apr 2016 20:22:48 +0800</pubDate><description><![CDATA[我这次遇到的问题是：我在迁移spring项目时，在eclipse中配置了一个resources目录，在eclipse中是在classpath下的，而搬到idea后，变成在classpath外部了，然后因为这个问题导致我的项目在idea中一直无法运行。  然后我的解决办法是这么做的：
1.我要将这个resources目录移动到classpath目录下2.打开Project Structure3.Mod]]></description><category></category></item><item><title><![CDATA[[Android学习]Android中MVP模式初探1]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/51001574</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/51001574</guid><author>KesarChen</author><pubDate>Mon, 28 Mar 2016 21:49:30 +0800</pubDate><description><![CDATA[前言： 
  1. 初识MVP模式时，看到它缺点是需要增加一倍的类的维护量。所以就暂时没用它。但是，当一个类的代码行数达到一定的量（1000行以上），这时候维护类变得好麻烦，主要是功能变得多了，方法数量也变多了。这个时候真的是需要给类“瘦瘦身”。 
  2. 这时候重新看了MVP模式，确实发现了“宝”。
一、简单定义
  Model层：将功能逻辑等封装才model层中，其中包括了Data的交互（数据]]></description><category></category></item><item><title><![CDATA[[面经]阿里游戏一面的算法题]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/50940756</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/50940756</guid><author>KesarChen</author><pubDate>Mon, 21 Mar 2016 09:28:25 +0800</pubDate><description><![CDATA[前言：两天前参加阿里游戏的面试，一面时出了一道面试题。那时我看楞了，好像没做过这种题型，看起来很容易又很难。很容易是，使用O(N^2)就可以解决，难得是，优化时间复杂度。





  题目：字符串删除字符（字符可能会有重复，要一起删掉）


思路一（反正面试我没这么写，你们随便看看）


  一开始看到题目，思路就遍历字符串，一个个字符比较，然后删除它。 
  (1) 遍历数组，找到目标字符；]]></description><category></category></item><item><title><![CDATA[[面经]CVTE技术二面一道算法题]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/50910954</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/50910954</guid><author>KesarChen</author><pubDate>Thu, 17 Mar 2016 09:46:39 +0800</pubDate><description><![CDATA[题目描述： 1+11+111+…+1111111111=sum，最后一个二进制数是n个1。计算二进制数的累加后sum的值。 
  思路解析： 
  1. 首先，这明显是个大数问题。所以建议所有数都用字符串来表示或者是int数组来表示。这里我们用字符串来表示。 
  2. 使用字符串表示二进制数的话，需要实现两个二进制数字符串形式的加法运算。(关键) 
  3. 需要有制造这么多个1的字符串数组的方法]]></description><category></category></item><item><title><![CDATA[[java学习]java容器源码初探(1)]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/50898918</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/50898918</guid><author>KesarChen</author><pubDate>Tue, 15 Mar 2016 18:44:26 +0800</pubDate><description><![CDATA[一、动态数组ArrayList
  在我们开发者眼中，这就是一个“动态数组”，可以“动态”地调整数组的大小，虽然说数组从定义了长度后，就不能改变大小。 
  实现“动态”调整的基本原理就是：按照某个调整策略，重新创建一个调整后一样大小的数组，然后将原来的数组赋值回去。 
  下面我们来解析一下几个与数组不一样的方法。
看看ArrayList中主要的几个字段（源码剖析）：    // 默认的初始数组大]]></description><category></category></item><item><title><![CDATA[[面经]CVTE的两道笔试编程题]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/50811228</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/50811228</guid><author>KesarChen</author><pubDate>Sat, 05 Mar 2016 22:49:15 +0800</pubDate><description><![CDATA[晚上状态有点不好，然后就仓促参加笔试了。前面很多道选择题，真是坑，都是多选（混杂了多道单选）。下面就说说笔试题的两道编程题吧。其实我做的时候也是挺紧张的，随意符合题意的做完提交，也没加以优化，其实如果时间允许，我也是蛮想优化下的，不过这 场笔试不是看你优化得有多好，而是看你做对了没。
第一道题：字符数组的循环右移问题
  题目要求：将N个字符的数组，循环右移K位。时间复杂度O(N)。 
  现场思路]]></description><category></category></item><item><title><![CDATA[[Android学习]ListView显示多种item]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/50807432</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/50807432</guid><author>KesarChen</author><pubDate>Sat, 05 Mar 2016 10:11:47 +0800</pubDate><description><![CDATA[在平常使用ListView的时候，通常我们使用的item的layout都是同一个。当需要有多个不同的item的layout时，有两中处理的办法。 
 
第一种方法： 重写getView()方法@Override
public View getView(int position, View convertView, ViewGroup parent)
{
    int type=listDatas.]]></description><category></category></item><item><title><![CDATA[[AndroidAnnotations框架]AndroidAnnotations的配置]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/50801927</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/50801927</guid><author>KesarChen</author><pubDate>Fri, 04 Mar 2016 13:20:59 +0800</pubDate><description><![CDATA[一、在AndroidStudio下配置androidannotations
首先，准备好你的project。
AndroidStudio下的androidannotations配置是比较容易的，只需要配置两个build.gradle就可以。
配置build.gradle 
( 1 ) 我们先配置preject目录下的build.gradle 
在buildscript> dependencies>下]]></description><category></category></item><item><title><![CDATA[[读书笔记]Java类加载器]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/50768746</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/50768746</guid><author>KesarChen</author><pubDate>Mon, 29 Feb 2016 22:04:34 +0800</pubDate><description><![CDATA[一、类与类加载器类加载器除了在类加载阶段的作用外，还确定了对于一个类，都需要由加载它的类加载器和这个类本身一同确定其在Java虚拟机中的唯一性。通俗一点来讲，要判断两个类是否“相等”，前提是这两个类必须被同一个类加载器加载，否则这个两个类不“相等”。 
这里指的“相等”，包括类的Class对象的equals()方法、isAssignableFrom()方法、isInstance()方法、instan]]></description><category></category></item><item><title><![CDATA[[读书笔记]Java类加载过程]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/50762657</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/50762657</guid><author>KesarChen</author><pubDate>Sun, 28 Feb 2016 23:50:18 +0800</pubDate><description><![CDATA[一. 类的生命周期类从被加载到虚拟机内存中开始，到卸载出内存为止，有以下（如图）的生命周期： 
 
以上“加载->验证->准备->解析->初始化”称为类的加载过程。 
Java虚拟机规范中没有对什么时候需要开始类加载的第一阶段进行强制约束，而是交给了虚拟机根据具体实现来自由把握。 
但是对于初始化阶段，虚拟机有以下5种必须对类立即进行“初始化”的情况： 
（1）遇到new、getstatic、put]]></description><category></category></item><item><title><![CDATA[[读书笔记]JVM的垃圾收集算法]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/50757688</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/50757688</guid><author>KesarChen</author><pubDate>Sun, 28 Feb 2016 00:16:29 +0800</pubDate><description><![CDATA[1.标记-清除算法（1）算法思想：第一步，标记好所有需要回收的对象；第二步，清除被标记的对象。 
（2）缺点：时间上，效率不高，无论是标记还是清除操作；空间上，会产生大量不连续的内存碎片，使得占用大内存的对象找不到足够的连续内存而进一步又提前触发一次GC。 
标记-清除算法执行过程如下图所示： 
2.复制算法（1）算法思想：内存区分成两部分大小相等的区域。一半作为使用区，一半作为保留区。申请内存时，]]></description><category></category></item><item><title><![CDATA[[linux学习]centos下mysql的简单使用教程]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/50747844</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/50747844</guid><author>KesarChen</author><pubDate>Fri, 26 Feb 2016 10:29:20 +0800</pubDate><description><![CDATA[今天用学生认证买了一个腾讯云服务器，在云服务器上装了centos6.6，拿来玩玩。翻开以前用linux时记下的笔记，有很多重复，有点乱，拿来整理一下。
1. 使用yum安装mysql// 安装前先update一下
sudo yum update
// 查看有没有mysql的可下载版本
yum list | grep mysql
// 下载安装~
yum install -y mysql-server]]></description><category></category></item><item><title><![CDATA[A星算法（Java实现）]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/50736845</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/50736845</guid><author>KesarChen</author><pubDate>Thu, 25 Feb 2016 12:54:27 +0800</pubDate><description><![CDATA[一、适用场景在一张地图中，绘制从起点移动到终点的最优路径，地图中会有障碍物，必须绕开障碍物。二、算法思路1. 回溯法得到路径(如果有路径)采用“结点与结点的父节点”的关系从最终结点回溯到起点，得到路径。2. 路径代价的估算：F = G+HA星算法的代价计算使用了被称作是启发式的代价函数。 
先说明一下各符号意义：G表示的是 * 从起点到当前结点的实际路径代价 * (为啥叫实际？就是已经走过了，边走边]]></description><category></category></item><item><title><![CDATA[[算法学习]8皇后问题]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/50698268</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/50698268</guid><author>KesarChen</author><pubDate>Fri, 19 Feb 2016 15:21:16 +0800</pubDate><description><![CDATA[问题描述：  国际象棋的“8皇后问题”：在8x8的国际象棋上摆放8个皇后，使其不能互相攻击，即8个皇后中任意两个不得处在同一行、同一列或同一对角线上。共有多少种符合条件的摆法？ 
  解法与分析： 
  1. 首先是不能同一列同一行，那么每个皇后必须各独占一行一列，使用二维数组来描述就有点浪费空间了。这里我们使用一个8个元素的一维数组来表示每个皇后的每一行。 
  2. 那么独占一列的情况，描述起来]]></description><category></category></item><item><title><![CDATA[[算法学习]Java实现字符序列全组合]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/50685651</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/50685651</guid><author>KesarChen</author><pubDate>Thu, 18 Feb 2016 14:00:31 +0800</pubDate><description><![CDATA[问题描述： 假设数组中字符无重复，输入一个字符数组，打印出字符的全部组合。例如：输入{a,b,c}输出a、b、c、ab、ac、bc、abc
  
  解法与分析： 不使用辅助空间。输入一组n个字符的数组，将打印出C(1,n)+…+C(n,n)=2^n个组合。 
  1.按照从1到n作为一个循环，每次输出C(i,n)个组合。这样，我们只需要处理如何输出一个C(i,n)就可以解决问题。 
  2.处理C]]></description><category></category></item><item><title><![CDATA[[算法学习]整数序列的奇偶分类]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/50685646</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/50685646</guid><author>KesarChen</author><pubDate>Thu, 18 Feb 2016 13:59:51 +0800</pubDate><description><![CDATA[问题描述： 输入一组序列，奇数在前，偶数在后，输出整理后的序列。
  
  解法与分析： 能马上想到用二分法，就很快能解决问题。
参考代码如下/**
 * 解法：使用二分法
 * @param nums
 */
public static void reorderOddEven(int[] nums)
{
    if(nums==null)
    {
        return;
    }]]></description><category></category></item><item><title><![CDATA[[算法学习]顺时针打印矩阵]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/50685640</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/50685640</guid><author>KesarChen</author><pubDate>Thu, 18 Feb 2016 13:59:02 +0800</pubDate><description><![CDATA[问题描述： 顺时针打印矩阵 
  例如： 
  { 
   {1,2,3,4}, 
   {5,6,7,8}, 
   {9,10,11,12}, 
   {13,14,15,16} 
  } 
  打印结果：1、2、3、4、8、12、16、15、14、13、9、5、6、7、11、10
  
  解法与分析： 考虑几个特殊情况：行1列n，行n列1，行1列1。考虑到这几个后其实就不难了。
参考代码如下]]></description><category></category></item><item><title><![CDATA[[算法学习]数组的旋转]]></title><link>https://blog.youkuaiyun.com/KesarChen/article/details/50685632</link><guid>https://blog.youkuaiyun.com/KesarChen/article/details/50685632</guid><author>KesarChen</author><pubDate>Thu, 18 Feb 2016 13:58:13 +0800</pubDate><description><![CDATA[问题描述：  返回将一维数组向右旋转k个位置的结果。 
  比如，一维数组{1,2,3,4,5}，k=2时，返回结果是{4,5,1,2,3}。 要求常数级空间复杂度，允许修改原有数组。
  
  解法与分析： 使用三旋转：全部旋转一次，前面0到k-1旋转一次，后面k到数组最后一个数旋转一次，就可以解决问题。
参考代码如下public static int[] rotateK(int[] datas,]]></description><category></category></item></channel></rss>