自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

转载 java之-forName和Class

Random类 (java.util) Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。这点在生

2014-02-23 19:41:53 520

转载 java的random

Random类 (java.util) Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。这点在生

2014-02-23 16:52:41 480

转载 ResultSetMetaDate

利用ResultSet的getMetaData的方法可以获得ResultSetMeta对象,而ResultSetMetaData存储了ResultSet的MetaData。所谓的MetaData在英文中的解释为“Data about Data”,直译成中文则为“有关数据的数据”或者“描述数据的数据”,实际上就是描述及解释含义的数据。以Result的MetaData为例,ResultSet是以表格的

2014-02-22 18:41:37 1266

转载 linux下的环境变量

linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。什么是环境变量环境变量是一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。许多用户(特别是那些刚接触Linux的新手)发现这些变量有些怪异或

2014-02-20 08:47:36 447

原创 const int function(const int a,const int b) const的意义

没什么意义,都是传值的。。。首先最后那个const,如果function不是成员函数的话编译就通不过。如果是成员函数,最后的const表示该函数不能修改任何该类的成员变量的值。a前面的const表示,在function内部不能修改a的值。返回值int前的const表示……其实毫无意义,因为是传值的返回。如果返回的是const的指针,表示传回的指针所指向的内容将不能通过该返回

2014-02-19 08:17:43 917

转载 C++中的explicit

