09 2013 档案

摘要:原文作者Alan Skorkin是一名软件开发人员,他在博客中分享对软件开发相关的心得,其中有很多优秀的文章,本文是其中的另一篇。Alan认为:阅读优秀代码是提高开发人员修为的一种捷径。以下是全文。我突然想起来,很多程序员都讨厌阅读代码。来吧,承认吧! 每个人都喜欢编写代码,编代码是件趣事。 另一方面,阅读代码也不容易。 不仅不容易(编注:参见《微软资深软件工程师:阅读代码不容易》), 而且还非常枯燥,咱们要面对这一事实。任何不是你的代码都不怎样。(虽然我们没有说出来,但我们都是这样想的。)编者按:即便是你自己几个小时之前写的代码,也会看起来很烂。时间越久,看起来越烂。 所以,为什么你要浪费时 阅读全文
posted @ 2013-09-20 16:00 karlthas 阅读(329) 评论(0) 推荐(0)
摘要:三态模型:在多道程序系统中,进程在处理器上交替运行,状态也不断地发生变化。进程一般有3种基本状态:运行、就绪和阻塞。(1)运行:当一个进程在处理机上运行时,则称该进程处于运行状态。处于此状态的进程的数目小于等于处理器的数目,对于单处理机系统,处于运行状态的进程只有一个。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。(2)就绪:当一个进程获得了除处理机以外的一切所需资源,一旦得到处理机即可运行,则称此进程处于就绪状态。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排 阅读全文
posted @ 2013-09-18 10:51 karlthas 阅读(10437) 评论(0) 推荐(0)
摘要:2014哈尔滨阿里笔试题1.单选题1.假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函数A:h(K)=K/N;B:h(K)=1;C:h(K)=KmodN;D:h(K)=(K+rand(N))modN,rand(N)返回0到N-1的整数答案:d2.下面排序算法中,初始数据集的排列顺序对算法的性能无影响的是:A:堆排序B:插入排序C:冒泡排序D:快速排序答案:a3.下面说法错误的是:A:CISC计算机比RISC计算机指令多B:在指令格式中,采用扩展操作码设计方案的目的是为了保持指令字长不变而增加寻址空间C:增加流水线段数理论上可以提高CPU频率D:冯诺依曼体系结构的主要特征是存储程 阅读全文
posted @ 2013-09-18 10:15 karlthas 阅读(3061) 评论(1) 推荐(1)
摘要:实时操作系统 实时操作系统 英文称Real Time Operating System,简称RTOS。 1.实时操作系统定义 实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。因而,提供及时响应和高可靠性是其主要特点。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。 实... 阅读全文
posted @ 2013-09-12 16:54 karlthas 阅读(7084) 评论(0) 推荐(2)
摘要:IoC与DI 首先想说说IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听她们的兴趣爱好、qq号、电话号、ip号、iq号………,想办法认识她们,投其所好送其所要,然后嘿嘿……这个过程是复杂深奥的,我们必须自己设计和面对每个环节。传统的程序开发也是如此,在一个对象中,如果要使用另外的对象,就必须得到它(自己new一个,或者从JNDI中查询一 阅读全文
posted @ 2013-09-12 14:55 karlthas 阅读(310) 评论(0) 推荐(0)
摘要:转载来源:http://blog.sina.com.cn/s/blog_48f587a80100k630.htmlC++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗? 能!struct能继承吗? 能!!struct能实现多态吗? 能!!!既然这些它都能实现,那它和class还能有什么区别?最本质的一个区别就是默认的访问控制:默认的继承访问权限struct是public的,class是private的。你可以写如下的代码:struct A{ char a;};struct B : A{ cha 阅读全文
posted @ 2013-09-10 15:07 karlthas 阅读(323) 评论(0) 推荐(0)
摘要:一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。-程序结束后有系统释放4、文字常量区—常量字符串就是放在这里的。程序结束后由系统释放5 阅读全文
posted @ 2013-09-10 11:36 karlthas 阅读(239) 评论(0) 推荐(0)
摘要:从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传递参数是有本质上的不同的:指针传递参数本质上是值传递的方式,它所传递的是一个地址值。值传递过程中,被调函数的形式参数作为被调函数的局部变量处理,即在栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为 阅读全文
posted @ 2013-09-10 11:17 karlthas 阅读(266) 评论(0) 推荐(0)
摘要:#includeusingnamespacestd;intDP(inta[],intsize){intTempSum,CurSum;CurSum=a[0];intmax=CurSum;for(inti=1;i0){CurSum=(TempSum+a[i])>=a[i]?(TempSum+a[i]):a[i];}else{CurSum=a[i];}if(CurSum>max){max=CurSum;}}returnmax;}intmain(){inta[]={1,-2,3,10,-4,7,2,-5};intresult=DP(a,8);cout<<result<&l 阅读全文
posted @ 2013-09-06 16:52 karlthas 阅读(332) 评论(0) 推荐(0)