2012年4月1日

Java参数传递笔记

摘要: java值传递与引用传递1、对象是按引用传递的---带"="号的赋值操作2、Java应用程序有且仅有的一种参数传递机制,即按值传递---由"函数调用"引起的3、按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本4、按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本5、注意:String虽是对象,但永远是传值 阅读全文

posted @ 2012-04-01 10:03 sprzhing 阅读(191) 评论(0) 推荐(0) 编辑

2012年2月28日

数据决定程序结构

摘要: 能用小程序实现的,就不要编写大程序,更一般的问题也许更容易解决。 程序员在节省空间方面无计可施时,将自己从代码中解脱出来,退回起点并集中心力研究数据,常常能有奇效。(数据的)表示形式是程序设计的根本。 1.使用数组重新编写重复代码。冗长的相似代码常常可以使用最简单的数据结构----数组来更好地表述。 2.封装复杂的结构。当需要非常复杂的数据结构时,使用抽象术语进行定义,并将操作表示为类。 3.尽可能使用高级工具。超文本、名值对、电子表格、数据库、编程语言等都是特定问题领域中的强大的工具。 4.从数据得出程序的结构。通过使用恰当的数据结构来替代复杂的代码,从数据可以得出程序的结构。... 阅读全文

posted @ 2012-02-28 15:08 sprzhing 阅读(217) 评论(0) 推荐(0) 编辑

2012年2月26日

向量旋转算法

摘要: 问题:如何将一个向量abcdefghigklmn向左旋转i个位置。前提是采用几字节的内存,而时间复杂度跟向量长度成正比。 这个问题来自《编程珠玑》,当我看了第一个“杂技”算法,感觉挺有意思的,从我们的思考角度来讲,该算法很有效,就是将第一个元素先缓存起来,然后每隔i个位置修改一下本位置的数据,直到所有的元素都被修改了为止,实现了下,感觉判断所有元素是否都被修改还需要至少一个字节来记录。 接着看到了向量旋转算法,感觉挺有意思的,ab变为ba,其实就是a的转置*b的转置后再转置。这成为了一种普遍的比较节省内存的“向量旋转算法”。 阅读全文

posted @ 2012-02-26 12:16 sprzhing 阅读(836) 评论(0) 推荐(0) 编辑

2012年1月4日

JSP实现数据库操作问题记录

摘要: 1.达梦数据库安装完毕后,建立数据库,不要清理系统垃圾,因为DM的启动还是依赖于系统日志的。2.JSP与数据库和EXTjs的通信可以使用javabean来实现界面和数据业务的分离3.使用JSONObject和JSONArray来进行通信时,json-lib库需要五个依赖库,他们分别是common-beanutils-core、common-collections、common-lang、common-logging、ezmorph。可以到http://www.docjar.com上搜索下载 阅读全文

posted @ 2012-01-04 15:12 sprzhing 阅读(180) 评论(0) 推荐(0) 编辑

2011年12月13日

C陷阱与缺陷读书笔记

摘要: 1. 数组和指针只有在函数传参的时候是等价的,因为函数是无法传递数组的,所以在传递前将数组转换成为数组个元素的指针,其它情况下不同,比如extern int a[10];和extern int * a;是完全不同的。2.ANSIC标准中禁止对string literal作出修改(不能逐个字作修改)3.一个变量的声明:将变量去掉就变成了变量的类型,根据这一点可以判断是函数声明还是定义数据类型或是函数调用4.避免“栏杆错误”:one 首先考虑最简单情况下的特例,然后将结果外推 two 仔细计算边界,绝不掉以轻心5.C语言设计入界点0出界点n不在数组中,更好地计算个数,不对称美6.C语言优先级:四个 阅读全文

posted @ 2011-12-13 15:57 sprzhing 阅读(186) 评论(0) 推荐(0) 编辑

2011年12月4日

自旋锁本质

