计算机复试 -- 程序设计语言

面向对象与面向过程的区别

1、面向对象是把构成的问题事物分解为各个对象,描述某一个事物做某件事的行为,以功能来划分

2、面向过程就是分析出问题解决所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用

面向对象三个特性:封装、继承、多态

1、封装:把客观事物封装成抽象的类,对外界事项接口调用,可以隐藏内部方法实现细节。比如:计算机语言加减乘除,我们只需提供数字和符号即可得出结构。具体怎么计算我们不知道底层的实现

2、继承:让一个对象在无需重新编写原来的类的情况下拥有另一个对象的属性和方法,同时该对象可以拥有自己独有的属性和方法。例如:狗和人都继承自动物类,都有身高和体重等属性,都会吃饭、走路

3、多态:让一个方法对不同类型的对象作出不同的响应。例如:狗和人-->吃饭,狗吃饭不用工具,人吃饭用筷子等工具

B/S C/S 的优缺点

C/SClient/server):客户端/服务端结构。界面表示、事务处理逻辑放在客户端,服务单主要负责数据的存储管理

第一层:在客户机系统上结合了界面显示和业务逻辑

第二层:通过网络结合数据库服务器

B/S(Server/Client):浏览器/服务器结构。Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现。B/S架构的系统无须特别安装,只有Web浏览器即可。

第一层:主要完成用户和后台的交互及最终查询结果的输出功能

第二层:主要利用服务器完成客户端的应用逻辑功能

第三层:主要接受客户端请求后独立进行的各种运算

 

JavaC的区别

1)内存管理

Java中,基本不同考虑内存的问题,如果想用一个对象,new一个就可以了,这个构成的背后则是JRE为对象分配的一定内存,当JRE发现你不在使用这个对象的时候,他会自动回收内存,也就是说只管借东西,还交给“爸妈”

但是C则不同,用malloc之类的方法申请内存,当你使用完了,需要自己把这个内存归还回去,也就是调用free方法来完成这个任务。

2)面向对象

Java的面向对象的特点很明显,由于C不是面向对象的语言,也就没有this的概念,因此当使用一个与某一个“东西”相关的函数时,就需要不厌其烦的将代表这个东西得变量作为参数传递进去

3)java 中没有指针,不支持全局变量和结构体

简述C语言中指针及其作用

一个变量的地址称为该变量的指针

一个专门用来存放另一个变量的指针变量称为指针变量

指针直接指向目标的存储地址,实现直接访问对象存储空间的功能

堆和栈

栈内存:存储的是定义在方法中的都是局部变量,先加载函数才能进行局部标量的定义多以函数先进栈,然后再定义变量,变量有自己的作用域,一旦离开作用域,变量就会被释放。栈内存的更新速度很快,因为局部变量的生命周期都很短

堆内存:存放的是实体(对象),如果一个数据消失,这个实体也没有消失,还可以用,所以堆不会随时释放。堆里的实体虽然不会被释放,但是会被当做垃圾,Java有垃圾回收机制不定时的收取。

Java的特点

1、面向对象

2、分布式:Java包含一个支持HTTPFTP等基于TCP/IP协议的子库。因此Java应用程序可凭借URL打开访问网络上的对象

3、可移植性:最大的工程就是JVM的技术。大多数编译器产生的目标代码只能运行在一种CPU上(如Intelx86系列),但JAVA编译器就不同了。JAVA虚拟机能掩盖不同CPU时间的差别,同体系结构无关的特性使得Java应用程序可以配别Java解释器和运行环境的任何计算机系统上运行。Java编译器产生的目标代码(J-code)是一种针对并不存在的CPU-JAVA虚拟机,而不是某一实际的CPU

4、多线程:多线程功能使得在一个程序里可以同时执行多个小任务

黑盒测试与白盒测试

黑盒测试是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,在完全不考虑程序内部结构和内部特征的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的正常使用,程序是都能适当地接受输入数据而产生正确的输出信息

白盒测试时知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都能按照预定的正常工作。

为什么要考虑白盒测试呢?举个栗子说明,设x=0,y=5, 程序设计z=y/x, 如果只考虑输入输出的黑盒测试,我们看不出程序内部的逻辑错误(分母不能为零)即使我们使用黑盒测试的测试用例覆盖的再全也发现不了这个问题,这个时候就要考虑使用白盒测试了。

posted @ 2020-03-22 19:43  TOWERB  阅读(273)  评论(0编辑  收藏  举报