随笔分类 -  转载

摘要:var test=[1,2,3,4,5,6,7]; var arr=test; arr.splice(2,1); alert(test);//1,2,4,5,6,7 JS数组实质上是对象。因此,上面的源代码最后打印出的是1,2,3,4,5,6。这是因为将test赋值给arr实际上是将数组的引用赋值给arr,所以操作arr也同时会改变源数组。要实现数组克隆,可以下方法:Array.prototype.clone=function(){ return this.slice(0); } 阅读全文
posted @ 2013-10-26 23:42 dzqabc 阅读(9586) 评论(0) 推荐(0) 编辑
摘要:Event Loop 是一个很重要的概念,指的是计算机系统的一种运行机制。 JavaScript 语言就采用这种机制,来解决单线程运行带来的一些问题。 本文参考C. Aaron Cois 的《Understanding The Node.js Event Loop》,解释什么是 Event Loop,以及它与 JavaScript 语言的单线程模型有何关系。 想要理解 Event Loop,就要从程序的运行模式讲起。运行以后的程序叫做"进程"(process),一般情况下,一个进程一次只能执行一个任务。 如果有很多任务需要执行,不外乎三种解决方法。(1)排队。因为一个进程一 阅读全文
posted @ 2013-10-24 01:25 dzqabc 阅读(290) 评论(0) 推荐(0) 编辑
摘要:为测试某个新功能,必需修改某个系统文件。而这个文件在只读文件系统上(总不能为一个小小的测试就重刷固件吧),或者是虽然文件可写,但是自己对这个改动没有把握,不愿意直接修改。这时候mount --bind就是你的好帮手。 假设我们要改的文件是/etc/hosts,可按下面的步骤操作: 1. 把新的hosts文件放在/tmp下。当然也可放在硬盘或U盘上。 2. mount --bind /tmp/hosts /etc/hosts 测试完成了执行 umount /etc/hosts 断开绑定。 阅读全文
posted @ 2013-09-15 22:36 dzqabc 阅读(369) 评论(0) 推荐(0) 编辑
摘要:下面介绍用重载new/delete运算符的方式来实现一个简单的内存泄露检测工具,基本思想是重载全局new/delete运算符,被检测代码调用new和delete运算符时就会调用重载过的operator new和operator delete,在重载的operator new里和operator delete里记录下内存申请和释放信息,从而判断内存使用情况。下面一步步介绍它的实现!1、全局new/delete的重载 先看一下重载new/delete的规则: 重载的operator new的参数个数任意,但第一个参数必须是size_t类型的,返回值必须是void*。重载operator delet 阅读全文
posted @ 2013-09-09 21:08 dzqabc 阅读(1393) 评论(1) 推荐(0) 编辑
摘要:如果你没删手机导航的话,开机会发现什么也没开,但是running services里手机导航竟然开着!相信大家都试过,买来大家都是只有移动定制的手机导航 能定位,其他都不行。中国移动为了不让大家用谷歌(愚民+挣钱),把谷歌服务包(GMS)给清掉了,这其实 是安卓最基本重要的服务包。!!!!!还有就是,手机导航一直占用GPS端口,导致其他软件无法使用此端口与gps交换数据。 很多机友的GPS一直有问题,下面给大家讲解一下怎么解决这个问题!现解决方法如下:★第1步.安装谷歌框架服务GoogleServicesFramework.apk(附件给了);★第2步.root手机,安装并运行RE管理器(ro 阅读全文
posted @ 2013-06-10 18:06 dzqabc 阅读(2815) 评论(0) 推荐(0) 编辑
摘要:转载:http://blog.chinaunix.net/uid-26818262-id-3219065.html红黑树键值需重载小于号即可,因为 if !a < b & !b < a then a==bSTL提供了许多好用的数据结构与算法,使我们不必为做许许多多的重复劳动。STL里实现了一个树结构-Red-Black Tree,它也是STL里唯一实现的一个树状数据结构,并且它是map, multimap,set,multiset的底层实现,如果学会了Red-Black Tree,那么对我们高效的运用STL是很有帮助的。1. 什么是红黑树红黑树是二叉查找树的一种,由于它能够保证树的高度 阅读全文
posted @ 2013-05-01 22:51 dzqabc 阅读(1158) 评论(0) 推荐(0) 编辑
摘要:TCP的三次握手是怎么进行的了:发送端发送一个SYN=1,ACK=0标志的数据包给接收端,请求进行连接, 这是第一次握手;接收端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它,可以通讯了,并且让发送端发送一个 确认数据包,这是第二次握手;最后,发送端发送一个SYN=0,ACK=1的数据包给接收端,告诉它连接已被确认,这就是第三次握手。之后,一个TCP连 接建立,开始通讯。*SYN:同步标志同步序列编号(Synchronize Sequence Numbers)栏有效。该标志仅在三次握手建立TCP连接时有效。它提示TCP连接的服务端检查序列编号,该序列编 阅读全文
posted @ 2013-03-04 23:51 dzqabc 阅读(1179) 评论(0) 推荐(0) 编辑
摘要:SOCK5代理服务器 : 被代理端与代理服务器通过“SOCK4/5代理协议”进行通迅(具体协议内容可查看RFC文档)。SOCK4代理协议可以说是对HTTP代理协议的加强,它不仅是对HTTP协议进行代理,而是对所有向外的连接进行代理,是没有协议限制的。也就是说,只要你向外连接,它就给你代理,并不管你用的是什么协议,极大的弥补了HTTP代理协议的不足,使得很多在HTTP代理情况下无法使用的网络软件都可以使用了。(例如:OICQ、MSN等软件)SOCK5代理协议又对前一版进行了修改,增加了支持UDP代理及身份验证的功能。它不是“协议代理”,所以它会对所有的连接进行代理,而不管用的是什么协议。HTTP 阅读全文
posted @ 2013-03-04 22:38 dzqabc 阅读(356) 评论(0) 推荐(0) 编辑
摘要:一、头文件gcc 在编译时寻找所需要的头文件 :※搜寻会从-I开始※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH※再找内定目录/usr/include /usr/local/include/usr/lib/gcc-lib/i386-linux/2.95.2/include/usr/lib/gcc-lib/i386-linux/2.95.2/include/g++-3/usr/lib/gcc-lib/i386-linux/2.95.2/i386-linux/include库文件但是如果装gcc的时候,是有给定的pr 阅读全文
posted @ 2013-03-04 22:20 dzqabc 阅读(1635) 评论(0) 推荐(0) 编辑
摘要:我们经常要对一整段代码进行注释,很多代码编辑器都提供了这样的功能:用快捷键“Ctrl + /”来实现“//”的多行注释。但是在用source insight的时候,发现竟然没有这样的功能。于是在网上搜了一下,sourceinsight里面的多行注释可以用宏来实现。以下是实现多行注释的宏代码(在别的网站copy过来的,经过测试,还是很好用的):macro MultiLineComment(){hwnd = GetCurrentWnd()selection = GetWndSel(hwnd)LnFirst =GetWndSelLnFirst(hwnd) //取首行行号LnLast =GetWndS 阅读全文
posted @ 2013-03-04 21:36 dzqabc 阅读(70623) 评论(0) 推荐(2) 编辑
摘要:浏览网页的时候突然看到一篇介绍关于source insight中文显示修正的方法,感觉非常好,也比较全面,于是在自己的source insight中又重新设置了一下。1、首先设置中文的显示,使中文能像英文或中文在vc中的显示一样比较紧凑,便于浏览,不过在进行实际的设置前说先要做一下说明:在代码中使用中文较多的主要有两个地方一个是函数或语句前的“/**/“注释,另一个就是语句右面的“//”注释。因此为了尽量的减少对配置的修改,我们只需要对这两处稍作修改就行了:”/**/“修改(把文字改为中文字体,斜体关掉),选项-->样式属性:”//“修改(把字体选为中文,斜体关闭),选项-->样式 阅读全文
posted @ 2013-03-04 21:09 dzqabc 阅读(14040) 评论(1) 推荐(0) 编辑
摘要:Function几乎是任何语言的元素之一,从Pascal,Fortran到C++,VB,几乎任何时代的语言都支持它。在C++里,随着 C++标准库的推出,人们开始渐渐的接触到另一种定义函数的方式:Functor。所谓Functor,其实就是重载了operator () 的类,其使用方式和普通函数差不多(这正是C++处处体现的一种思想:只在定义上有区别,在使用上毫无区别)。 譬如说,如果我们要定义一个函数,将传入的整型引用加一,我们可以有两种方法定义: inline void increase_one_func(int& i) { ++i; ... 阅读全文
posted @ 2012-10-26 21:41 dzqabc 阅读(471) 评论(0) 推荐(0) 编辑
摘要:Emeditor 目前来说是我个人感觉非常不错的一款记事本软件, 其中查找替换功能由于支持正则表达式而显得非常强大.^[ /t]*/n这个正则表达式代表所有的空行,指含有零个或零个以上空格或制表符、以换行符结尾、不含其它字符的行。(^|(?<=中国)).*?(?=中国|$)用正则表达式匹配特定字符串外的所有字符。指除“中国”外的所有其它字符,类似于反选功能。^[ /t]+查找以上字符,并替换为空,可删除行首空白(包括全半角空格和制表符)。[ /t]+$查找以上字符,并替换为空,可删除行末空白(包括全半角空格和制表符)。^[ /t]+|[ /t]+$查找以上正则表达式,并替换为空,可删除行 阅读全文
posted @ 2012-10-15 23:03 dzqabc 阅读(11230) 评论(0) 推荐(0) 编辑
摘要:ORA-00205: error in identifying control file, check alert log for more info翻译为:控制文件的错误,请检查警报日志中获得更多信息通过:/opt/oracle/diag/rdbms/ora11g/ora11g/alert/log.xml文件中找出实例启动日志里面会有如下信息:<msg time='2011-11-10T09:55:51.643+08:00' org_id='oracle' comp_id='rdbms'client_id='' type= 阅读全文
posted @ 2012-10-15 22:52 dzqabc 阅读(3327) 评论(0) 推荐(0) 编辑
摘要:1.The v$locked_object View The columns of this view are: •XIDUSN: Rollback segment number •OBJECT_ID: ID of the object being modified •SESSION_ID: ID of the session locking the object •ORACLE_USERNAME •LOCKED_MODE Example To find the table name that corresponds to a particular object ID in the v$loc 阅读全文
posted @ 2012-10-09 22:36 dzqabc 阅读(376) 评论(0) 推荐(0) 编辑
摘要:原意是备份一个hosts文件,然后修改hosts的内容的(作用大家懂的),用RE复制,然后粘贴就出现这个乱码的文件了,用RE删,提示删除成功,但再次进入/etc又会出现这个文件,我删了N次这个文件都阴魂不散,彻底晕倒了。 由于hosts文件在手机rom中,把手机接上电脑只能看到TF卡上的内容,所以只能在手机上想办法了。最后,解决办法是通过终端(shell)把它OK掉(删掉),估计用USB接到电脑用adb shell也可以,我没试验过。手机需要装上的软件如下:Better Terminal Emulator(超级终端) Root Explorer(简称RE) 超级终端的好处是基本与linux的终 阅读全文
posted @ 2012-09-23 23:26 dzqabc 阅读(2271) 评论(0) 推荐(0) 编辑
摘要:基础知识介绍:MIPS32的内部寄存器。最简单的办法就是通过GDB的命令,可以获得下面的列表(gdb) info registers zero at v0 v1 a0 a1 a2 a3R0 00000000 00000001 0000000f 0000000f 00000000 0000000f 0000000e 00000071 t0 t1 t2 t3 t4 t5 t6 t7R8 00000072 00000001 00000203 80003cb1 80003cb0 0000007f 00000080 00000008 s0 s1 s2 s3 s4 s5 s6 s7R16 00000001 阅读全文
posted @ 2012-09-05 00:25 dzqabc 阅读(10388) 评论(0) 推荐(0) 编辑
摘要:基础知识介绍: 1. MIPS32的内部寄存器。 最简单的办法就是通过GDB的命令,可以获得下面的列表 (gdb) info registers zero at v0 v1 a0 a1 a2 a3 R0 00000000 00000001 0000000f 0000000f 00000000 0000000f 0000000e 00000071 t0 t1 t2 t3 t4 t... 阅读全文
posted @ 2012-08-17 00:03 dzqabc 阅读(3694) 评论(0) 推荐(0) 编辑
摘要:指令长度和寄存器个数 MIPS的所有指令都是32位的,指令格式简单。不像x86那样,x86的指令长度不是固定的,以80386为例,其指令长度可从1字节(例如PUSH)到17字节,这样的好处代码密度高,所以MIPS的二进制文件要比x86的大大约20%~30%。而定长指令和格式简单的好处是易于译码和更符合流水线操作,由于指令中指定的寄存器位置是固定的,使得译码过程和读指令的过程可以同时进行,即固定字段译码。32个通用寄存器,寄存器数量跟编译器的的要求有关。寄存器分配在编译优化中是最重要的优化之一(也许是做重要的)。现在的寄存器分配算法都是基于图着色的技术。其基本思想是构造一个图,用以代表分配寄存器 阅读全文
posted @ 2012-08-16 23:59 dzqabc 阅读(5926) 评论(0) 推荐(1) 编辑
摘要:MIPS有32个通用寄存器($0-$31),各寄存器的功能及汇编程序中使用约定如下:下表描述32个通用寄存器的别名和用途;REGISTERNAMEUSAGE$0$zero常量0(constant value 0)$1$at保留给汇编器(Reserved for assembler)$2-$3$v0-$v1函数调用返回值(values for results and expression evaluation)$4-$7$a0-$a3函数调用参数(arguments)$8-$15$t0-$t7暂时的(或随便用的)$16-$23$s0-$s7保存的(或如果用,需要SAVE/RESTORE的)(sa 阅读全文
posted @ 2012-08-16 23:56 dzqabc 阅读(13857) 评论(0) 推荐(2) 编辑