`
yaochaosheng
  • 浏览: 52658 次
  • 性别: Icon_minigender_1
  • 来自: guangzhou
文章分类
社区版块
存档分类
最新评论
文章列表
转自http://leves.iteye.com/blog/1041890   根据我现有的阅读和谈话,我所理解的今天Facebook的架构如下: Web 前端是由 PHP 写的。Facebook 的 HipHop [1] 会把PHP转成 C++ 并用 g++编译,这样就可以为模板和Web逻贺业务层提供高的性能。 业务逻辑以Service的形式存在,其使用Thrift [2]。这些Service根据需求的不同由PHP,C++或Java实现(也可以用到了其它的一些语言……) 用Java写的Services没有用到任何一个企业级的应用服务器,但用到了Facebook自己的定制 ...
导读:路由器IP过滤指的是通过在路由器中加入外网或国外的IP黑名单,使得内网或国内无法访问外网或国外的这些IP,达到限制访问的目的。强制使用代理服务器的过滤方式通常只在大型企业中应用,指的是内网必须通过代理服 ...
Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展 Java程序的功能。 java native方法是指本地方法,当在方法中调用一些不是由java语言写的 ...
Unicode码扩展自ASCII字元集。在严格的ASCII中,每个字元用7位元表示,或者电脑上普遍使用的每字元有8位元宽;而Unicode使用全16位元字元集。这使得Unicode能够表示世界上所有的书写语言中可能用於电脑通讯的字元、象形文字和其他符号。Unicode最初打算作为ASCII的补充,可能的话,最终将代替它。考虑到ASCII是电脑中最具支配地位的标准,所以这的确是一个很高的目标。 ASCII适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。 Unicode码:Unicode ...
在socket编程时经常出现安装程序到模拟器上后出现:application stop unexpectly的异常   要注意的地方有: 创建项目时注明min sdk version(会在manifest中会自动生成)——并使用对应的api版本的avd模拟器去运行程序在manifest中加入必要的权限如INTENET最绝的是如果实在不行则重新建立一个新的项目,拷贝过去,应该可以了!  
在activity文件中引用到R文件的内容时,有时会给出没有此字段的错误——这是因为自动生成的R文件中没有你引用到的字段。   R文件是当你编辑了res下的内容后保存时自动生成的。   此时可以:1.先检查你的代码,代码有误,R.java文件是生成不了的 2. 把Project ----> Build Automatically那个选项勾上,让工程每次修改完后都会自动编译,这样R.java会是最新的(这时候程序有误,不会生成) 3. Project ---> Clean,点开后,选中你的工程,然后OK,会Reset你的工程设置,然后重新Build一下,这样三步下来,就能搞 ...
关于apache tomcat一直以为没什么不同。   摘自百度 apache:侧重于http server tomcat:侧重于servlet引擎,如果以standalone方式运行,功能上与apache等效 , 支持JSP,但对静态网页不太理想; apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。     基本在使用是没什么留意,不过对于开发者有个比较重要的不不同: 1.如果要将本机配置成服务器,一般按照apache并启动 ...
效率低下的配置调试了很久..还是有些问题没有解决..   首先说一点题外话:对于android工程中的R文件的损害或丢失,只需要直接点击android工程,选择android tools 选项,点击Fix Project Properties就会自动生成gen 文件夹下的R文件—— ...
有时候点run运行程序后在Eclipse的控制台里可以看见错误 ERROR: the user data image is used by another emulator. aborting 原因是你上次没有将该模拟器正常关闭导致的,他会默认锁定该模拟器还是在运行,资源被占用了!    解决方法有多种: 一种是进入:/Documents and Settings / 用户 / .android /的AVD / *设备* / (比如我的目录是:C:\Documents and Settings\Administrator\.android\avd\ycs.avd).然后删去以.lock ...
android中可以使用多种shader对图像进行渲染,常见有下: BitmapShader位图 LinearGradient线性 RadialGradient光束 SweepGradient梯度 ComposeShader混合     基本步骤是: 1.首先创建好要设置的渲染对象shader 2.接着使用paint对象的setShader方法传入该shader对象(然后刷新页面,触发onDraw方法则可使用新的渲染对象画图了!!)     实例关键代码: bm = BitmapFactory.decodeResource(getResources(), R.draw ...
现总结android下四个基本动画的方法     RotateAnimation ScaleAnimation AlphaAnimation TranslateAnimation     具体用法如下: 1.Animation rotateAnimation = new RotateAnimation(+90f, +270f,                                                                                   Animation.RELATIVE_TO_SELF, 0.9f,            ...
堆排序————通过在将数据读入的过程中建小堆,再每次取出root,并重构该堆,最后就得到从小到大的序列。   堆排序基于堆结构,堆结构整棵树是平衡的,而且他的数组实现方式对空间的利用率也很高。平均情况下他要比快速排序慢一个常数因子,但是他很适合由于数据集太大而放不进内存的排序情况(仍是原地排序)——非原地排序只学过归并排序。归并排序也适用于数据太大而放不入内存的情况。   建堆要用O(n)的时间,并且n次取得最大元素要用O(logn)的时间——将root与最后一个元素交换位置将新的root下降到合适位置需要O(logn)的时间,再删除旧根。因此整个时间代价是O(nlogn)。 堆排序更 ...
归并/合并排序   合并排序的主要思想是:把两个已经排序好的序列进行合并,成为一个排序好的序列。 我们可以把需要排序的数据分解成N个子序列,每个子序列都是只有一个元素的"有序序列",然后不断的合并成两个元素,四个元素,八个元素...的有序序列,这就是归并的过程。   例如,81726354:(1)分成9172 6354 (2)把8172 分成 81 和72 把6354分成63和54(3)81分成8和1,开始反向合并,合并为18, 同理72,63,54,也可以分解成单个合并为27,36,45(4) 现在变为了 18, 27, 36, 45了,这个时侯,18 和27能合 ...
快速排序的思想:通过定位一个轴值,分别使用两个指针从向前向后找到比轴值大的数字,和从后向前找到比轴值小的数字,交换指针上的数字,直到两个指针相遇。此时在相遇处左边的值都小于轴值,右边的值都大于轴值,于是把轴值与这个位置上(左指针指向)的值交换位置,此时轴值在这个序列中的位置也就定下来了!接着就分别对轴值左边的序列和右边的序列再次应用这个方法直到整个序列都是有序的。       快速排序的步骤!!! 1定位轴值pivot,最好随机取一个轴值以避免原序列已经有序的情形,也可以直接选择序列中间的位置的值作为轴值(暂时使用这一种) 2.将轴值与最后一个元素交换位置(不是必要的,但是实现起来方 ...
希尔排序(shell)    希尔排序是不稳定的   主要思想借用了合并排序的思想。不过他不是左边一半右边一半,而是按照步长来分,随着步长减少,分成的组也越少。然后进行各组的插入排序 换句话说,就是按照步长从大到 ...
Global site tag (gtag.js) - Google Analytics