return0;
}
技术问答题:
1、单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。
通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
主要单元测试工具:
QTP:
quicktestProfessional.,C++TEST
2、规范编程内容:
标识符规则---类,方法,变量,同时也是包名的规范
由字母(汉语中的一个汉字是一个字母),数字,下划线和$组成,不能以数字开头。
大小写敏感
没有长度限制,不能有空格
不能使用Java的关键字和保留字
java中的关键字
goto和const在java中虽然不再使用但是还作为保留字存在
java中没有sizeof这个关键字了,java中的boolean类型的值只能用true和false,且这两个也是关键字
enum枚举assert断言
一个标识符尽量符合语义信息,提高程序可读性
类名:
每个单词首字母大写,
变量和方法:
第一个单词小写,后边的每个单词首字母大写
包名:
全部小写
常量:
全部大写以下划线分词
局部变量:
定义在方法中的变量
(1)先赋值后使用
(2)从定义变量的代码块开始到代码块结束
(3)在同一范围内不允许两个局部变量发生命名冲突
3、简单点说,对于一个vector<int>的函数,比如size(),如果在不同的cpp中出现,在这些文件编译的时候都要把vector<int>:
:
size()编译一遍。
然后在链接的时候把重复的函数去掉。
很显然增加了编译时间。
模板的声明是不编译的,更没有空间,它根本不是实际的类型或函数,编译器根本不管它。
只有实例化的时候,才生成真正的类型、函数,而实例化的地方不在一起,必然造成同一个类型、函数被编译了多次。
反观类的编译,只在它的cpp中编译一次,其他地方都使用它的头文件得到声明。
4、面对对象就是:
把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。
对同类对象抽象出其共性,形成类。
类中的大多数数据,只能用本类的方法进行处理。
类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。
程序流程由用户在使用中决定。
5、设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
好处:
(1)、复用解决方案——通过复用已经公认的设计,能够在解决问题时取得先发优势,而且避免重蹈前人覆辙。
可以从学习他人的经验中获益,用不着为那些总是会重复出现的问题再次设计解决方案。
(2)、确立通用术语——开发中的交流和协作都需要共同的词汇基础和对问题的共识。
设计模式在项目的分析和设计阶段提供了共同的基准点。
(3)、提高观察高度--模式还提供了观察问题、设计过程和面向对象的更高层次的视角,这将可以从“过早处理细节”的桎梏中解放出来。
(4)、大多数设计模式还能使软件更容易修改和维护。
其原因在于,它们都是久经考验的解决方案。
所以,它们的结构都是经过长期发展形成的,比新构思的解决方案更善于应对变化。
而且,这些模式所用代码往往更易于理解——从而使代码更易维护。
6、引用就是对某个变量其别名。
对引用的操作与对应变量的操作的效果完全一样。
2.申明一个引用的时候,切记要对其进行初始化。
引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。
声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。
3.不能建立数组的引用。
//切记不能建立数组的引用
7、面向对象是一种程序设计的思想,简单的讲,就是封装,继承,多态;当然,也可以说抽象。
封装这个概念简单的说,对于简单的数据类型,有它自己的封装类(通常我们说的打包);对于引用类型,类就是一个封装体的一个表现.
继承:
子类继承父类(也就是派生类继承基类),它具有可扩展性,便于程序代码的重用性。
继承可以实现多态:
通过重写(覆写),通过对象上传可以实现
多态:
通过重写和重载实现
抽象:
面向接口编程
8、
(1).打开块检查(blockchecking)
(2).用rman备份时打开块跟踪(10g以上)
(3).镜像日志组成员。
(4).备份时使用checklogical选项这会让rman检查块中的逻辑损坏以及头尾校验,这是获得良好备份的最好方式。
(5).测试你的备份做任何操作都不如实际恢复一次数据库。
(6).每个数据文件在一个单独的备份片中做部分恢复时rman必须读取整个备份片和必须的归档日志。
(7).维护rman的恢复目录和控制文件仔细选择你的保留政策。
(8).预防控制文件丢失这将确保您始终具备最新controlfile的可用。
(9).测试你的恢复在恢复场合,会让你知道恢复将怎样执行。
(10).在备份归档时不要使用deleteallinputDELETEINPUT将从第一个归档位置删除日志。
9、CPU工作方法分为中断模式和查询模式.
查询模式就是说CPU轮翻的对外设顺序访问,比方说它先看看键盘有没被按下有的话处理,没的话继续往下看鼠标有没有移动再看看打印机印的怎么样了,再看...等等..显然查询方式的效率低.但稳定可靠.
中断模式时就是说CPU不主动访问这些设备,,只管处理自己的任务,没任务就闲着.也就是说在那等着.如果有设备要与CPU联系,或要CPU处理一些事情,他会给CPU发一个中断请求信号.一种情况是这时CPU就会放下正在进行的工作而去处理这个外设的要求.这叫做响应中断.处理完中断后,CPU返回去继续执行中断以前的工作.还有一种情况如果CPU这时正在做更重要的事情他就会让这个设备先在那等着.有空时响应他.如果同时有好几个设备都要CPU来处理,CPU就会从按重要程度来逐个处理.这就是中断和中断的优先级
10、死锁
(1)互斥条件:
一个资源每次只能被一个进程使用。
(2)请求与保持条件:
一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3)不剥夺条件:
进程已获得的资源,在末使用完之前,不能强行剥夺。
(4)循环等待条件:
若干进程之间形成一种头尾相接的循环等待资源关系。
数学题:
1、采用分类讨论的方法,首先,要是三个数字的和是奇数.那么共有
1奇数+奇数+奇数=奇数
2偶数+偶数+奇数=奇数
第一种情况是在5个中取出3个奇数.共有10方法.(这是一个组合)
第二种情况是在这九个数字中取出两个偶数,即在4个偶数中取出2个偶数.共有4×3/2!
=6种方法.忘记了还有五个奇数中再选取一个.5×6=30
所以一共有40种方法.
2、9999
Web前端开发类:
1、
(1)div+css,这个网页设计模式中,div承担了网页的内容,css承担了网页的样式。
这样就使网页的内容和样式的分离开来。
有利于页面的维护升级。
(2)有助于提高搜索引擎亲和力(快速找到需要的数据,而不是像在table中一层层的查找)
(3)有助于页面的重构(换皮肤如blog,直接套用另外一套样式就可以实现,而不用改动网页脚本。
)
2、在JSP中,跳转页面有两种方式:
1.forward跳转:
forwardpage="跳转页面地址"/>2.response跳转:
response.sendRedirect("跳转页面地址");两种跳转的区别如下:
1.forward跳转:
a.服务器端跳转,地址栏不改变;b.执行到跳转语句后马上无条件跳转,之后的代码不再执行(跳转之前一定要释放全部资源);c.request设置的属性在跳转后的页面仍可以使用;d.使用paramname="参数名"value="参数值"/>传递参数。
2.response跳转:
a.客户端跳转,地址栏改变;b.所有代码执行完毕后跳转;c.跳转后的页面不能使用上一个页面的request属性;d.使用地址重写传递参数(response.sendRedirect("URL?
参数名=参数值"))。
3、每个独立的搜索引擎都有自己的网页抓取程序(spider)。
Spider顺着网页中的超链接,连续地抓取网页。
被抓取的网页被称之为网页快照。
由于互联网中超链接的应用很普遍,理论上,从一定范围的网页出发,就能搜集到绝大多数的网页。
抓取网页信息需要有高性能的“网络蜘蛛”程序(Spider)去自动地在互联网中搜索信息。
一个典型的网络蜘蛛工作的方式,是查看一个页面,并从中找到相关信息,然后它再从该页面的所有链接中出发,继续寻找相关的信息,以此类推,直至穷尽。
网络蜘蛛要求能够快速、全面。
网络蜘蛛为实现其快速地浏览整个互联网,通常在技术上采用抢先式多线程技术实现在网上聚集