- 博客(25)
- 资源 (2)
- 收藏
- 关注
原创 Python Decorator
很多人认为Python的装饰器就是Java的注解。虽然表现的形式很类似,但本质上有很大的差别,甚至Python的装饰器更加灵活。本文就是对机制的简单介绍。
2016-05-28 20:53:02 744
原创 中国GDP什么时候会超过美国
经常看到网上讨论中国什么时候能赶超美国的争论。且不说这个问题有多无聊,讨论这个问题的人也很无聊。看了半天,也没看出个所以然。还不如针对这个问题收集数据,做做分析。本文主要收集GDP相关数据。这个指标现在争议很大,不能够反映国民经济的很多方面。但就统计数据的质量来说,GDP比较全面,而且容易获得。这里选取世界银行的统计数据,中国和美国2005年到2014年十年间的GDP数据如下
2016-01-06 13:35:43 2829
原创 Spark示例之数组排序
数组排序是一个常见的操作。基于比较的排序算法其性能下限是O(nlog(n)),但在分布式环境下面我们可以并发,从而提高性能。这里展示了Spark中数组排序的实现,并分析了性能,同时尝试找到导致性能提升的原因。
2015-02-26 23:07:00 3558
原创 Spark本地安装和简单示例
Spark是基于内存的大数据分析平台,由UC Berkely AMP lab发布的一大神器。相比Hadoop而言,其最大的优势是基于内存,这样可以极大提高其速度和通用性。本文从最简单的安装到第一个应用脚本,引导初学者入门。。。。
2015-01-26 22:47:23 1958
原创 Java类的初始化
Java提供了两种不同的初始化类型,分别是类的初始化和对象的初始化。类成员都是静态的,默认会设置一个值。对象的初始化会在构造函数里面进行。但如果想要赋给静态变量非默认值,或者是初始化一类共有的对象属性(不论调用哪个构造函数),那么就需要一些特殊的方法。Java提供了静态初始化块和非静态初始化块来处理这两种情况。
2014-08-21 22:26:41 1346
原创 本地变量初始化
函数里面的本地变量不会被初始化。在Java里面,本地变量其实就是本地变量数组的一个槽(slot)。作为一个类型安全的语言,Java强制要求对本地变量进行初始化。从字节码的角度,其必须有astore_?指令来对槽进行赋值。
2014-06-16 23:05:19 1559
原创 Java的ForEach
ForEach是Java5带来的新特性之一。尽管有其局限性,ForEach还是极大方便了程序员编写简介的代码。那么,其底层是如何实现的呢?
2014-05-01 21:44:42 1588
原创 面试题:统计给定位串中1的个数
种群计数就是统计一个位串中1的个数。Java的Short,Integer和Long都有bitCount方法,就是种群计数的实现。这类问题不仅很基础,也很重要。如果将其作为面试题,很容易考察算法能力的高低。
2014-04-20 20:46:47 1489
原创 Rsync的实现算法
rsync是unix系统下很强大的同步工具,可以将源文件或者目录同步到目标文件或目录。与简单的scp相比,rsync具有传输速度快,高效的特点。借助其核心的差分算法,rsync可以实现最小化传输,即只传输变动的部分。
2014-04-16 23:24:26 2053
原创 程序员必备:字符串哈希函数比较
一个股票交易系统的后台,为了能快速查找各种股票代码的Tick,会计算其哈希值,然后存贮在哈希表里面。一个好的哈希函数应该能实现很好地分布性,减少冲突。这里选取了几种常用的字符串哈希,包括BKDRHash,APHash,JSHash,RSHash,SDBMHash,PJWHash,ELFHash和DJBHash,通过在不同的字符串集合测试,来测试其性能。
2014-02-23 22:19:51 10404
原创 面试题:支持O(1)时间内完成pop,push和max的栈
一般的栈,本身的pop和push的操作就是O(1)的,可以考虑使用一个变量来存储最大值。问题在于,如果这个最大值被pop出去,这个变量就需要重新计算。如果通过遍历一遍来求出,则需要O(n)的时间,达不到要求。此外,任何想通过一个排好序的序列来解决最大值的pop问题的方案,都有一个致命缺点,就是每次push的时候,需要进行插入。因此需要更巧妙的方法。。。。
2014-01-26 22:51:00 11398
原创 ScrollView基础
ScrollView 基础ScrollView 可以实现列表数据的滚动展示,类似ListView的效果。ScollView要比ListView原始,因为自己要手动实现数据到视图的转换。ListView则只要实现Adapter就好了。一个Layout 下面是一个通用的ScrollView的布局: <RelativeLayout android:layout_
2013-02-24 22:12:34 1044
原创 Android下TabActivity的使用(2)
上一篇写了TabActivity的基本用法,这节来讲诉TabActivity的界面定制。很多项目都需要重新设计标签的位置和样式,比如将标签放到下方,使用图片而不是文字来显示等等。界面的结构下面这幅图展示了TabActivity的结构:其中,TabHost是根元素,其id为@android:id/tabhost,包含了TabWidget和TabContent。TabWidget就
2012-12-30 22:58:49 991
原创 Android下TabActivity的使用(1)
这篇文章总结了TabActivity的三种基本用法,具体的例子都取自ApiDemo。基本知识 要实现多标签的Activity,目标Activity(就是你建立的那个)首先要实现TabActivity类。这样,用户就可以通过getTabHost()方法来获得对应的TabHost对象,从而动态地添加标签。下面给出了标签切换时,如何设定显示区内容的三种方法。从Layout文
2012-12-16 21:56:29 1087
原创 VIM的标记:mark
使用vim编辑时,经常需要对好几行的大段代码进行操作,比如:缩进,删除,拷贝等等。比如拷贝,如果使用yy命令,还需要计算行数,十分不便。如果可以对位置进行标记,大段的代码就可以通过前后位置来标记。这样就方便多了。vim的mark就是最好的解决方案。所谓mark,就是一个位置,包括行号和列号。要对一个位置进行标记,使用m[a-zA-Z]就可以了。这意味你可以标记多达72个位置。不过一般我们用不到
2012-12-05 21:36:58 1325
原创 Android开发之多线程环境下更新界面
Android应用程序的界面运行于独立的线程里。但有时候软件需要单独的线程来处理数据,然后再更新界面。这样能够保证界面运行的流畅又不至于影响用户体验。这里的问题在于,UI只能被界面线程更新,在多线程环境下回出错。本文会展示这种典型的错误,以及解决方案。下面以计时器为例。在这个应用场景中,计时是在另一个线程里面完成的,然后再由UI显示出来。多线程更新界面的常见问题下面这段代码使用了一个T
2012-11-13 22:39:43 1829
原创 水平、垂直对齐
这篇文章的想法,开始于我做的一个手机端项目。该项目基于phonegap, 使用通用的web开发技术。在登录页面那里,我想让表单显示在页面中间,并意识到这个问题可以有很多解决方案。如能比较这些解决方案,那将是十分有意思的事情。HTML代码 为了便于研究,使用如下的html代码: content here! 分类水平的对齐有三种,分别是
2011-12-26 21:26:44 3084
原创 topcoder SRM 503报告
第一题:涂面包描述: 你要在面包片上涂layer_count层,做成山莓酱面包。考虑到每次涂酱,你只能最多涂upper_limit层,要求算出最少的涂酱次数。 分析: 要求最少的涂酱次数,只要每次涂尽可能多的山莓酱就好了。这是很典型的贪心思路。 代码:int ToastXRaspberry::apply(int upper_limit, int layer_count) { if(layer_count % upper_limit == 0){
2011-04-17 20:05:00 1084
原创 vimperator介绍
<br /> 在vim中上网,会让无数vimer心动。与vim那些实现脚本所提供粗糙的浏览效果相比,将一个浏览器改造成vim样式的,无疑效果会好很多。vimperator lab成功了,将firefox、Thunderbird和Sunbird编程了有模式的。<br /> 作为一个firefox插件,vimperator将firefox编程了一个模式浏览器。和vim中快速的代码编辑速度相似,vimperator提供给vimer一个快速浏览网页的方法。该项目的发起者mike就是一名疯狂的vime
2011-03-02 18:28:00 1398
原创 位置更新的信息代价模型(一)
位置服务中移动对象需要不断想服务器报告自己的位置。服务器所获得的位置信息越精确,移动对象所能获得的服务就越好。考虑到移动对象位置固有的不精确性,系统实现就必须考虑什么时候以及什么频率进行位置更新。
2011-02-27 23:52:00 1060
原创 php中的文件包含
php关键词 php中用于文件包含的关键词有:include、include_once、require、require_once。一般来说,把include和require分在一组里,而include_once和require_once是一种改进完善形式。本文通过研究include和require的性质,兼顾include_once和require_once,获得php文件包含的
2010-02-12 23:40:00 2614
原创 PHP面向对象程序设计--概述
一、类1.类的定义class classname{ class definition;}更具体的有:class classname [ extends baseclass ]{ [ var $property [ = value ]; ... ] [ function functionname (args
2009-08-24 22:18:00 988
原创 Google主页的登录按钮
本人笔记本被偷的一星期内,发生了很多事情,其中之一就是Google主页右上角的登录按钮和帐户状态栏消失了。 Google自从被央视曝光以来,坏事不断.先是google外文页面无法使用,后又联想功能被撤销,现在是google帐户的入口被隐藏了。Google在中国之艰难,由此可见一斑。 Google Accounts的login按钮被隐藏之后,网络上反应平平,好像大家
2009-07-26 22:46:00 1746
Concepts, Techniques, and Models of Computer Programming
2011-12-31
Smarty.PHP.Template.Programming.and.Applications
2009-11-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人