1.介绍分页管理
分页管理是一种内存管理方式,它将进程的逻辑地址空间分成若干个固定大小的页,并为各页加以编号12。同时,也将内存的物理地址空间分成若干个与页大小相同的块(也叫页框),并为它们加以编号12。这样,进程的每个页就可以装入到内存的任意一个块中,实现了逻辑地址和物理地址的分离3。
为了实现 虚拟地址到物理地址的转换,需要在内存中存储一个页表,当进程访问某个逻辑地址时,需要通过查找页表来得到对应的物理地址4。
分页管理有以下优点:
解决了内存碎片问题,提高了内存利用率5。
支持了虚拟内存技术,使得进程可以使用比物理内存更大的逻辑地址空间5。
便于实现进程之间的保护和共享5。
2.语法分析的作用
语法分析是编译过程中的一个重要步骤,它的作用是输入一串词法单元,验证这些词法单元组成句子的语法是否正确,并输出语法分析树1。语法分析树是一种表示源程序结构和语义信息的数据结构,它为后续的语义分析和代码生成提供了基础23。
语法分析器需要根据编程语言的上下文无关文法(CFG)来判断词法单元序列是否符合语言的规则3。如果发现有语法错误,需要进行错误检测和恢复,并尽可能地继续处理程序的其余部分2。
3.可行性分析
可行性分析是一种综合性的系统分析方法,它的目的是对一个投资项目的技术可行性和经济合理性进行评价,为项目决策提供依据1。可行性分析通常包括以下几个方面:
市场需求分析:研究项目的市场前景、目标客户、竞争对手等。
技术分析:研究项目的建设规模、工艺路线、设备选型、环境影响等。
资金筹措分析:研究项目的资金来源、成本预算、投资回收期等。
经济效益分析:研究项目建成后可能取得的财务收益和社会效益等。
4.数据流图和流程图的区别
数据流图和流程图是两种不同的图形化工具,它们的区别主要有以下几点12:
数据流图的描述对象是数据在系统中的流向和变换,它强调系统的逻辑功能和数据处理过程,而不关心控制流和时间顺序。
流程图的描述对象是程序或业务的逻辑过程,它强调处理过程的控制流和执行顺序,而不关心数据流和变换。
数据流图中的处理过程可以并行执行,而流程图中在某个时间点只能有一个处理过程处于活动状态。
数据流图中只有四种基本符号:加工、数据存储、数据流、外部实体;而流程图中有多种符号表示不同类型的操作,如输入/输出、判断、循环等。
5.sql中的绑定变量
绑定变量是一种在SQL语句中使用占位符的技术,它可以提高SQL语句的执行效率和安全性12。
当一个SQL语句提交后,Oracle 在接收到这些SQL后,会先对这个SQL做一个hash 函数运算,得到一个Hash值,然后到共享池中寻找是否有和这个hash 值匹配的SQL存在。 如果找到了,Oracle将直接使用已经存在的SQL 的执行计划去执行当前的SQL,然后将结果返回给用户。 如果在共享池中没有找到相同Hash 值的SQL,oracle 会认为这是一条新的SQL, 会进行硬解析。
绑定变量的本质就是本来需要做Oracle 硬解析的SQL 变成软解析,以减少ORACLE 花费在SQL解析上的时间和资源。
绑定变量只是起到占位的作用,同名的绑定变量并不意味着在它们是同样的,在传递时要考虑的是传递的值与绑定变量出现顺序的对位,而不是绑定变量的名称。
简单的说,绑定变量就是拿一个变量来代替谓词常量,让Oracle每次对用户发来的SQL做hash 运算时,运算出的结果都是同样的Hash值,于是将所有的用户发来的SQL看作是同一个SQL来对象。
绑定变量的作用是:
使得相同结构但不同参数的SQL语句被视为同一个SQL语句,从而减少了解析次数和硬解析的开销。
避免了SQL注入攻击,因为绑定变量不会被当作嵌入的字符串来解析,而是当作语句中的变量来处理。
提高了缓存命中率,因为绑定变量可以减少不同参数导致的缓存碎片。
绑定变量的使用方法是在SQL语句中用:variable_name来代替常量值,其中variable_name是自定义的变量名称。例如:
select*from emp where empno = :empno;
6.软件工程中的快速原型模型
快速原型模型是一种软件开发模型,它的特点是在需求分析阶段就快速设计开发出软件系统的原型,向用户展示软件的功能和性能,收集用户的反馈和建议,然后根据用户的需求进行修改完善,直到用户满意为止1。快速原型模型的优点是:
可以及时发现和解决需求分析中的问题和不明确之处,提高了需求分析的质量和效率。
可以增加用户对软件系统的信心和满意度,促进了开发人员与用户之间的沟通和协作。
可以减少软件开发周期和成本,提高了软件系统的可用性和可维护性。
快速原型模型的缺点是:
原型可能会过于简化或不完整,导致用户对软件系统有误解或过高期望。
原型可能会影响软件系统的结构设计和质量控制,导致软件系统难以扩展或修改。
原型可能会使开发人员陷入无休止地修改原型的循环中,导致软件项目失去控制或延期。
7.模块功能的可预测性
功能模块的可预测性是指功能模块的行为和输出能够根据输入和条件准确地预测,不会出现意外或错误的结果1。功能模块的可预测性对于软件系统的质量和可维护性非常重要,它可以:
降低软件系统的复杂度和风险,提高软件系统的稳定性和安全性。
增加软件系统的可测试性和可验证性,方便软件系统的测试和调试。
增加软件系统的可重用性和可扩展性,方便软件系统的修改和更新。
提高功能模块的可预测性的方法有:
明确清晰地定义功能模块的输入、输出、参数、异常等,使功能模块具有很好的内聚性。
尽量降低功能模块接口的复杂程度,减少功能模块之间的耦合。
使用合适的算法、数据结构、设计模式等,保证功能模块的逻辑正确性和效率。
8.计算机图形学
计算机图形学是一门研究计算机在硬件和软件的帮助下创建计算机图形的科学学科,是计算机科学的一个分支领域1。计算机图形学主要关注数字合成和操作视觉的图形内容,包括:
图形表示:如何用数学模型和数据结构来描述二维或三维的几何形体、曲线、网格等。
图形生成:如何用计算机程序来绘制或渲染图形,包括光栅化、光线追踪等方法。
图形处理:如何对图形进行变换、裁剪、压缩、滤波等操作,以改善图形的质量或效率。
图形显示:如何将生成或处理后的图形显示在屏幕上,包括颜色空间、像素格式、帧缓冲区等概念。
计算机图形学有很多应用领域,例如:
游戏开发:利用计算机图形学技术来创建逼真或想象的虚拟世界,提供沉浸式的游戏体验。
动画电影:利用计算机图形学技术来制作各种风格和题材的动画影片,展现丰富多彩的故事和场景。
虚拟现实:利用计算机图形学技术来模拟真实或虚构的环境,让用户能够与之交互和感知。
计算机辅助设计:利用计算机图形学技术来设计和测试各种产品和工程,提高设计效率和质量。
9.作用域和控制域
作用域是变量和函数的可访问范围,控制着变量和函数的可见性与生命周期1。在JavaScript中,作用域有全局作用域和局部作用域1。作用域在定义时就确定,并且不会改变2。
控制域是指代码执行时的上下文环境,包括变量对象、活动对象、this指向等2。执行上下文在运行时确定,随时可能改变2。一个作用域下可能包含若干个上下文环境2。
10.人工智能中的归结策略
11.虚拟设备基本思想
虚拟设备是指通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个进程同时使用1。虚拟设备的基本思想是利用磁盘或磁带等块设备作为缓冲区,在数据输入或输出时,将数据先传送到缓冲区,然后再从缓冲区传送到目标设备2。这样可以提高设备的利用率和系统的效率。
12.给一个函数依赖为在某个集合上的投影函数依赖是什么
13.为什么要对关系代数表达式进行优化 ?
对关系代数表达式进行优化的目的有以下几点:
(1) 减少运算量;
(2) 减少读写外存数据块的次数;
(3) 避免重复计算。
总之,代数表达式进行优化目的主要是为了减少时间。
优化策略:(1) 把查询转化成某种内部表示; (2) 把语法树转化成标准形式; (3) 选低层的存取路径; (4) 生成查询计划,选择代价最小的。
14.简述在 SQL中非显式索引的含义。
在索引被创建后,在索引被撤销前用户不会再用到该索引键的名称,而索引在用户对表进行查询处理时会自动起作用。
15.简述存储过程的优点。
存储过程是存放在服务器上预编译好的 SQL语句。
1.提高 运行速度
2.增强了 SQL 的功能 和灵活性 ,降低了网络 通信量 。
3.减轻了 程序编写的 工作量 ,间接实现了 安全功能 。
16.简述两段封锁协议的内容。
两段封锁将事务分成增生阶段和收缩阶段。
增生阶段事务可以申请封锁,但不能解除任何已取得的封锁。
收缩阶段事务可以释放封锁,但不能申请新的封锁。
17.SQL中的完整性约束有哪些?
1)域约束;2)基本表约束;3)断言;
18.候选键与超键
两者都是能唯一的标识元组的属性集,但候选键中不包含多余的属性
19.索引和键的区别?
索引是存储在数据库中的一个物理结构,是实际存在的,相当于一本书的目录。
键是一个逻辑概念,不是数据库的物理部分。键分为主键和外键。
主键一定是唯一性索引,唯一性索引并不一定就是主键。
一个表中可以有多个唯一性索引,但只能有一个主键。
主键列不允许空值,而唯一性索引列允许空值。
索引可以提高查询的速度。
主键和索引都是键,不过主键是逻辑键,索引是物理键,意思就是主键不实际存在,而索引实际存在在数据库中
20.什么是触发器?触发器的作用是什么?
触发器是一种特殊类型的存储过程,是用户对某一表中数据进行UPDATE、INSERT和DELETE操作时被触发执行的一段程序。
触发器可以实现由主键和外键所不能保证的复杂的参照完整性和数据一致性。起主要作用体现在以下几个方面:
(1)触发器可以对数据进行级联修改。
(2)实现比CHECK约束更为复杂的限制。
(3) 强制表的修改要符合业务规则。
21.合并E-R图主要包括哪几种冲突?
1、属性冲突
即属性值的类型、取值范围或取值集合不同。
2、命名冲突
同名异义,即不同意义的对象在不同的局部应用中具有相同的名字。
异名同义(一义多名),即同一意义的对象在不同的局部应用中具有不同的名字。
3、结构冲突
同一对象在不同应用中具有不同的抽象。
22.简述弱实体的概念。
一个实体的存在必须以另一实体的存在为前提,此时前者称为“弱实体” ,后者称为“强实体”
23.简述关系代数表达式的启发式优化规则。
(1)尽可能早地执行选择操作。
(2)尽可能早地执行投影操作。
(3)避免直接做笛卡尔积,把笛卡尔积操作之前和之后的一连串选择和投影全并起来一起做。
24.破坏参照完整性有哪几种
1、在参照表中插入元组时
2、当修改参照表中元组主码时
3、删除被参照关系元组时
4、修改被参照关系元组主码时
25.Java的三个技术平台
1.Java SE(Java Platform Standard Edition)标准版
它允许在桌面、服务器、嵌入式环境和实时环境中开发和部署Java应用程序。Se包含支持Java Web服务开发的类。
分为四个主要部分:
1.JVM: java虚拟机,包含在java执行环境中。
2.JRE:要运行java程序,必须安装JRE。
3.JDK:包括JRE和一些开发过程中需要的工具和程序。
4.Java语言
Java是在计算机上运行的软件。
2.Java EE(Java Platform Enterprise Edition)企业版
3、Java ME(Java Platform Micro Edition)小型版
26.继承
Java继承分为单继承和多重继承。单继承是指一个子类最多只能有一个父类。多继承是一个子类可以有二个以上的父类。由于多继承会带来二义性,在实际应用中应尽量使用单继承。Java语言中的类只支持单继承,而接口支持多继承。Java中多继承的功能是通过接口(interface)来间接实现的。
AVA关键字extends表明新类派生于一个已经存在的类。已存在的类称为父类或基类,新类称为子类或派生类。
27.码,主码,候选码
主码(主键、主关键字):若一个关系有多个候选码,选择其中一个为主码。
候选码(关键字):某一属性组的值能唯一标识一个元组而其子集不能(去掉任意一个属性都不能标识该元组),则称该属性组为候选码(补充元组:表中的一行即为一个元组)。
主属性:候选码包含的属性(一个或多个属性)。
码:唯一标识实体的属性或属性组合称为码。
28.软件工程中的软件设计的模型
瀑布模型、快速原型模型、渐增模型、喷泉模型、螺旋模型
29.代码优化的策略
使用Set去重数据
2、避免循环调接口/数据库
3、使用缓存,将查询频率比较高但修改频率比较低的数据缓存起来
4、使用多线程,大的任务拆分成小的任务,使用多线程并行执行;
网络防火墙的分类,服务器属于哪一类
包过滤防火墙、代码防火墙、检测型防火墙
面向对象的特征是什么
抽象、封装、继承、多态
JAVA语言的优缺点有哪些?
java优点:简单、安全、跨平台
java缺点:1。解释型语言,运行速度效率极低,不支持底层操作!
缓冲区的作用
减少实际物理读写次数2、缓冲区在创建时就被分配内存,这块内存区域一直被重用,可以减少动态分配和回收内存的次数