计算机基础知识

C++

1.      多态性——同样的消息在发送给各种不同的对象时会产生多种形式的结果。

Eg:Animal基类,fish,dog,cat派生类

基类指针是可以指向派生类对象的,但调用的仍是基类的成员函数。(因为每个派生类对象可以当做基类对象,派生类对象是包含了基类对象的所有功能的。)

若一个基类指针指向派生类对象,而你又想通过基类指针调用派生类对象的函数,可以把基类的这个函数的声明加上Virtual,(派生类的相应的函数可以加Virtual,也可不写,默认朝下的层次都变成了Virtual),这样指向派生类对象基类指针调用的就是所指向的派生类的函数了。。。。。。。。。。。。。。这叫“动态绑定”。而直接通过圆点“.”调用函数。叫“静态绑定”。

定义——这种把相同的消息(“print”)发送给不同的派生类对象时(通过基类指针指向不同的派生类对象),会动态绑定不同的派生类的函数,从而出现不同形式的“print”。这就是“多态性”的行为。通过虚函数实现的,虚函数只有在运行的时候才能确定是哪个。

抽象类——不能实例化对象。Eg. Shape类。

Virtual函数有实现,只是在声明加了个Virtual,派生类也有权利重写或不写这个函数。

纯Virtual函数不提供函数的实现,是在声明前加Virtualvoid draw() = 0;需要派生类重写这些函数,写过后派生类变成具体类,可以实例化任何对象,否则仍为抽象类。

尽管抽象基类不能实例化对象,但它可以通过抽象基类指针多态的操作派生类。

覆盖和重载——覆盖就是重写,是派生重新定义基类的虚函数。重载是允许存在多个同名函数,而这些函数的参数表不同。∴构造函数可以重载但不能覆盖(重写)

封装——可以隐藏实现细节,使得代码模块化。

继承——可以扩展已存在的代码模块(类)。

封装和继承是为了代码重用,而多态是为了接口重用。多态是“一个接口,多种方法”。

2.      Friend友元函数——在一个函数前前加friend,友元不是成员函数,它可以访问类中的私有成员。作用:提高程序的运行效率,但是破坏了类的封装性和隐藏性。

3.       构造函数——当创建一个派生类对象时,派生类构造函数立即调用基类的构造函数,基类的构造函数执行,然后派生类的成员初始化,最后派生类的构造函数执行。若继承多层,向上翻滚。从顶——底来构造。

析构函数——与构造函数的调用顺序相反。当销毁派生类的对象时,程序首先调用派生类对象的析构函数,然后调用上一层基类的析构函数……直到最顶层的析构函数。从底——顶来析构。(不论析构函数是不是Varitul函数)

派生类不会继承基类的构造函数,析构函数等,但会调用基类的构造,析构函数。

基类为什么要搞一个虚的析构函数?(基类析构函数是Virtual型,那么它的所有派生类的析构函数自动也是Virtual型,这样就不会出现析构函数未被调用而导致的内存泄露。)

为什么构造函数不能是虚函数?(因为虚函数采用虚调用的办法,需调用是一个只知道接口而不知道其准确类型的函数。而我们构建一个对象,你势必要知道对象的准确类型。因此构造函数不能为虚。)

既然虚函数是有效的,是否把每个函数都声明为虚函数????(不行。因为使用虚函数的时候会产生一个系统开销。如果是个很小的类,而且不想派生类,根本没必要使用虚函数。)

4.      内联函数和宏的差别内联函数将代码直接插入到调用处,减少了普通函数调用时的资源消耗,即在调用函数的地方不是跳转而是把代码直接写到那里去,加快了程序的运行速度。||而宏只是一个简单的替换,宏不是函数,只是在编译前将程序中有关字符串不加任何验证的替换。内联函数要做参数类型检查,这是他跟宏相比的优势)

Inline必须与函数定义体放在一起才能使函数成为内联,仅将inline、放在声明前不起作用。

既然inline能提高函数的执行效率,为什么不把所有的函数设为inline呢???(内联是以代码复制为代价,省去了函数调用的开销,从而提高执行效率。但是如果执行函数体内代码的时间相比于省去的开销大得多,那又何必使用内联呢,只会消耗更多的内存)

构造函数和析构函数可以是内联吗??(答:不可以。他俩可能会隐藏一些行为,比如偷偷执行了基类的构造和析构。∴也不要随便将他俩的定义体放在类声明中)

