09 2013 档案

摘要:英文原文:The 10 commandments for happiness and success 生命短暂,无可浪费,这我们都知道。然而,大多数人都处中一种缺省状态的生活中,逼迫自己去认为很幸福——虽然事实上不是。为什么?因为我们让社会来指定该如何的去生活、什么才是成功和什么才是幸福。像金钱和名誉这样的东西被赋予太大的分量,成为祸根,阻碍了我们寻求生活的真正本质:活出自我,做有价值的事情。 如果让我给一个新生命(比如我未来的孩子)一点建议,我将衷心建议他遵循下面这 10 条诫律: 1/ 不要跟别人比。 自从上小学起,我们就被人们用分数来激励去竞争,忘记了教育的本质是学习。父母希... 阅读全文
posted @ 2013-09-30 11:34 红宝石 阅读(226) 评论(0) 推荐(0)
摘要:Introsort(内观排序)2013-09-28 23:59 by v.la,51阅读,0评论,收藏,编辑.NET 4.5 这个版本的Array.Sort更改了STL的内观排序算法,那相对于快速排序内观排序到底有什么优化过的呢?根据维基百科所说,这个排序算法首先从快速排序开始,当递归深度超过一定深度(深度为排序元素数量的对数值)后转为堆排序。采用这个方法,Introsort既能在常规数据集上实现快速排序的高性能,又能在最坏情况下仍保持 O(N log N) 的时间复杂度。由于这两种算法都属于比较排序算法,所以Introsort也是一个比较排序算法。按我的理解可以说是快速排序+插入排序+堆排序 阅读全文
posted @ 2013-09-30 11:01 红宝石 阅读(493) 评论(0) 推荐(0)
摘要:近期有个项目需要用到号码归属查询,归属地数据库可能比不上ip138,淘宝上也有卖的-,-! 文本提供一个279188条记录并压缩成562KB的归属地数据。我在互联网上搜索了相关文章,要不是数据库查询或者是访问网上的api,到底有没有更好的方式,我想各大手机软件的归属地都是属于本地查询的。当我发现了Android Jni 使用C++对二进制文件查询这篇文章,发现效率真是高,作者的算法也相当出色。于是直接把它用C#来实现了一个版本,并且加上号码的类型,效率上没相差太多,起码我们的项目已经够用了。这是原文的一段话:随便去网络上搜索一个号码归属地数据库下载,你可能会找到各种格式,access,txt, 阅读全文
posted @ 2013-09-30 10:56 红宝石 阅读(386) 评论(0) 推荐(0)
摘要:先介绍下故事背景,假如现在要做一个MigrationProject,要建立比较多的Plan (比如50个),在Project中你需要完成下面的任务:1stround, 要把所有的PLAN都先跑一遍FULL MIGRATION2ndround, 然后把所有的PLAN都做若干次incremental migration直到cut off time具体要求:Job需要串行运行,涉及到人去手工操作的地方要尽量少(比如,不想用每个PLAN里设置SCHEDULE的方式,首先一点是每个PLAN都设置上SCHEDULE这就需要不少时间,之后中途发现某些JOB有些问题,想先暂停所有JOB还得去把它们都DISAB 阅读全文
posted @ 2013-09-27 17:49 红宝石 阅读(321) 评论(0) 推荐(0)
摘要:Convert.ToInt32()与int.Parse()的区别(1)这两个方法的最大不同是它们对null值的处理方法:Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。没搞清楚Convert.ToInt32和int.Parse()的细细微区别时千万别乱用,否则可能会产生无法预料的结果,举例来说:假如从url中取一个参数page的值,我们知道这个值是一个int,所以即可以用Convert.ToInt32(Request.QueryString["page"]),也可以用,int.Parse(Request.Q 阅读全文
posted @ 2013-09-27 09:28 红宝石 阅读(249) 评论(0) 推荐(0)
摘要:首先lock和Minitor有什么区别呢?其实lock在IL代码中会被翻译成Monitor。也就是Monitor.Enter(obj)和Monitor.Exit(obj).lock(obj){}等价为:try{Monitor.Enter(obj)}catch(){}finally{Monitor.Exit(obj)}所以lock能做的,Monitor肯定能做,Monitor能做的,lock不一定能做。那么Monitor额外的功能呢?1:Monitor.TryEnter(obj,timespan)----timeout之后,就不执行这段代码了。lock可是一直会死等的。2:还有Monitor.W 阅读全文
posted @ 2013-09-27 09:16 红宝石 阅读(393) 评论(0) 推荐(0)
摘要:Linuxshell命令目录(?)[-]Shell介绍目录操作信息显示用户间通信备份压缩信息显示Shell介绍Shell就是用户与操作系统内核kernal2.4之间的接口 ,是一个命令解释器。Shell的主要版本:bash shell(bsh,Linux的默认shell)Korn shell(ksh)tcsh(tsh)目录操作ls 显示文件和目录列表touch 生成一个空文件或更改文件的时间cp 复制文件或目录mv 移动文件或目录、文件或目录改名rm 删除文件或目录cat、tac 显示文本文件内容more、less 分页显示文本文件内容ln 建立链接文件whereis 查找系统文件所在路径fi 阅读全文
posted @ 2013-09-26 16:16 红宝石 阅读(335) 评论(0) 推荐(0)
摘要:ImportNew注: 本文是ImportNew编译整理的Java面试题系列文章之一。你可以从这里查看全部的Java面试系列。这篇文章介绍的常见面试题是关于重载(overloading)方法和重写(overriding)方法的。Q.下面代码片段的输出结果是什么?[java]view plaincopypublicclassMethodOverrideVsOverload{publicbooleanequals(MethodOverrideVsOverloadother){System.out.println("MethodOverrideVsOverloadequalsmethodr 阅读全文
posted @ 2013-09-26 16:08 红宝石 阅读(324) 评论(0) 推荐(0)
摘要:算法导论(第2版)代码大全(第2版)C++ Primer中文版(第4版)设计模式:可复用面向对象软件的基础浪潮之巅Java编程思想(第4版)Java核心技术卷1:基础知识Java核心技术卷2:高级特性人月神话Linux内核编程C程序设计语言(第2版新版)黑客与画家:硅谷创业之父Paul Graham文集编程之美:微软技术面试心得代码之美软件随想录:程序员部落酋长Joel谈软件架构之美国外计算机科学经典教材:Unix & Linux大学教程深入理解计算机系统(原书第2版)UNIX网络编程 卷1:套接字联网APIUNIX网络编程 卷2:进程间通信自动机理论、语言和计算导论软件架构的艺术Ef 阅读全文
posted @ 2013-09-26 16:06 红宝石 阅读(297) 评论(0) 推荐(0)
摘要:一个大型的应用系统,往往需要众多进程协作,进程(Linux进程概念见附1)间通信的重要性显而易见。本系列文章阐述了Linux环境下的几种主要进程间通信手段,并针对每个通信手段关键技术环节给出详细实例。为达到阐明问题的目的,本文还对某些通信手段的内部实现机制进行了分析。序linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局 阅读全文
posted @ 2013-09-26 14:29 红宝石 阅读(507) 评论(0) 推荐(0)
摘要:快排最核心的思想就是划分,确定一个枢轴元素(pivot),每一趟划分的目的就是把待排序列分为两部分,前一部分比枢轴小(序列A),后一部分比枢轴大(序列B)。经过一趟划分之后序列变为:{A} pivot {B}。以下是具体步骤:1、确定每一次划分的枢轴元素为当前待排序列的头节点。2、设置Slow和Fast两个游标,Slow指向序列A中的最后一个元素,初始化为枢轴本身(待排序列头节点)。让Fast遍历一遍待排序列,当所指元素比枢轴小时,将Slow往前游一格,交换Slow和Fast所指元素的值,这样仍能保证Slow指向的元素是序列A中的最后一个元素。3、交换Slow所指元素和枢轴元素的值。4、对序列 阅读全文
posted @ 2013-09-26 14:25 红宝石 阅读(707) 评论(0) 推荐(0)
摘要:二分查找算法基本思想二分查找算法的前置条件是,一个已经排序好的序列(在本篇文章中为了说明问题的方便,假设这个序列是升序排列的),这样在查找所要查找的元素时,首先与序列中间的元素进行比较,如果大于这个元素,就在当前序列的后半部分继续查找,如果小于这个元素,就在当前序列的前半部分继续查找,直到找到相同的元素,或者所查找的序列范围为空为止.用伪代码来表示, 二分查找算法大致是这个样子的:left=0,right=n-1while(leftt:right=mid-1;return-1;第一个正确的程序根据前面给出的算法思想和伪代码, 我们给出第一个正确的程序,但是,它还有一些小的问题,后面会讲到int 阅读全文
posted @ 2013-09-26 13:57 红宝石 阅读(219) 评论(0) 推荐(0)
摘要:I、关系数据库设计范式介绍1.1 第一范式(1NF)无重复的列 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如 果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一 个实例的信息。简而言之,第一范式就是无重复的列。说明:在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。1.2 第二范式(2NF)属性完全依赖于主键[消除部分子函数依赖] ... 阅读全文
posted @ 2013-09-26 13:30 红宝石 阅读(218) 评论(0) 推荐(0)
摘要:题目:编一二分法递归查找函数 BinSearch(a(),low, high,n,key)对递减有序数组a中查找key值,查找到返回数组的下标,找不到返回-1。思路:1: 如果待查找的元素比数组中间的元素小 ,那么(此时递归)调用该方法本身的时候,新的“数组”的界限就变成了从low到mid-1 ,也就是“左半端”,然后一直找下去一直到找到了或者是low》high了(没招到,返回-1),方法体结束。 2 同理是右半段。 3就是恰好找到了,此时返回mid,该方法体结束。时间复杂度O(2log2(n));using System;using System.Collections.Generic;us 阅读全文
posted @ 2013-09-26 13:27 红宝石 阅读(253) 评论(0) 推荐(0)
摘要:Observer还是比较常见的东西,这里我们主要介绍C# Observer设计模式,包括介绍Subject:监视对象和Observer:监视者等方面。我们来看一个新的范例,因为有很多相关的内容,所以本文的进度会稍微快一些:假设我们有个高档的热水器,我们给它通上电,当水温超过95度的时候:1、扬声器会开始发出语音,告诉你水的温度;2、液晶屏也会改变水温的显示,来提示水已经快烧开了。现在我们需要写个程序来模拟这个烧水的过程,我们将定义一个类来代表热水器,我们管它叫:Heater,它有代表水温的字段,叫做temperature;当然,还有必不可少的给水加热方法BoilWater(),一个发出语音警报 阅读全文
posted @ 2013-09-26 11:27 红宝石 阅读(422) 评论(0) 推荐(0)
摘要:数组是在我们编程当中经常用到的,想来大家对数组都有一定的概念,这部分内容将给大家详细讲解数组在C#中是如何来定义及使用的。定义:数组是具有同一类型的一组值,数组是引用类型的,因此存在内存堆中。数组中的元素值可以在定义数组时赋予,也可以在定义数组后对单个元素进行赋值。一维数组例:publicstaticvoidMain() { //一维数组 int[]inti=newint[3]{1,2,3}; //定义一个数组inti并定义其只能有3个元素,值分别为1,2,3 inti[1]=4;//改变inti[1]也就是第二个元素的值为4. Console.WriteLine(inti[0],inti[1 阅读全文
posted @ 2013-09-26 11:24 红宝石 阅读(869) 评论(0) 推荐(0)
摘要:C#提供了一个lock关键字,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在C#中,C# lock关键字定义如下:lock(expression) statement_blockexpression代表你希望跟踪的对象,通常是对象引用。◆如果你想保护一个类的实例,一般地,你可以使用this;◆如果你想保护一个静态变量(如互斥代码段在一个静态方法内部),一般使用类名就可以了。而statement_block就是互斥段的代码,这段代码在一个时刻内只可能被一个线程执行。下面是一个使用C# lock关键字的典型例子,在 阅读全文
posted @ 2013-09-26 11:15 红宝石 阅读(301) 评论(0) 推荐(0)
摘要:一:这里介绍C#内部类能够使用外部类定义的类型和静态方法,但是不能直接使用外部类的实例方法,直接看来,外部类对于内部类的作用更像是一个命名空间。C#语言有很多值得学习的地方,这里我们主要介绍C#内部类,包括介绍instance方法和private方法等方面。C#内部类能够使用外部类定义的类型和静态方法,但是不能直接使用外部类的实例方法,直接看来,外部类对于内部类的作用更像是一个命名空间,在C#中,始终可以用(只要访问控制允许)Sys.Model.Key key = new Model.Key();来创建一个内部类的实例,这个实例与外部类的任何实例没有任何直接的关系。类似于Java中的静态内部类 阅读全文
posted @ 2013-09-26 11:12 红宝石 阅读(9692) 评论(0) 推荐(1)
摘要:这次在工作之余用C#写了一个简单的贪吃蛇程序,一般的都是WinForm形式的,这次弄了个控制台版本的,因为C# Console全部都是输入输出流,要在CMD窗口做这种有前台UI界面的程序应该是不适合的,但是想起之前的DOS版本的系统,我觉得应该是可以做到了,所以就花了几个晚上弄了这么一个东西,先上个截图:界面比较简单,一个CMD窗口,其他的就是由字符构成的各种形状,做这种Console的贪吃蛇有以下几个需要注意的地方:1.理解Console这个东西,它是一个标准的I/O输入输出流;2.控制台有2个术语 :屏幕缓冲区和控制台窗口,我们一般获取的大小是控制台大小而不是缓冲区大小,这个可以看看MSD 阅读全文
posted @ 2013-09-26 10:36 红宝石 阅读(411) 评论(0) 推荐(0)
摘要:创建型结构型行为型类Factory MethodAdapter_ClassInterpreterTemplate Method 对象Abstract FactoryBuilderPrototypeSingleton Adapter_ObjectBridgeCompositeDecoratorFacadeFlyweightProxy Chain of ResponsibilityCommandIteratorMediatorMementoObserverStateStrategyVisitor 概览 名称Factory Method结构意图定义一个用于创建对象的接口,让子类决定实例化哪一个类。F 阅读全文
posted @ 2013-09-26 08:46 红宝石 阅读(165) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/jackystudio/article/details/11860007 阅读全文
posted @ 2013-09-25 15:44 红宝石 阅读(223) 评论(0) 推荐(0)
摘要:Console.Write 表示向控制台直接写入字符串,不进行换行,可继续接着前面的字符写入。Console.WriteLine 表示向控制台写入字符串后换行。Console.Read 表示从控制台读取字符串,不换行。Console.ReadLine 表示从控制台读取字符串后进行换行。Console.ReadKey 获取用户按下的下一个字符或功能键,按下的键显示在控制台窗口中。Console.Beep 通过控制台扬声器播放提示音。Console.Clear 清除控制台缓冲区和相应的控制台窗口的显示信息。输出到控制台输出到控制台就是把数据输出到控制台并显示出来。.Net框架提供了console类 阅读全文
posted @ 2013-09-25 14:04 红宝石 阅读(1446) 评论(0) 推荐(0)
摘要:public class RWPhotoXmlUtils { public static void WriteXml(string foldName,string fileName,Dictionary dict) { try { XElement root = new XElement("Root"); foreach (KeyValuePair obj in dict) { XElement photo = new XElement("Photo"); XElement riderId = new XElement("RiderId&quo 阅读全文
posted @ 2013-09-25 13:32 红宝石 阅读(513) 评论(0) 推荐(0)
摘要:最近一段时间在研究java的多线程,在此记录下自己的学习成果,学习过程中参考了大量的博客,觉得挺好的,都自己做了实验验证了一下,确实挺有意思的,这里感谢他们的研究成果。从最基本的做起:1.继承Thread实现多线程Java代码/***实际上start()方法是创建一个新的线程,而run()只是调用一个单纯的run()方法*如果要在一个实例上产生多个线程就必须用到了另外一种实现方法:实现Runnable接口*因为不能tt.start()两次*@authorSa**/publicclassTestThreadextendsThread{privateintx=0;publicvoidrun(){f 阅读全文
posted @ 2013-09-25 10:22 红宝石 阅读(286) 评论(0) 推荐(0)
摘要:交换排序:1.冒泡排序Java代码publicstaticvoidbubble(intarr[]){for(inti=1;iarr[j+1]){swap(arr,j,j+1);}}}}2.快排Java代码publicstaticvoidquickSort(inta[],intleft,intright){inti;if(left=base){--right;}a[left]=a[right];while(left=0;i--){//从中间有叶子节点的数据开始keepHeap(data,i,n);}while(n>0){swap(data,0,n-1);//把第一个和本次建堆的最后一个交换 阅读全文
posted @ 2013-09-25 10:19 红宝石 阅读(372) 评论(0) 推荐(0)
摘要:MySQL:创建、修改和删除表 其实对很多人来说对于SQL语句已经忘了很多,或者说是不懂很多,因为有数据库图形操作软件,方便了大家,但是我们不能忘记最根本的东西,特别是一些细节上的东西,可能你用惯了Hibernate,不用写SQL语句,但是不是任何项目都要用到大框架的,如果不用,那你是不是就不会操作数据库了呢,所以我们最好还是熟悉一点好,对我们以后找工作和工作都有帮助。 在说创建、修改和删除表前,我们还是要进行一个操作的简单说明: 1.登陆数据库系统 在命令行中登陆MySQL数据库管理系统,输入一下内容:mysql -h localhost -u root -p 很多人都知道这个,但... 阅读全文
posted @ 2013-09-25 08:59 红宝石 阅读(244) 评论(0) 推荐(0)
摘要:引言 自发表上一篇文章至今(事实上,上篇文章更新了近3个月之久),blog已经停了3个多月,而在那之前,自开博以来的21个月每月都不曾断过。正如上一篇文章支持向量机通俗导论(理解SVM的三层境界)末尾所述:”额,blog许久未有更新了,因为最近实在忙,无暇顾及blog。“与此同时,工作之余,也一直在闲心研究数据挖掘:"神经网络将可能作为Top 10 Algorithms in Data Mining之番外篇第1篇,同时,k-最近邻法(k-nearest neighbor,kNN)算法谈到kd树将可能作为本系列第三篇。这是此系列接下来要写的两个算法,刚好项目中也要用到KD树“。 但很显 阅读全文
posted @ 2013-09-24 17:24 红宝石 阅读(382) 评论(0) 推荐(0)
摘要:小题:(部分题目)1、有三个结点的,可以构成多少个种叉树?2、一副牌52张(去掉大小王),从中抽取两张牌,一红一黑的概率是多少?编程题:3、设计一个最优算法来查找一n个元素数组中的最大值和最小值。已知一种需要比较2n次的方法,请给一个更优的算法。情特别注意优化时间复杂度的常数。4、已知三个升序整数数组a[l], b[m]和c[n]。请在三个数组中各找一个元素,是的组成的三元组距离最小。三元组的距离定义是:假设a[i]、b[j]和c[k]是一个三元组,那么距离为:Distance = max(|a[ I ] – b[ j ]|, |a[ I ] – c[ k ]|, |b[ j ] – c[ k 阅读全文
posted @ 2013-09-24 17:14 红宝石 阅读(395) 评论(0) 推荐(1)
摘要:题记 本博客自2010年10月11日开通以来,已经帮助了一大批人找到工作,特别是连续三年在每一年的9、10月份陪伴了至少三届毕业生找工作的旅程,包括校招中的笔试面试,今年也不会例外,我会在本博客开通3周年之际一如既往的陪伴大家一起成长。 本文所整理的全部笔试面试题要么来源于我群内群友们的分享,要么摘自论坛或博客,所有原题均来自网络。虽然本文中整理的绝大部分笔试面试题偏算法(自己特意为之之故),但不论是哪一年的校招,一般说来,笔试偏基础(尤其是选择题部分,涵盖语言,计算机组成原理、操作系统、网络协议、数据库、概率期望等知识),而面试则偏算法,且无论是笔试还是面试,两者都很看重你的实际编程能力.. 阅读全文
posted @ 2013-09-24 16:59 红宝石 阅读(567) 评论(0) 推荐(0)
摘要:一、实验目的:设计、编制、调试一个词法分析子程序-识别单词,加深对词法分析原理的理解。二、实验要求:1.对给定的程序通过词法分析器弄够识别一个个单词符号,并以二元式(单词种别码,单词符号的属性值)显示。而本程序则是通过对给定路径的文件的分析后以单词符号和文字提示显示。2.本程序自行规定:(1)关键字"begin","end","if","then","else","while","write","read","do" 阅读全文
posted @ 2013-09-24 16:01 红宝石 阅读(502) 评论(0) 推荐(0)
摘要:1.概念先搞清楚 抽象类:首先抽象类是类的概念,描述的是“是什么”。除了具有类的所有特性之外,它还有自己独特的性质(这里讲的是抽象类和类的区别了):只有抽象类中才可以有抽象方法,实体类中不能定义抽象方法;抽象类不能被封闭(sealed),必须可以被其它类继承;派生出来的实体类必须实现抽象类中定义的抽象方法,当然如果派生出来的类依然是抽象类,则可以不实现。 接口:接口是引用类型的一种,描述的是“能做什么”。接口的特性:接口除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成员都被定义为公有的。除此之外,不能包含任何其他的成员,例如:常量、域、构造函数、析构函数、静态成员。一个类可以.. 阅读全文
posted @ 2013-09-24 14:56 红宝石 阅读(200) 评论(0) 推荐(0)
摘要:设计模式学习笔记-适配器模式1. 概述 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。2. 解决的问题 即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。3. 模式中的角色 3.1 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。 3.2 需要适配的类(Adaptee):需要适配的类或适配者类。 3.3 适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。 4. 模式解读 注:在GoF的设计模式中,对适配器模式讲... 阅读全文
posted @ 2013-09-24 14:18 红宝石 阅读(182) 评论(0) 推荐(0)
摘要:选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。冒泡法:这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: 复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。直接插入排序:O(n*n)选择排序:O(n*n)快速排序:平均时间复杂度log2(n)*n,所有内部排序方法中最高好的,大多数情况下总是最好的。归并排序:log2(n)*n堆排序:log2(n)*n希尔排序:算法的复杂度为n的1.2次幂这里我没有给出行为的分析,因为这个很简单,我们直接来分析算法:首先我们考虑最理想的情况1.数组 阅读全文
posted @ 2013-09-24 14:05 红宝石 阅读(207) 评论(0) 推荐(0)
摘要:1.冒泡排序:n*n。俩个for循环决定其时间复杂度为n^2templatevoidSwap(TA[],inti,intj){Ttmp=A[i];A[i]=A[j];A[j]=tmp;}//冒泡法bubblesorttemplatevoidBubSort(TA[],intn){for(inti=0;ivoidSwap(TA[],inti,intj){Ttmp=A[i];A[i]=A[j];A[j]=tmp;}templatevoidSelSort(TA[],intn){for(inti=0;i(A,i,largIndex);//只进行最后一次交换}}3.直接插入排序:n*n。俩个for循环。/ 阅读全文
posted @ 2013-09-24 14:04 红宝石 阅读(666) 评论(0) 推荐(0)
摘要:#include #include #include #include /*进程控制块数据结构*/typedef struct node{ char name[10];/*进程名*/int prio; /*进程优先级*/int round; /*进程分配的时间片*/int cputime; /*进程消耗的CUP时间*/int needtime; /*进程需要的CUP时间*/int count; /*进程运行时间*/char state; /*进程的状态:'R':运行,'W':等待,'F':结束*/struct node *next;/*指向下一个 阅读全文
posted @ 2013-09-24 13:44 红宝石 阅读(2559) 评论(0) 推荐(0)
摘要:函数指针数组的定义函数指针数组的定义方法,有两种:一种是标准的方法;一种是蒙骗法。第一种,标准方法:{分析:函数指针数组是一个其元素是函数指针的数组。那么也就是说,此数据结构是是一个数组,且其元素是一个指向函数入口地址的指针。根据分析:首先说明是一个数组:数组名[]其次,要说明其元素的数据类型指针:*数组名[].再 次,要明确这每一个数组元素是指向函数入口地址的指针:函数返回值类型 (*数组名[])().请注意,这里为什么要把“*数组名[]”用括号扩起来呢?因为圆括号和数组说明符的优先级是等同的,如果不用圆括号把指针数组说明... 阅读全文
posted @ 2013-09-24 13:37 红宝石 阅读(198) 评论(0) 推荐(0)
摘要:.Net提供了接口,这个不同于Class或者Struct的类型定义。接口有些情况,看似和抽象类一样,因此有些人认为在.Net可以完全用接口来替换抽象类。其实不然,接口和抽象类各有长处和缺陷,因此往往在应用当中,两者要结合来使用,从而互补长短。 接下来先说说抽象类和接口的区别。 区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系;而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。这些听起来有些虚,举个例子。例如,狗是对于所有狗类动物的统称,京哈是狗,牧羊犬是狗,那么狗的一般特性.. 阅读全文
posted @ 2013-09-24 13:29 红宝石 阅读(184) 评论(0) 推荐(0)
摘要:1.如果可能尽量使用接口来编程.NET框架包括类和接口,在编写程序的时候,你可能知道正在用.NET的哪个类。然而,在这种情况下如果你用.NET支持的接口而不是它的类来编程时,代码会变得更加稳定、可用性会更高。请分析下面的代码:private void LoadList (object []items,ListBox l){ for(int i = 0; i < items.Length; i++) l.Items.Add(items[i].ToString());}这个函数从一个可为任何对象的数组中加载ListBox,这段代码被限定为只能使用数组。假想过些时候你发现那些对象存在数据库中, 阅读全文
posted @ 2013-09-06 16:57 红宝石 阅读(200) 评论(0) 推荐(0)
摘要:当用户试图通过 HTTP 或文件传输协议(FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字代码。该状态代码记录在 IIS 日志中,同时也可能在 Web 浏览器或 FTP 客户端显示。状态代码可以指明具体请求是否已成功,还可以揭示请求失败的确切原因。 编辑本段HTTP下IIS状态码1xx - 信息提示这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。100 - 继续。101 - 切换协议。2xx - 成功这类状态代码表明服务器成功地接受了客户端请求。200 - 确定。客户端请求已 阅读全文
posted @ 2013-09-06 14:39 红宝石 阅读(200) 评论(0) 推荐(0)
摘要:file://分析这段程序,并解释一下,着重讲讲synchronized、wait(),notifyclass ThreadA{public static void main(String[] args){ThreadB b=new ThreadB();b.start();System.out.println("b is start....");synchronized(b)//括号里的b是什么意思,起什么作用?{try{System.out.println("Waiting for b to complete...");b.wait();//这一句是什 阅读全文
posted @ 2013-09-06 09:08 红宝石 阅读(305) 评论(0) 推荐(0)
摘要:下面是摘录CSDN上的有关粗粒度和细粒度的讨论:A:個人理解:對象的粒度就是對象所容納的邏輯 粗粒度容納的邏輯多,細粒度容納的邏輯少B:轻量级和重量级应该是按占用的资源多少衡量的B:对客户暴露了太多细节的相对来说就是细粒度的,比如你的一个Java Bean,为它所有属性都提供了getter,setter方法,就是属于细粒度的,而如果提供类似 Object getData(),或者setData(Object o)这样方法的类就是粗粒度的,个人意见,仅供参考.C:还是不太明白,你这里Object getData()和setData(Object o)方法中的Object对象不也隐含的暴露了细节吗 阅读全文
posted @ 2013-09-06 09:00 红宝石 阅读(301) 评论(0) 推荐(0)
摘要:粗粒度和细粒度的区别主要是出于重用的目的,像类的设计,为尽可能重用,所以采用细粒度的设计模式,将一个复杂的类(粗粒度)拆分成高度重用的职责清晰的类(细粒度).对于数据库的设计,原责:尽量减少表的数量与表与表之间的连接,能够设计成一个表的情况就不需要细分,所以可考虑使用粗粒度的设计方式.简单点,给你两个接口,你看看细粒度的查询任务的接口interface TaskService{ public List getTaskById(int id); public List getTaskByName(String name); public List getTaskByAge(int age);}那 阅读全文
posted @ 2013-09-06 08:58 红宝石 阅读(677) 评论(0) 推荐(0)
摘要:尽管在.NET framework下我们并不需要担心内存管理和垃圾回收(Garbage Collection),但是我们还是应该了解它们,以优化我们的应用程序。同时,还需要具备一些基础的内存管理工作机制的知识,这样能够有助于解释我们日常程序编写中的变量的行为。在本文中我将讲解栈和堆的基本知识,变量类型以及为什么一些变量能够按照它们自己的方式工作。在.NET framework环境下,当我们的代码执行时,内存中有两个地方用来存储这些代码。假如你不曾了解,那就让我来给你介绍栈(Stack)和堆(Heap)。栈和堆都用来帮助我们运行代码的,它们驻留在机器内存中,且包含所有代码执行所需要的信息。* 栈 阅读全文
posted @ 2013-09-04 17:56 红宝石 阅读(200) 评论(0) 推荐(0)
摘要:C#中事件是一种特殊的委托class Publisher //出版社 { public delegate void Publish();//声明事件所需的代理 public event Publish OnPublish;//事件的声明 public void issue()//触发事件 { if (OnPublish != null) { Console.WriteLine("发行刊物"); OnPublish(); } } } class Subscriber//订阅者 { public void Receive()//在事件订阅者中定义事件处理程序 { Console 阅读全文
posted @ 2013-09-03 18:10 红宝石 阅读(383) 评论(0) 推荐(0)
摘要:在C#4.0之前需要执行一个复杂的异步操作时,只能使用CLR线程池技术来执行一个任务。线程池执行异步任务时,不知道任务何时完成,以及任务的在任务完成后不能获取到返回值。但是在C#4.0中引人了一个的任务(System.Threading.Tasks命名空间的类型)机制来解决异步操作完成时间和完成后返回值的问题。1.使用Task类创建并执行简单任务 通过使用Task的构造函数来创建任务,并调用Start方法来启动任务并执行异步操作。创建任务时,必须传递一个Action或Action类型的委托回调方法,可以选择的传递任务执行时说需要的数据对象等。Task类的构造函数如下: publi... 阅读全文
posted @ 2013-09-02 16:35 红宝石 阅读(1330) 评论(0) 推荐(0)
摘要:最开始收到大家想了解《搭建测试环境》这个topic的时候我有点困惑, 我们有关于《搭建测试环境》的培训, 网上的资料也很多, 现成的文档也很多, 大家还想了解什么呢? 后来想了想, 还是决定给大家说说测试环境对咱们测试结果的影响, 所起到的作用, 平时咱们可能更多的是搭环境或者是考原理, 可能大家不是很了解为什么要这么弄, 今天就给大家串一串线.搭建测试环境是软件测试实施的一个重要阶段,测试环境适合与否会严重影响测试结果的真实性和正确性。测试环境包括什么?简单的说测试环境就是软件运行的平台, 即软件、硬件、网络、测试数据四种元素的合集, 也就是说: 测试环境=软件+硬件+网络+测试数据硬件包括 阅读全文
posted @ 2013-09-02 12:39 红宝石 阅读(1842) 评论(0) 推荐(0)