C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造器 ,2 是个默认且隐含的类型转换操作符。所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正好是AAA单参数构造器的参数类型, 这时候编译器就自动调用这个构造器, 创建一个AAA的对象。这样看起来好象很酷, 很方便。 但在某些情况下(

2014-02-18 21:16:05 451

转载 c++中的适配器

c++中的适配器有三种:容器适配器,迭代器适配器,函数适配器下面一一介绍1.容器适配器:具体的有stack,queue,priority_queue,默认的情况下,stack和queue基于deque而实现的,priority_queue在vector上实现的,可以根据第二个实参指定容器的类型,但一定要符合标准,queue要求要有push_front操作因此不能建立在vector上面,prio

2014-02-18 21:03:38 402

原创 自上而下分析法的一般问题

带回溯的自上而下分析方法的缺陷如果文法存在左递归,语法分析会无限进行若产生式存在多个候选式,选择哪个进行推导是完全盲目的回溯会引起大量的时空消耗如果识别的语句是错误的,算法无法指出错误的确切位置

2014-02-07 17:16:08 1374

翻译 自底向下优先分析

自底向上分析,也称移进-规约分析,错略地说它的实现思想是对输入符号串自左向右进行扫描,并将输入符逐个移入一个后进先出栈中,边移动边分析,一旦栈顶符号串形成某个句型的句柄或可归约串时(该句柄或可归约串对应某产生式的右部),就用该产生式的右部非终结符代替相应的右部的文法符号串,这称为一步规约,重复这一过程直到规约到栈中只剩下文法的开始符号时则为分析成功,也就确认输入串是文法的句子,本章将在介绍自底向上

2014-02-05 16:32:26 3087

翻译 不确定的自顶向下的分析思想和确定的自顶向下的分析方法

在前面可以看出,可以根据当前文法不满足LL(1)时,则不能用确定的自顶向下分析,但在这种情况下,可用不确定自顶向下的分析法,也就是说带回溯的自顶向下的分析法。引起回溯的原因是在文法中当关于某个非终结符的产生式有很多时,当面临当前的输入符无法确定选用唯一的产生式,从而引起回溯,下面说明三个简单的例子。1,由于相同的左部的产生式的右部first集交集不为空而引起回溯。2

2014-01-26 18:13:56 2273

转载 学会编译原理的重要性

编译原理一般认为是较难的一门课.从网上的评论来看,有人说学了一年半软件理论,就一门编译看不懂;有人甚至说它是大本软件课程里最难的一门;有人抱怨国内的编译教材没有一本容易懂的 从笔者学习实践来看,第一次学了一个多月,理论部分一知半解,第二次学了一星期,基本看懂词法分析的理论部分,语法分析就一知半解了,第三次学了一星期,才基本看懂词法分析和语法分析.由此看来,这门课确实有难度.网上有的帖子,把编译器的

2014-01-24 14:18:45 5992

转载 词法分析

词法分析是编译程序第一个阶段,它的主要任务是从左到右逐个字符地对源程序进行扫描,产生一个个单词序列,用于语法分析,执行词法分析的程序称为词法分析程序或扫描程序,本章我们将讨论词法分析程序的设计原理,单词的描述技术,识别机制及词法分析程序的自动构造原理。词法分析程序的设计词法分析程序与语法分析程序的接口方式词法分析程序完成的是编译程序第一阶段的工作,词法分析工作可以独立的一遍,把

2014-01-23 19:35:17 2171

翻译 文法和语言

一个程序设计语言是一个记号系统,如同自然语言一样,它的完整定义应包含语法和语义两个方面,所谓一个语言的语法是指一组规则,用它可以形成和产生一个合适的程序,目前广泛使用的手段是上下文无关的文法,即用上下文无关作为程序设计语言语法的描述工具,语法只是定义什么样的符号序列是合法的,与这些符号含义毫无关系的,比如对于一个pascal程序来说,一个上下文无关文法可以定义符号串A:=B+C是一个合乎语法的赋值

2014-01-22 23:29:29 1505

翻译 pl|0编译程序

PL|0的词法分析程序GETSYM是一个独立的过程,其功能是为语法语义分析提供单词,把输入的字符串形式的源程序分割成一个个单词符号传递给语法语义分析,为此PL|0编译程序设置了3个全程变量如下:SYM  存放每个单词的类别,用内部编码形式表示;ID 存放用户所定义的标识符的值,即标识符字符串的机内表示;NUM 存放用户定义的数。单词的种类有5种基本字 也可称为保留字,如

2014-01-22 18:10:34 1670

原创 C++问题集锦

问题1:派生类的成员函数是否可以访问基类对象的保护成员?答:

2014-01-14 21:00:49 375

原创 坚定的信念

我要有坚定的信念,将计算机进行到底。fighting

2014-01-14 13:11:13 544

转载 unix高级编程之14

1.非阻塞I /O:系统调用的两种分类:低速系统调用和其他。低速系统调用可能产生阻塞。非阻塞:例如open、read和write操作不能完成,则立即出错返回。两种方法对给给定得描述符制定非阻塞I/O:(1)如果是调用open以获得该描述符,则可指定O_NONBLOCK标志。(2)对于已经打开的一个描述符,可调用fcntl打开O_NONBLOCK文件状态标志。2. 复习3.1

2014-01-13 10:59:54 444

翻译 守护进程

大多数守护进程都是以超级用户特权运行,没有一个守护进程具有控制终端,其终端名为问号(?),终端进程组ID设置为-1,没有一个守护进程具有控制终端,其终端名设置为问号(?),终端前台进程组ID设置为-1,内核守护进程以无控制终端的方式启动。用户层守护进程缺少控制终端可能是守护进程调用了setsid的结果,所有用户守护进程都是进程组的组长进程,以及会话进程的首进程,而且是这些进程组和会话中的唯一进程,

2014-01-12 10:53:13 501

原创 linux centos的不足

最近学习centos系统,发现了一个不足,就是一般的类unix在处理信号时,当正在处理当前的信号处理程序时,会自动屏蔽当前信号,但貌似,linux不会进行屏蔽,因为在信号处理程序中打印当前信号屏蔽字时,不会把当前信号进行打印。

2014-01-10 17:22:01 552

翻译 程序启动与进程创建

当执行一个程序时,所有信号的状态都是系统默认或忽略,通常所有信号都被设置它们的默认动作,除非调用exec的进程忽略该信号,确切地说,exec函数将原来设置为它们的默认动作,其他信号的状态不变,(对于一个进程原来要捕捉的信号,当其执行一个新程序之后,就自然不能再捕捉它了,因为信号捕捉函数的地址很可能在所执行的新程序文件中已无意义)一个具体的例子是在一个交互式shell如何处理针对后台的进程的中断

2014-01-08 17:29:50 765

转载 unix的实际用户id,有效用户id,及保存的设置用户id

摘要:最近看APUE时为这几个ID困扰了很久,查找了很多资料后,终于感觉比较清晰了。先记在这里。或许还有些理解上的偏差,后续更正。本文主要讲述这几种ID的区别和联系。实际用户ID:有的文章中将其称为真实用户ID,这个ID就是我们登陆unix系统时的身份ID。有效用户ID:定义了操作者的权限。有效用户ID是进程的属性,决定了该进程对文件的访问权限。文件的访问权限包括读写和执行

2014-01-04 19:29:41 484

原创 硬链接与符号链接 及共享库

硬链接不能跨越文件系统;不能连接到目录符号链接只是在创建一个独立的文件,而这个文件会让数据的读取指向它连接的那个文件的文件名,由于只是利用文件来作为指向的操作,所以,当源文件被删除之后,符号连接的文件会开不了。会一直说无法打开某文件,实际上,就是找不到源文件的文件名而已。制作连接文件必须要使用ln这个命令。一般的命令格式为[root@www~]# ln [-sf]  源

2014-01-02 11:07:01 889

翻译 /dev/fd

较新的系统都提供了名为/dev/fd的目录,其目录项是名为0,1,2等的文件,打开文件/dev/fd/n等效于复制文件描述符n(假定描述符n是打开的) 在下列函数调用中fd=open(“/dev/fd/0”,mode)大多数系统忽略它所指定的mode,而另外一些则要求mode必须是所涉及的文件原先打开时所使用的mode的子集,因为上面的打开等效于:fd=dup(0);所以描

2013-12-28 11:47:37 555

转载 <<UNIX环境高级编程>>apue.h头文件的配置

初学《UNIX环境高级编程》的朋友都会遇到一个问题,运行里面的实例(download: http://www.apuebook.com/)时就出现问题,提示 "错误:apue.h:没有那个文件或目录".apue.h是作者自定义的一个头文件,包括程序所需的常用头文件及出错处理函数。所以因该将它放入系统头文件中(Linux下是 /usr/include),这样gcc编译器就可以找到它了。先

2013-12-27 09:22:27 389

原创 unix下的守护进程

守护进程也称为精灵进程,是生存期较长的一种进程,它们常常在系统自举时启动,仅在系统关闭时才终止,因为它们没有控制终端,所以说它们是在后台运行的,unix系统有很多的守护进程,它们执行日常事务活动。本章说明守护进程的结构,已以及如何编写守护进程程序,因为守护进程没有控制终端,我们需要了解在出现问题时,守护进程如何报告错误情况。  守护进程的编写规则:在编写守护进程程序时需要遵循一

2013-12-23 15:24:04 482

原创 select函数和fd_set及对进程的理解

http://baike.baidu.com/link?url=-ng3rW9N1RosgK1m4D2em7OqFvMhNNU0h_qHs9l-DS1xWH0cQ-IViNN3kJajq4NI-g_VTpD4ZJiqVBE_nSjJR_

2013-12-21 13:42:33 471

原创 little knowledge及errno的一些错误定义

select()机制中提供一fd_set的数据结构,实际上是一long类型的数组,每一个数组元素都能与一打开的文件句柄(不管是socket句柄,还是其他文件或命名管道或设备句柄)建立联系,建立联系的工作由程序员完成,当调用select()时,由内核根据IO状态修改fd_set的内容,由此来通知执行了select()的进程哪一socket或文件发生了可读或可写事件。 LINUX 下宏定义

2013-12-20 21:37:33 501

转载 struct_tm和time_t时间和日期的用法

关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。下面主要介绍在C/C++中时间和日期的使用方法.通过学习许多C/C++库,你可以有很多操作、使用时间的方法。但在这之前你需要了解一

2013-12-20 19:40:21 1829

转载 SSL协议

SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认

2013-12-20 19:39:15 465

转载 oracle远程登录解决方法

Oracle远程登录:   在cmd中:sqlplus scott/tiger@oracle //在tiger和@中间没有空格(也不能加空格),oracle为你自己在netca中添加的远程连接的服务名   在cmd中:sqlplus /nolog   SQL>conn //orcl为服务器上的服务名   正常安装就好了,先安装oracle10G,然后配置一下客户端,

2013-12-20 11:22:36 642

转载 oracle监听程序配置

(一)   、监听器(LISTENER)监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基于服务器端提出的连接请求,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。(二)、本地服务名(Tnsname)Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端的连接请求进行合法检

2013-12-20 11:04:55 1208

翻译 bzero函数简介

原型:extern void bzero(void *s, int n);参数说明:s 要置零的数据的起始地址; n 要置零的数据字节个数。用法:#include 功能:置字节字符串s的前n个字节为零且包括‘\0’。说明:bzero无返回值,并且使用string.h头文件,string.h曾经是posix标准的一部分,但是在POSIX.1-2001标准里面,这些函数被标记为了遗留函

2013-12-19 15:23:07 1601

原创 unix下C标准文件操作及进程相关知识

close函数可以关闭一个已打开的文件#includeint close(int fd);//返回值:若成功返回0;若出错,返回-1并设置errno  参数fd是要关闭的文件描述符,需要说明的是,当一个进程终止时,内核对该进程所有尚未关闭的文件描述符调用close(fd)函数关闭,所以即便用户程序不调用close,在终止时内核也会自动关闭它打开的所有文件,但是对于一个长年累月运

2013-12-17 10:39:10 590

转载 C标准I|O与Unbufferd I|o

用Unbuffered I|o函数每次读写都要进内核,调一个系统调用比调一个用户空间的函数要慢的很多,所以在用户空间开辟I|O缓冲区还是比较必要的,用C标准I|O库函数就比较方便,省去了自己管理I|O缓冲区的麻烦。 用C标准I|o库函数要时刻注意|O缓冲区与实际文件可能不一致,在必要时需要调用fflush(2);  在UNIX中,I|0函数不仅用来读写常规文件,也用于读写设备,

2013-12-17 10:16:54 427

原创 结构体与枚举的区别

结构体成员名与变量名不在同一命名空间,而枚举成员名与变量名在同一命名空间。

2013-12-16 20:54:45 997

原创 gcc的简易用法(编译,参数与链接)

gcc为linux上面最标准的编译程序。这个gcc是由GNU计划所维护的,有兴趣的朋友请自动前往参考,既然gcc对于linux上开放源码是这么重要,所以下面我们就列举几个gcc常见的参数,如此一来大家应该更容易了解源码的各项功能。#仅将源码编译成目标文件,并不制作链接等功能。【root@www~】#gcc -c hello.c#会自动生成hello.0这个文件,但是并不会生成可执行文件

2013-12-16 20:14:26 619

转载 volatile变量

volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。使用该关键字的例子如下:int volatile nVint;>>>>当要求使用volatile 声明的变量的值的时候,系统总是重新从

2013-12-15 20:20:14 360

转载 如何在linux centos下设置桥接联网方式

一、设置VMware       在vmware的【编辑】-->【虚拟网络编辑器】设置:将VMnet0设置为“桥接”,并桥接到宿主机器的网卡(可以是有线或者无线网络)。 二、设置虚拟机系统(以centos为例)      将网路适配器设置为桥接三、配置IP(都是在命令界面中,图形界面同理)    1、编辑/etc/sysconfig/network-scri

2013-12-14 16:45:02 4164

原创 C语言之可变参数列表

在函数原型中,列出了函数期望接受的参数,但是原型只能显示固定数目的参数,让一个函数在不同的时候,接受不同的数目的参数是不是可以的,答案是肯定的。stdarg宏可变参数列表是通过宏来实现的,这些宏是定义在stdarg.h头文件中,它是标准库的一部分,这个头文件声明了一个类型为va_list和三个宏-va_start,va_srg,va_end,我们可以声明一个类型为va_list的变量,与这

2013-12-13 21:23:41 453

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除