内联适用于(①一个函数被多次调用②函数只有简单的几行,也没for,while,switch

内联不适于(①函数体内的代码比较长②函数体内出现循环)

5.       指针和引用的区别(引用并非对象,它只是为一个已经存在的对象所起的名字,为引用赋值,实际是把值赋给了与引用绑定的对象。引用必须初始化,一旦初始化,就与初始值对象(引用只能绑定在对象上而不能是值)一直绑定在一起,不能改变,但其绑定的对象的内容可以改变。 || 而指针是一个对象,指针也无需在定义是赋初值。指针可以被赋值,也可以重新赋值指向另一个对象)。

使用引用情况:(总是指向一个对象且一旦指向就不会改变)。

使用指针情况:(可以不指向任何对象,既可以为空;另外当不同时刻指向不同对象)。

6.      空指针和迷途指针的区别(迷途指针:当delete一个指针时,仅仅是让编译器释放内存,指针依然存在,并没有把它设为空所产生的。可以把0赋给指针即可变成空指针。使用迷途指针和空指针都是非法的,如果是空指针,尽管同样是系统崩溃,但它是可预料的崩溃)。

7.      C++有了malloc/free,为什么还要new/delete?malloc/free是标准库函数,new/delete是运算符,都是申请和释放内存。对于非内部数据类型的对象而言,只用malloc/free无法满足动态对象的要求。对象创建时自动执行构造函数,消亡前自动执行析构,malloc/free不能执行这俩任务。而new/delete可以动态内存分配释放

8.      指针和句柄。(windows系统用句柄标记系统资源,隐藏系统的信息。你只要知道有这个东西,然后去调用就行,它是一个32bit的整数。而指针则是标记某个物理内存地址。截然不同)

9.      This指针(this指针只有在成员函数中定义使用,其他都不可。This是个指向对象的“常指针”,不能改变。This指针会因编译器不同而有不同的放置位置。他在成员函数的开始执行前构造,在成员的执行结束后清楚。)

10.    Const和#define的区别(都可以定义常量。但const更好些。因为const常量有数据类型,define没有。编译器可以对前者安全检查。有些集成化的调试工具可以对const常量调试)

Const来指定对象是不可修改的,“常量性质”,const对象只能调用是const的成员函数,不能调用非const成员函数。∵构造函数和析构函数都是典型的修改对象,∴构造和析构是不允许声明为const的

常量数据成员和引用成员必须采用成员初始化器形式初始化,不能在构造函数中直接赋值,用冒号。




操作系统篇

1.      死锁:多个进程在竞争的过程中因争夺资源(或请求或释放资源的顺序不当)而造成的一种僵局,当进程处于这种状态时,若无外力作用,他们都将无法再向前推进。

Eg:进程P1占用打印机,P2占用磁带机,P2又想要打印机,P2将阻塞;若P1要磁带机,P1也阻塞。P1,P2之间形成僵局,两个进程都在等待对方释放自己所要的资源,又不释放自己现在已经占有的资源。吃着碗里的,看着锅里的。

 

死锁的必要条件:(只要死锁发生,这四个条件成立;只要以下之一不满足,不会死锁)

①    互斥条件(一个资源每次只能被一个进程使用)

②    请求与保持条件(一个进程因请求资源而阻塞时,对已获得的资源保持不放)

③    不剥夺条件(进程已获得的资源,在未使用完之前,不能强行剥夺)

④    循环等待条件(若干进程形成的头尾相接的循环等待资源的关系)

 

死锁预防措施(使以上之一不成立)

①    破坏不剥夺条件(允许进程剥夺使用其他进程的资源)

②    破坏“环路”条件(采用资源有序分配法)

③    采用资源静态分配策略(破坏“部分分配”条件)

注意:互斥条件无法破坏!!!

 

避免死锁的算法——银行家算法:(检查申请者对资源的最大需求量,若系统存在的资源满足请求,就满足他。这样申请者很快完成计算,然后释放资源,从而保证系统的所有进程都能完成)。

 

例题:有5台绘图仪,多个进程要两台,规定每个进程只能申一台,至多允许(4)个进程参与竞争,不会死锁。(答:资源1-5,哲学家总是拿起左右两边编号较低的叉子,再拿高的;先放高的,再放编号低的。当4位哲学家同时拿起手边较低的叉子时,只有编号最高的剩在桌子上。)

 

2.      进程——进程是程序的一次运行,是一个可拥有资源的独立单位,同时又是一个可独立调度和分派的独立单位。进程是一个程序在一个数据集合上的一次运行过程。

引入进程的目的,是为了使多个程序并发执行,以提高资源利用率和系统吞吐量。

线程——通常一个进程都拥有若干个线程,线程一般不拥有资源,但可以访问其隶属进程的资源,线程是独立调度和分派的基本单位。线程处于进程空间内,同一进程所产生的线程共享同一内存空间。线程是属于进程的,当进程退出时所产生的线程会强行退出。

不仅进程之间可以并发,线程之间也可以并发执行。 

作业——是一系列有序的步骤,要求计算机要做工作的集合。

 

进程的3种状态——(进程在运行中不断改变自己的状态。①就绪:获得除CPU外的所有资源②执行:正在处理机上执行③阻塞:正在执行的由于等待某个事件无法执行时,便放弃处理机而阻塞eg:等待I/O完成,申请缓冲区不能满足,等待信号)

 

进程间的通信——就是进程之间的一些接触,通信的方式有①信号(使用信号处理器进行),②信号量(使用P,V操作实现的),③消息队列(直接传送消息,一个消息队列被多个进程共享,共享消息队列的进程所发送的消息中除了message外还有一个标志,指明由哪个进程来接受)。

 

互斥器和临界区——互斥器用于进程之间互斥,临界区是线程之间的互斥。

 

可剥夺式处理机调度,最短剩余时间的作用优先获得处理机。

3.      Windows内存管理的方式——

①    页式管理(把各进程的虚拟空间划分成若干个长度相等的页,把内存空间按页的大小划分成页面,然后把页式虚拟地址与内存地址建立一一对应的页表。优点:没有外碎片,每个内碎片不超过页的大小;缺点:程序全部装入内存,要求有相应的硬件支持eg:地址变换机构缺页中断的产生)

②    段式管理(程序按内容或过程函数分段,以段为单位分配内存,再通过地址映射机构把段式虚拟地址转换为实际物理地址。优点:可以分别编写和编译。缺点:会产生碎片)

③    段页式管理(为每个进程建立一张段表管理内存,每个段又必须有一张页表把段中的虚页变换成内存中的实际页面。集合了两者的优点,但需要的硬件及占用的内存也有所增加)

内存抖动——内存分配算法不好,内存太小或者程序的算法不佳引起的页面频繁从内存调入/调出的行为。



计算机网络篇    

1.      用三次握手——建立TCP连接   

TCP是面向连接的协议,用来传送TCP报文得有TCP连接。所以,首先,建立连接—数据传送---释放连接。TCP连接的建立采用客户/服务器方式。客户是主动发起连接建立的应用进程,服务器是被动等待连接建立的应用进程。

三次握手:

①    A发出连接请求(A发送请求报文段到B,首部中的同步位SYN=1,同时选择一个初始序号seq=x.并进入SYN_SENT“同步已发送”状态,等待B确认)

②    B收到连接请求,向A发出确认报文段,同意建立连接。(B发的确认报文段SYN位和ACK位都置1,确认号是ack=x+1,同时也为自己选择了一个初始序号seq=y。B进入SYN-RCVD“同步收到”状态)

③    A向B的确认发出确认(A收到B的,向B发送确认,确认报文段的ACK=1,确认号ack=y+1,自己的序号seq=x+1,A,B进入ESTABLISHED状态,完成3次握手,之后A,B开始传数据)

为什么A最后还要再一次确认呢?(答:eg.A发出了一个连接请求报文段并没有丢失,但由于网络长时间滞留,本来这已经是个失效的报文段了,但B收到此失效的报文段,就误认为是A又发出一次新的请求。于是就向A发出确认报文段,同意建立连接。

如果没有三次握手,就又建立了一次连接。但咱有三次握手,∴  A不会向B的确认发出确认,B由于收不到确认,就知道A没要建立连接。)

  

   四次握手——释放连接:

①     A的应用进程向其TCP发送连接释放报文段,主动关闭连接,A进入终止等待FIN-WAIT-1状态,等待B的确认。

②    B收到后发出确认,B进入关闭等待CLOSE-WAIT状态。A收到来自B的确认后,进入终止等待2状态,等待B发出的连接释放报文段。

③    B发出连接释放报文段,B就进入最后确认LAST-ACK状态。

④    A收到B的释放报文段后,发出确认。A进入时间等待TIME-WAIT状态。(因为现在TCP连接还没有释放掉,还要等待2MSL后,A才进入CLOSED状态)。

2.      如何编写Socket套接字?(答: Socket相当于网络通信两端的插座,只要对方的Socket和自己的Socket有通信连接,双方就可以发送和接收数据了。)

客户端程序编写:

①    调用Socket()创建一个套接字,调用connect()连接服务器。

②    调用Socket类的getOutoutStream()和getIutoutStream()获取输出流和输入流,开始数据发送和接收。

服务器端程序编写:

①    调用ServerSocket(intport)创建一个服务器端套接字,调用bind()绑定IP地址和端口。

②    启动一个死循环,循环中调用accept()接受连接,对于每个接受的连接,启动多线程方式处理。

③    调用Socket类的getOutoutStream()和getIutoutStream()获取输出流和输入流,开始数据发送和接收。

3.      TCP和UDP区别。(答:TCP连接就像打电话,有一条不间断的通路,数据不到达对方,对方就一直等,除非对方直接挂掉;|| UDP就像寄一封信,发信者只管发,之间也不需要通路)

TCP是传输控制协议,提供的是面向连接的,可靠的服务。必须先建立一个连接才能传输。而且TCP提供超时重发,丢弃重复数据,检验数据,流量控制等,保证数据能从一端到另一端。

UDP是用户数据报协议,是一个简单的面向数据报的运输层协议。不提供可靠性,不保证能否到达目的地。不用客户服务器之间建立连接,也没超时重发机制,运输速度很快。

4.      OSI参考模型:物理层,数据链路层,网络层,运输层,【会话层】,【表示层】,应用层。

5.      入侵检测和防火墙?(答、;两者各有优劣,防火墙相当于一栋大楼外的门卫系统,而入侵检测就相当于大楼内的监控,两者缺一不可。应该两者联合起来,当入侵检测到入侵行为,及时报告防火墙,阻断入侵)。

6.      25端口是做什么用的,有漏洞吗?(答:25端口是SMTP邮件传输协议服务器所开放,用于发送邮件。Eg在使用电子邮件客户端程序的时候,创建账户时要求输入SMTP服务器地址,该服务器地址默认情况下使用的就是25号端口。漏洞:黑客利用25端口,可以寻找SMTP服务器,用来转发垃圾邮件。Eg、木马程序WinSpy通过开放25端口,监视计算机正在运行的所有窗口和模块)。

7.      Ping命令是什么协议?(答:ICMP(Internet控制消息协议)。,用于在IP主机,路由器之间传递控制消息(eg网络通不通,主机是否可达,路由是否可用))。Ping.exe原理是向指定的IP地址发送一定长度的数据包,若指定IP地址存在,会返回同样大小的数据包。若超时没有,则认为指定的IP地址不存在。但有些防火墙软件会屏蔽ICMP协议,∴ping不通不一定是对方IP不存在。

“ping of death”——操作系统规定ICMP数据包最大尺寸不超过64kb。如果超过了,主机就会出现内存分配错误,致使主机死机。

“ICMP风暴”——向目标主机长时连续的大量的发送ICMP数据包,也最终使系统瘫痪。




数据库篇

1.      事务的ACID性质

A原子性:事务要么执行,要么什么也不做。Eg:银行取钱(余额减少—拿到现金)

C一致性:数据不会因事务的执行而遭受破坏。Eg:完整性约束了a+b=10,一个事务改变了a,b页应随之改变。

I隔离性:多个事务并发执行时,保证执行结果是正确的,如同单用户一样。

D持久性:一个事务一旦完成操作后,它对数据库的所有更新永久的反应在数据库不会丢失。  

2.      存储过程和函数的区别

答:存储过程是用户定义的一系列SQL语句的集合,涉及特定表,用户可以调用存储过程。函数式数据库已经定义的方法,它接收参数并返回某种类型的值,不涉及特定用户表。

3.      触发器(事前触发器运行于触发事件之前,事后触发器运行之后)。

4.      SQL注入式攻击(即攻击者把SQL命令插入到Web表单的输入域,欺骗服务器进行恶意的SQL命令。)防范它并不难,只要把所有的输入内容过滤一番就可以了,eg检查用户输入的合法性。

5.      聚集索引和非聚集索引(聚集索引的顺序就是数据的物理存储顺序,非聚集索引就是索引顺序与数据物理排列顺序无关)。∴一个表最多只能有一个聚集索引。

6.      出表p中最小的数,不能使用min函数(select top 1 num  from p order by num)

使用min函数(select *   from p  where num=(select  Min(num) from p ) )

 

选择表p中num重复的记录(select *  from p  where num in(select num  fromp   group by  num having(count(num)>1) 

 

建立一张临时表(create table  #Temp(字段1 类型,字段2 类型……) )

 

有一个数据库,只有1个表,包含1000个记录,把第5到7行的记录取出来

答:建立数据库 create table  #T。删除数据库 drop table #T。

提取数据:select top 7 num   from T where num > ANY ( select top 4 num from T 

Order by num )   order by num。

 

更改数据库的名称:sp_renamedb命令。

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值