摘要: 自旋锁的实现是靠维护一个16位的整数----slock,该变量是个全局的,所有处理器共享的,汇编代码实现了首先将slock的内容换到每个cpu中维护的一个inc变量中,然后slock+=0x0100,开始的时候,inc的初始值为0x0100,slock的高八位为记录多少进程申请了自旋锁,低八位为标示有多少进程释放了自旋锁。 进程在申请自旋锁时候,首先将slock的内容拷贝到自己的inc变量中,然后增加了0x0100,这样就每次一个进程申请自旋锁,高八位就加1,而进程这样做了后,就比较自己inc的高八位和低八位是不是一样,如果不一样就将slock的第八位拷贝过来反复检测,如果一样说明,可... 阅读全文

posted @ 2011-12-04 12:59 sprzhing 阅读(423) 评论(0) 推荐(0) 编辑

2011年11月8日

Linux下Select用法

摘要: 由于时间关系,先将我用的代码写到这里,稍后解释。这里服务器端有两个可能阻塞的描述符:一个是网络的,另一个是来自终端的,用select可以保证无论是客户端还是终端给它发送数据,它都可以处理,当然还有更高效率的实现方式,就是poll和epoll,网上有它们查找过程的不同。这里不赘述。18 #include <sys/types.h>19 #include <sys/socket.h>20 #include <netinet/in.h>21 #include <stdio.h>22 #define SERVER_PORT 600023 24 void 阅读全文

posted @ 2011-11-08 23:34 sprzhing 阅读(422) 评论(0) 推荐(0) 编辑

Linux文件IO-例会笔记总结

摘要: 上周日实验室例会主要涉及linux文件操作的内核实现。主要讨论了linux下对文件进行操作时,系统内部调用了那些函数以及它们是怎么相互配合的。 linux系统是怎样对不同介质和不同的文件系统提供统一的文件操作接口呢?答案是:VFS。系统中所有文件系统不但依赖VFS(虚拟文件系统),而且也靠它来协同工作,我们来认识一下系统虚拟文件系统中的几个成员吧。在见识它们庐山真面目前,先看下用户调用了系统调用write()后的过程,首先被一个通用的系统调用sys_write处理,该函数找到文件描述符所在的文件系统实际给出的写操作,然后执行操作。实际文件系统的写方法是文件系统实现的一部分,数据最终通过该操作写 阅读全文

posted @ 2011-11-08 23:23 sprzhing 阅读(342) 评论(1) 推荐(0) 编辑

2011年11月6日

Linux不得不说的技巧

摘要: 一sudo在LINUX里当我们需要执行一条root权限的命令时,每次都要su到root,总是有些不方便?那么我们可以用sudo代替它。fedora 15默认新建的用户不在sudo组,但可以编辑/etc/sudoers文件将普通用户加入sudo组。要注意的是修改该文件只能使用visudo命令:1、首先切换到root#su -(注意有- ,这和su不同,在用命令"su"的时候只是切换到root,但没有把root的环境变量传过去,还是当前用户的环境变量,而使用带横线参数的"su -"命令则将环境变量也一起转换过去,就象用root登录一样)2、然后#visudo 阅读全文

posted @ 2011-11-06 23:14 sprzhing 阅读(395) 评论(0) 推荐(0) 编辑

2011年11月3日

VIM强大的help

摘要: vim是linux下非常流行的主流编辑器之一,它的功能很强大,使用它的人无非有3种:第一种人刚接触vim对它的模式切换很头痛,他们用vim写文档的速度自然是很忙的,还不如用gedit,这种人建议多加训练;第二种是已经比较熟练地运用vim常用的命令,已经成为了linux下代替windows下记事本功能的编辑器;第三种是骨灰级玩家,他们对vim的要求随心所欲,配置插件、语法高亮、自动补全、代码之间跳动等等。当然要想熟练停留在第二种级别,其实很多时候就像在linux终端下找man一样,Vim提供了及其强大的帮助功能----help。一 :help直接输入help可以看到帮助文档的起点,ZZ是退出或. 阅读全文

posted @ 2011-11-03 22:49 sprzhing 阅读(1748) 评论(0) 推荐(0) 编辑

导航