10 2013 档案
摘要:泛型简介: 泛型(Generic Type)是.NET Framework2.0最强大的功能之一。泛型的主要思想是将算法与数据结构完全分离开,使得一次定义的算法能作用于多种数据结构,从而实现高度可重用的开发。通过泛型可以定义类型安全的数据结构,而没有必要使用实际的数据类型,这将显著提高系统性能并得到高质量的代码(因为可以重用数据处理算法,没有必要复制类型特定的代码)。泛型工作原理: 通过泛型可以定义类型安全并且对性能或工作效率无损害的类。表面上,C#泛型的语法和C++模板类似,但编译器在实现和支持他们的方式存在重要的差异。与C++模板相比,C#泛型可以提供增强的安全性,但在功能方面也受到某..
阅读全文
摘要:有三种: (1)继承Thread类,重写run函数 创建: class xx extends Thread{ public void run(){ Thread.sleep(1000) //线程休眠1000毫秒,sleep使线程进入Block状态,并释放资源 }} 开启线程: 对象.start() //启动线程,run函数运行 (2)实现Runnable接口,重写run函数 开启线程: Thread t = new Thread(对象) //创建线程对象 t.start() (3)实现Callable接口,重写call函数 Callable是类似于Runnable的...
阅读全文
摘要:如果我们的程序需要动态内存的话,则迟早会调用Win32函数VirtualAlloc。但是程序也可以不调用VirtualAlloc,而是直接调用Windows堆函数或者CRT堆函数。不过,知道VirtualAlloc如何工作,可以帮助我们更好地理解这些调用函数。 首先,必须知道保留(Reserved)内存和占用(Committed)内存的含义。当内存放保留时,一段连续虚拟地址空间被留出。例如,假如我们的程序要使用5 -MB内存块(称为区域),但并不是要马上全部使用,则我们可以调用VirtualAlloc函数,使用MEM_RESERVE分配类型参数。Windows会以64 KB为边界计算该区域的起
阅读全文
摘要:程序中用来存放数据的内存分为四块,其实另有一块用于存放代码,这里我们不讨论,这四块分别是:1、全局区(静态区)(static):全局变量和静态变量都存储在这块区域,与其他变量的明显区别就是生命周期不同,在程序结束时,系统会释放这块资源2、文字常量区:常量字符串就是放在这块区域,即是我们常说起的常量池。这块也是在程序结束时由系统释放。3、栈区(stack):存放函数的参数值,局部变量的值等。这块的数据大家就很熟悉了,在进入作用域时分配占用内存,离开作用域时释放占用内存4、堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由系统回收。由于这个原因,在C和C++中就有能产生大量程
阅读全文
摘要:本来想一上来就先复习SQL,然后再是数据库优化之类的东西,但是翻了翻之前上《数据库概念基础》的课件,发现有几个东西还是了解一下比较好。 第一章:数据库基础中几个需要注意的概念 第一节:什么是关系型数据库呢?关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。——摘自《百度百科》(更多深入的理解还是看资料比较好,涉及的内容比较多,如果全部都贴出来会很冗长。例如,什么是关系模型,集合代数又是什么,都是要了解的。我之所以单单贴出来这句话,是为了之后在看到的时候可以根据这句话想起相关的内容。有的时候,一句话的概念并不是要我们去背,而是去理解,自然而然就会记
阅读全文
摘要:java一般用线程就够了,多进程优势在于每个进程互不干扰,劣势在于太耗费内存,任何事情都不是绝对的,在编写Java程序时,有时候需要在Java程序中执行另外一个程序。1、启动程序Java提供了两种方法用来启动其它程序:(1)使用Runtime的exec()方法(2)使用ProcessBuilder的start()方法不管在哪种操作系统下,程序具有基本类似的一些属性。一个程序启动后就程序操作系统的一个进程,进程在执行的时候有自己的环境变量、有自己的工作目录。Runtime和ProcessBuilder提供了不同的方式来启动程序,设置启动参数、环境变量和工作目录。能够在Java中执行的外部程序,必
阅读全文
摘要:最近一段时间去武汉参加了N多笔试,在几次试题中都出现了排序。偏偏出现了我没怎么看的插入排序,弄得我好是纠结。趁回学校的机会把这几个不是很复杂的排序重新复习了一下,借此比较了一下他们的效率。让我有点以外的是在数据量达到1W~10W之间,希尔排序竟然比快速排序效率还要高。贴上完整代码!冒泡排序 1 //冒泡排序 2 ////////////////////////////////////////////////////////////////////////// 3 void BubleSort(int a[],int n) 4 { 5 int temp; 6 bool flag=...
阅读全文
摘要:欣赏另一种Orm的设计风格----大道至简Moon.Orm 5.0(MQL版)使用指南(二)一、使用sql及存储过程1)使用List>1.使用sql ,体验原生态的感觉stringsql="select * from Class where ClassName = @";stringsql2="select * from Class where DateTimem = @";List>mylist=db.ExecuteSqlToDictionaryList(sql,"boy'");List>mylist2=d
阅读全文
摘要:用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序(约瑟夫环问题)用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序[cpp]view plaincopy//用户输入M,N值,从1至N开始顺序//循环数数,每数到M输出该数值,//直至全部输出#include//节点typedefstructnode{intdata;node*next;}node;//创建循环链表voidcreateList(node*&head,node*&tail,intn){if(ndata=1;head->next=NUL
阅读全文
摘要:进程间通信IPC------Inter-Process Communication由于内存管理的一些机制,导致两个进程间并不能直接的进行通信(在独立的用户空间),因此我们需要利用一些介质来完成两个进程之间的通信。以下是常用的进程间通信方式。# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为
阅读全文
摘要:三态模型:在多道程序系统中,进程在处理器上交替运行,状态也不断地发生变化。进程一般有3种基本状态:运行、就绪和阻塞。(1)运行:当一个进程在处理机上运行时,则称该进程处于运行状态。处于此状态的进程的数目小于等于处理器的数目,对于单处理机系统,处于运行状态的进程只有一个。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。(2)就绪:当一个进程获得了除处理机以外的一切所需资源,一旦得到处理机即可运行,则称此进程处于就绪状态。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排
阅读全文
摘要:strncpy原型:externchar*strncpy(char*dest,char*src,intn);用法:#include功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。说明:如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针(该指向dest的最后一个元素)相关函数:memccpy,memcpy,stpcpy,strcpystrcpy,strncpy,st
阅读全文
摘要:1.关于新职责:适配器也可以在转换时增加新的职责,但主要目的不在此。装饰者模式主要是给被装饰者增加新职责的。2.关于原接口:适配器模式是用新接口来调用原接口,原接口对新系统是不可见或者说不可用的。装饰者模式原封不动的使用原接口,系统对装饰的对象也通过原接口来完成使用。(增加新接口的装饰者模式可以认为是其变种--“半透明”装饰者)3.关于其包裹的对象:适配器是知道被适配者的详细情况的(就是那个类或那个接口)。装饰者只知道其接口是什么,至于其具体类型(是基类还是其他派生类)只有在运行期间才知道。[1]4代码示例在装饰模式中的各个角色有: (1)抽象构件(Component)角色:给出一个抽象接口.
阅读全文
摘要:(1)九度上一个关于二叉树遍历的问题。通过给定的前序遍历与中序遍历就可以确定二叉树的结构。题目描述:二叉树的前序、中序、后序遍历的定义:前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树;中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树;后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。给定一棵二叉树的前序遍历和中序遍历,求其后序遍历(提示:给定前序遍历与中序遍历能够唯一确定后序遍历)。输入:两个字符串,其长度n均小于等于26。第一行为前序遍历,第二行为中序遍历。二叉树中的结点名称以大写字母表示:A,B,C....最多26个结点。输出:输入样
阅读全文
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Management;using System.Net.NetworkInformation;namespace GetMac{ #region //方法一(有错误): // class Program //{/// // /// 获取网卡硬件地址 // /// // /// mac地址...
阅读全文
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace RandomNumber{ public class RandomCreater { // 随机数生成器只需要一个 private static readonly System.Random random = new Random(); public int[] Random(int[] array) { int lengt...
阅读全文
摘要:五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一个,拿走了一堆; 第二只猴子起来一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一个。于是,它也吃掉了一个,拿走了一堆;......其他几只猴子也都是 这样分的。问:这堆桃至少有多少个?我自己是这样想的,问题得从最后那个猴子看起,最后那个猴子依然能将桃子分5堆剩一个,则设在最后那个猴子之前剩下数量是A,A%5=1并且还能平分成4堆没有剩余,所以A%4=0。然后,倒数第二只猴子之前的数量就是A+A/4+1个,并且重复之前的步骤,如果在到第一只猴子之前都没遇到问题,那么就能得出结果了。如果在中间出现
阅读全文
摘要:无论是在面试中或者项目实践时,在写代码过程中,一个很好的习惯就是先写好单元测试,再开始写自己的函数。这样给人感觉你的思维比较缜密。 1.单元测试干了什么,作用是什么?通俗讲单元测试就是检查一个函数执行后它的返回结果或者它对系统数据造成的影响(或者其它方面的影响)是否跟你的期望一致,也就是为了证明代码的行为和我期望的一致! ①最直接的是保证了函数的正确性(这个大家都知道)! ②还有我们可以根据单元测试来判断此函数是用来干什么的,也就说单元测试类似于一个可执行文档,其它开发人员可以通过看单元测试就会明白你测试的函数是用来干嘛的!2.单元测试的本质 请记住一点,不是为工作而编写...
阅读全文
摘要:腾讯体育全场回放抓取晚上看比赛不太现实,第二天下班回来看回放吧,一打开网页,偌大的比分让你不想知道结果都不行。于是,写了个简单的html页面,用javascript抓取全场回放的视频地址。这样你就看不到比分了,看比赛才有那种未知的惊喜。目前测试了西甲,德甲,欧冠。其他甲级联赛应该都是支持的。说不定NBA都支持。下面是完整的代码: 腾讯体育全场回放抓取 腾讯体育全场回放抓取 第1步:在比赛之前获取 competitionId 和 matchId 在比赛之前,可以进入看比赛的页面。页面URL包含了这2个...
阅读全文
摘要:之前培训写过一个作业,关于SharePoint的API的,之后做restore和backup也经常用到,在这里给总结下如何创建。using System;using System.Collections.Generic;using System.Linq;using System.Text;using Microsoft.SharePoint;using Microsoft.SharePoint.Administration;using System.Xml;using System.IO;namespace SP1{ class Program { static v...
阅读全文
摘要:1、编写一个程序解决选择问题。令k=N/2,画出表格显示程序对于N种不同的值的运行时间。 分析:选择问题是指从N个数当中,按升序(降序也可以)排列,找出第k个数。LZ的写法是采用书中给出的算法自己实现的,分别采用冒泡排序和分批处理的方式。以下为LZ写出的算法代码。import java.util.Arrays;import java.util.Random;//选择问题答案public class Select { public static final Random RANDOM = new Random(47); //假设N = 10 public ...
阅读全文
摘要:C++中的宏浅析说到宏,恐怕大家都能说出点东西来:一种预处理,没有分号(真的吗?)。然后呢?嗯.......茫然中......好吧,我们就从这开始说起。最常见的宏恐怕是#include了,其次就是#define还有.......还是从宏的用途分类吧:1、#include 主要用于包含引用文件,至今其地位无人能替代;2、注释掉代码。例如:#if 0.......#endif;这种机制是目前注释掉代码的最佳选择,为摩托罗拉公司员工所普遍采用;3、代码版本管理。例如:#ifdef DEBUGfile://调试版本#elsefile://非调试版本#endif;4、声明宏。例如:#define DEC
阅读全文

浙公网安备 33010602011771号