<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[做最好的自己，遇见最美好的你]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/HuberJobs</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; HuberJobs]]></copyright><item><title><![CDATA[synchronized和ReentrantLock实现消费者生产者问题]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/51146733</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/51146733</guid><author>HuberJobs</author><pubDate>Wed, 13 Apr 2016 22:05:04 +0800</pubDate><description><![CDATA[并发执行和并行执行的区别：并行执行是指两个或多个事件在同一时刻发生，而并发执行是指两个或多个事情在同一时间间隔内发生。并发执行在宏观层面上看，事情之间是同时发生的。比如说在2秒的时间内发生的两件事情，在历史的角度上可以看作是“同时发生”的。
在Java中，多个线程对临界区资源操作时，需要保持程序的可再现性，或者说内存可见性。不管哪个线程操作了临界资源，操作的结果都应该对下一个操作该资源的线程可见]]></description><category></category></item><item><title><![CDATA[面试题之螺旋矩阵]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/51108783</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/51108783</guid><author>HuberJobs</author><pubDate>Sun, 10 Apr 2016 01:06:23 +0800</pubDate><description><![CDATA[给定一个m*n的矩阵，按照螺旋顺序返回所有元素。
举例：   1    2    3
             8    9    4
             7    6    5
返回的应该是1 2 3 4 5 6 7 8 9.
从左边开始，当碰撞到右边的边界时，转向 (向下)。然后从右到左，碰撞到左边边界时，转向 (向上)。一直到最后一个元素。
public static Ar]]></description><category></category></item><item><title><![CDATA[给定两个有序数组，找出合并之后的数组中位数]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/51102970</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/51102970</guid><author>HuberJobs</author><pubDate>Sat, 09 Apr 2016 03:01:47 +0800</pubDate><description><![CDATA[中位数定义：假如一个数组的长度Len为偶数,那么中位数为第 Len/2 个数；如果Len为奇数，那么中位数为第Len/2+1个数。
比如 Arr[ 1, 2, 3, 4, 5]中位数为3；Arr[ 2, 3, 4, 5]中位数为3。
给定两个递增排序数组，请设计一种高效算法求出两个数组的中位数。
比如 A[ 1, 2, 3, 4, 5] 
       B[ 2, 3, 4, 5]
那么]]></description><category></category></item><item><title><![CDATA[给定一个数组，找出数组缺少的最小的正整数]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/51087501</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/51087501</guid><author>HuberJobs</author><pubDate>Thu, 07 Apr 2016 17:56:46 +0800</pubDate><description><![CDATA[题目使这样的：请设计一个高效算法，查找数组中未出现的最小正整数。
给定一个整数数组A，请返回数组中未出现的最小正整数。
测试样例：
[-1,2,3,4]
返回1


一看到这个题目我想到的是用另外的一个数组B，长度为A的长度+1，来存储遍历数组A的数的值。 if(A[i] == i+1)  B[i+1] = A[i]。然后遍历数组B,出现空缺的地方即是最小未出现的正整数。但是假如要求]]></description><category></category></item><item><title><![CDATA[Java实现大数相乘]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/51063401</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/51063401</guid><author>HuberJobs</author><pubDate>Tue, 05 Apr 2016 12:15:31 +0800</pubDate><description><![CDATA[两个很大的整数如何实现相乘呢？大数超出了基本类型的表示范围，所以不能用基本类型直接相乘。我们可以通过String来对它们，各位进行分解地相乘。先来看看如何实现，首先研究一下基本的乘法规则。

个位只能由个位相乘产生，十位由十位乘以个位产生，百位由百位乘以个位产生。同时还会有进位。所以获取相乘的两个数的结果位result[i+j] 的值应等于A的第i位乘以B的第j位，加上A的第j位乘以B的第i位]]></description><category></category></item><item><title><![CDATA[Java实现大整数相加]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/51036505</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/51036505</guid><author>HuberJobs</author><pubDate>Fri, 01 Apr 2016 15:07:06 +0800</pubDate><description><![CDATA[在不使用BigInteger这个类的情况下，如何自己去实现两个超级大的数相加呢？
首先我们来看一下加法的原则: 1.同号相加，把两数相加，结果符号位取任意一个数的符号  
                                                       2.异号相加，取较大的数减去较小的数，结果符号位取较大的数的符号位
由于是超级大数，我们使用String来存储。]]></description><category></category></item><item><title><![CDATA[Java实现八大排序之一]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/51000494</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/51000494</guid><author>HuberJobs</author><pubDate>Mon, 28 Mar 2016 22:01:04 +0800</pubDate><description><![CDATA[1.选择排序
先来说一下选择排序的基本思想：从数组的第一个数开始,将它与后面的每个数进行比较,如果比它小,就交换这两个数。这样一遍下来便可以找出最小的数了；接着从第二个数开始，重复第一个步骤。直到最后一个数，这样就完成了数组元素的排序。文字太抽象,上图吧。




	/**
	 * 选择排序
	 * @param arr
	 * 
	 */
	public void selectSor]]></description><category></category></item><item><title><![CDATA[自定义View的简单尝试——自定义日历视图]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/50959312</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/50959312</guid><author>HuberJobs</author><pubDate>Tue, 22 Mar 2016 23:27:48 +0800</pubDate><description><![CDATA[之前学过的东西隔了很长一段时间现在又忘了，原来已经不打算做码农了，但是好像没有什么选择了，先试试看自己合不合适做程序猿吧。今天来学一下，自定义View。我们看看今天要做的东西


这是我在某个地方看到的一张图，不知道在哪个地方了。我们先来分析一下，如果画出类似于这种效果。首先确定当前月的第一天是星期几，以及当前月的天数。然后用一个循环来画每一个日期，当然这要计算每个日期所在的位置。宽度是平均]]></description><category></category></item><item><title><![CDATA[Android自定义View]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/50951598</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/50951598</guid><author>HuberJobs</author><pubDate>Tue, 22 Mar 2016 00:33:49 +0800</pubDate><description><![CDATA[Android 自定义View (一)

鸿洋大神的文章，在此转载。出处：http://blog.youkuaiyun.com/lmj623565791/article/details/24252901


很多的Android入门程序猿来说对于Android自定义View，可能都是比较恐惧的，但是这又是高手进阶的必经之路，所有准备在自定义View上面花一些功夫，多写一些文章。先总结下自定义View]]></description><category></category></item><item><title><![CDATA[ListView中的Button或CheckBox点击处理]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/50912854</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/50912854</guid><author>HuberJobs</author><pubDate>Thu, 17 Mar 2016 13:51:57 +0800</pubDate><description><![CDATA[在ListView的使用过程中，我们经常会用到View的复用机制，来优化应用的性能。也就是说ListView的item的View存在着复用，刚开始Adapter会创造一个屏幕的item，以后的Item就会复用这最初的Item View，只不过把数据更换了而已。于是这样便会带来一个问题，加入Item上有一些局部事件，比如说ChexkBox，当我们点击的是第一项的时候，第一个Item的CheckBoX]]></description><category></category></item><item><title><![CDATA[Android中使用XmlPullParser操作简单的xml文件]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/50908329</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/50908329</guid><author>HuberJobs</author><pubDate>Wed, 16 Mar 2016 21:09:31 +0800</pubDate><description><![CDATA[在开发的过程中，如果需要保存少量数据，可以使用xml来保存，尽量不使用数据库。解析xml的方式有Dom,Sax,Dom4j等，今天要学的是XmlPullParser。
我们先来看看要解析的文件格式是什么


XmlPullParser是从上到下对xml文件进行解析的，跟我们写xml文件的顺序是一样的，顺序获取每个节点的值，一次解析。
其实用法很简单，看代码的注释就应该知道怎么使用啦
p]]></description><category></category></item><item><title><![CDATA[最简单地实现标签页导航-----TabLayout+ViewPager]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/50896592</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/50896592</guid><author>HuberJobs</author><pubDate>Tue, 15 Mar 2016 15:52:08 +0800</pubDate><description><![CDATA[上次使用Fragment+ViewPager实现了标签页导航，虽说效果达到了，但是你们有没有觉得，要写好多代码，还有处理好多逻辑。假如每次都要这样写，这么多代码，太没意思啦。可能你会想，要不封装一下吧。可是要怎么封装呢？在你冥思苦想的时候，谷歌早已替你解决好了这个问题。谷歌在Material Design之后，添加了新的控件支持库。在
android.support.design.widget这]]></description><category></category></item><item><title><![CDATA[Fragment+ViewPager实习顶部导航栏效果]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/50890562</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/50890562</guid><author>HuberJobs</author><pubDate>Mon, 14 Mar 2016 23:14:23 +0800</pubDate><description><![CDATA[闲话不多说，先上效果图

可以看到我们要实现的效果有两个，1.滑动ViewPager的时候，顶部的黄色横条跟着一起滑动。当滑动完毕的时候，ViewPager对应的标题的颜色发生改变。
                                                                2.当点击一个标题的时候，ViewPager显示对应的Fragment，然后颜色也]]></description><category></category></item><item><title><![CDATA[Java设计模式透析之 —— 适配器(Adapter)]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/50866606</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/50866606</guid><author>HuberJobs</author><pubDate>Sat, 12 Mar 2016 17:47:20 +0800</pubDate><description><![CDATA[本文为转载文章，作者是郭霖大牛，传送门------http://blog.youkuaiyun.com/guolin_blog/article/details/9400141




今天一大早，你的leader就匆匆忙忙跑过来找到你：“快，快，紧急任务！最近ChinaJoy马上就要开始了，老板要求提供一种直观的方式，可以查看到我们新上线的游戏中每个服的在线人数。”


你看了看日期，不是吧！]]></description><category></category></item><item><title><![CDATA[git上传本地项目到github]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/50834324</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/50834324</guid><author>HuberJobs</author><pubDate>Wed, 09 Mar 2016 12:30:32 +0800</pubDate><description><![CDATA[分类：






说来也惭愧，我是最近开始用github，小白一个，昨天研究了一个下午。终于可以上传了，所以今天写点，一来分享是自己的一些经验，二来也是做个记录，万一哪天又不记得了:)

　　废话不多说，直接来，这次主要介绍的是windows下的安装和使用。

　　【第一步】建立先仓库

　　第一步的话看一般的提示就知道了，在github新]]></description><category></category></item><item><title><![CDATA[PSI and index do not match错误]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/50829603</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/50829603</guid><author>HuberJobs</author><pubDate>Tue, 08 Mar 2016 18:54:54 +0800</pubDate><description><![CDATA[在一次使用Android Studio的过程中莫名地出了这个错误，解决办法：]]></description><category></category></item><item><title><![CDATA[Handler、Looper、MessageQueen、Message的关系及个人理解]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/50829218</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/50829218</guid><author>HuberJobs</author><pubDate>Tue, 08 Mar 2016 18:41:38 +0800</pubDate><description><![CDATA[很久之前就说过要写这篇博客的，但是由于学习上过于紧张，一直空写。人就是这样，总会被这样那样的事情左右着。希望以后能做到一周一到两篇关于所学知识的总结或理解吧。治愈懒癌症，做一个有计划有条理的人。
在我看来Handler、Looper、MessageQueen、Message分别代表的是老板、秘书、日程表、每个日程。日程表（MessageQueen）负责存储将要执行的日程（Message）,而秘书]]></description><category></category></item><item><title><![CDATA[Android的错误]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/50814392</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/50814392</guid><author>HuberJobs</author><pubDate>Sun, 06 Mar 2016 17:52:27 +0800</pubDate><description><![CDATA[在这次的App开发过程中遇到了这个错误
Unable to start activity ComponentInfo{com.sanisy.inbook/com.sanisy.inbook.MainActivity}: java.lang.RuntimeException: A TaskDescription's primary color should be opaque
这个错误的原因是：]]></description><category></category></item><item><title><![CDATA[Activity的基础知识1]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/50811557</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/50811557</guid><author>HuberJobs</author><pubDate>Sun, 06 Mar 2016 00:57:37 +0800</pubDate><description><![CDATA[Activity的生命周期




单个Activity的生命周期
当点击返回键的时候，Activity退到后台。会执行onPause()和onStop()这两个方法。当再次进入该Activity时会执行onRestart()、onStart()和onResume()方法。
两个Activity之间跳转的生命周期
如果有A这个Activity跳转到B的Activity,那么A这个A]]></description><category></category></item><item><title><![CDATA[集合排序]]></title><link>https://blog.youkuaiyun.com/HuberJobs/article/details/50602432</link><guid>https://blog.youkuaiyun.com/HuberJobs/article/details/50602432</guid><author>HuberJobs</author><pubDate>Thu, 28 Jan 2016 19:13:02 +0800</pubDate><description><![CDATA[在Java中对一个装着对象的集合进行排序有两种方法：
         1. 对象实现Comparable接口
         2. 使用Comparator接口
我们定义一个Student对象，包含两个成员：名字name和学号number，实现Comparable接口
public class Student implements Comparable{
	private String]]></description><category></category></item></channel></rss>