上一页 1 ··· 3 4 5 6 7 8 9 下一页
摘要: 1 正则表达式1 最基础:要找一个数字,它可能有一个负号在前面,那么就写上一个负号加上一个问号: -?在JAVA中,\\的意思是“我要插入一个正则表达式的反斜线,表示其后的字符具有特殊的意义”,所以要描述一个整数,正则表达式应该是: \\d。同理,要插入一个普通的反斜线,则应该是:\\\\。要表示“一个或多个之前的表达式”,应该使用:+综上,要表示“可能有一个负号,后面跟着一位或多位数字”,可以这样: -?\\d+.使用正则表达式的最简单途径——String类的内建功能:匹配:“-1234”.matches("-?\\d+");切分:split()方法,将字符串从正则表达式 阅读全文
posted @ 2013-05-31 19:17 suzhou 阅读(963) 评论(0) 推荐(0) 编辑
摘要: 1 初始化初始化的一些基本知识:1 在类里定义一个对象引用时,如果不将其初始化,此引用就会获得一个特殊值null。2 在定义类成员的地方为变量赋值(C++中不允许这么做)。3 编译器会对“向前引用”发出警告4 无法阻止自动初始化的进行,它将在构造器被调用之前发生。public class Counter{ int i; Counter() { i = 7; } //......}i首先会被置0,然后变成7。5 在类的内部,变量定义的先后顺序决定了初始化的顺序。即使变量定义散布于方法定义之间,它们仍旧会在任何方法(包括构造器)被调用之前得到初始化。6 静态初始化只有在必要时刻才... 阅读全文
posted @ 2013-05-31 13:41 suzhou 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 1 首先到git-hub网站创建一个账号。2 在终端中安装git3 生成ssh密钥4 在github上添加密钥复制SSH密钥在网站的SSH中添加公钥5 测试可能会出现这样的denied错误解决方法:输入ssh-add命令即可,中间没有空格6 设置完成,测试常用的git命令 阅读全文
posted @ 2013-05-30 13:32 suzhou 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 进程的创建与可执行程序的加载一 进程的创建 进程0是所有进程的祖先。进程1被创建并选择后调用execve()系统调用转入可执行程序init,init进程一直存活,创建和监控在操作系统外层执行的所有进程的活动。 当fork()被调用时,主要由函数do_fork()函数来处理。do_fork()函数的执行流程如下: do_fork()的主要作用是为子进程分配PID,检查各个标志位,以决定新创建的子进程的被创建后所处的状态和执行队列,以及调用辅助函数copy_process()来创建进程描述符以及子进程执行所需要的所有其他内核数据结构。 do_fork()结束后,创建了可运行... 阅读全文
posted @ 2013-05-25 18:17 suzhou 阅读(820) 评论(0) 推荐(1) 编辑
摘要: 一些基本知识:1 在现代编译器中,最有用的两条抽象规则为:便于语法分析的上下文无关文法——Yacc(将语法转换成语法分析器)便于词法分析的正则表达式——Lex(将具体说明转换成词法分析器)2 树形语言的数据结构编译器使用的一些重要数据结构是进行编译程序的中间表示。这些中间表示都是用树和节点类型来表示的。每条语句(Stm)和表达式(Exp)都对应一个节点。例: a := 5 + 3 ; 不: = ( print ( a, a - 1) , 10 * a ); print ( b )直线程序的表示:每个文法符号对应一个数据结构中抽象的类: 阅读全文
posted @ 2013-05-24 21:11 suzhou 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 1 进程进程是程序执行时的一个实例,可以把它看作充分描述程序已经执行到何种程度的数据结构的汇集。从内核的观点看,进程的目的是担当分配系统资源(CPU时间,内存等)的实体。(早期的系统中)当一个进程创建时,它几乎与父进程相同,执行的下一条指令与父进程父进程相同,但是之后的活动是与父进程没有关系,它们各自有独立的数据拷贝(栈和堆)。多线程应用程序多个执行流的创建、处理、调度都是在用户态进行的。Linux使用轻量级进程对多线程应用程序提供更好的支持。2 进程描述符(process descriptor)进程描述符是task_struct类型结构,它的字段包含了与一个进程相关的所有信息。3 进程状态进 阅读全文
posted @ 2013-05-24 11:38 suzhou 阅读(2678) 评论(0) 推荐(0) 编辑
摘要: 1 基本想法IaaS:将硬件设备等基础资源封装成服务供用户使用。主要思想:虚拟优势:动态申请,资源无限。2 应用案例——SmugMug3 AWS的业务流程注册账户资源申请创建虚拟节点将虚拟节点映射到物理节点分割算法数据处理数据同步4 Dynamo——基础存储架构DHTs:FInger Tables成员资格及错误检测:基于Gossip协议的成员检测机制5 EC2——弹性计算云EC2就是一部具有无限采集能力的虚拟计算机,用户能够用来执行一些处理任务。几个概念:1)Amazon机器映像AMI(Amazon Machine Image)2)弹性块存储EBS(Elastic Block Store)EC 阅读全文
posted @ 2013-05-24 10:03 suzhou 阅读(525) 评论(1) 推荐(0) 编辑
摘要: 1 中断中断通常被定义为一个事件,该事件改变处理器执行的指令顺序。中断通常分为同步中断和异步中断。同步中断(中断)是当前指令执行时由CPU控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后CPUT才会发出中断。异步中断(异常)是由其他硬件设备依照CPU时钟信号随机产生的。分类:中断:分为可屏蔽中断(控制单元会忽略屏蔽的中断)和非屏蔽中断(由CPU辨认)。 异常:处理器探测异常,故障,陷阱,异常中止,编程异常向量:每个中断和异常是由0~255之间的一个数来标识。Intel把这个8位的无符号整数叫做一个向量。非屏蔽中断的向量和异常的向量是固定的,而可屏蔽中断的向量可以通过对中... 阅读全文
posted @ 2013-05-22 09:36 suzhou 阅读(1040) 评论(0) 推荐(2) 编辑
摘要: 1 引用形参1)使用引用形参返回额外的信息如何定义既返回一个迭代器又返回出现次数的函数?向函数传递一个额外的引用实参,在函数内部对引用实参进行修改的同时,可以认为该引用实参返回了一个信息。2) 在向函数传递大型对象时,需要使用引用形参,这是引用形参适用的另一种情况。使用引用形参,函数可以直接访问实参对象,而无须复制它。bool isShorter(const string &s1, const string &s2){ return s1.size() < s2.size();}因为形参是引用,所以不复制实参,又因为形参是const引用,所以函数不能使用该引用来修改实参。 阅读全文
posted @ 2013-05-21 09:50 suzhou 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 1 排序(转载,有一定程度的精简)在待排序的文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定的,若具有相同关键字的记录之间的相对次序发生变化,则称这种排序方法是不稳定的。选择排序:包括简单选择排序和堆排序。1 简单选择排序 示例:假设给定数组A[1......6]={ 3,5,8,9,1,2 },我们来分析一下A数组进行选择排序的过程第一趟:i=1,index=5, a[1] 和 a[5] 进行交换。得到序列:{ 1,5,8,9,3,2 }第二趟:i=2,index=6, a[2] 和 a[6] 进行交换。得到序列:{ 1,2... 阅读全文
posted @ 2013-05-20 17:37 suzhou 阅读(272) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 下一页