2020.1.4 面试题目

半城伤御伤魂 提交于 2020-01-07 08:38:23

1、UDP和TCP有什么区别

答:1)连接方面区别:

             TCP面向连接(如打电话要先拨号建立连接)

             UDP是无连接的,即发送数据之前不需要建立连接

        2)安全方面的区别:

             TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达

     UDP尽最大努力交付,即不保证可靠交付

   3)传输效率的区别:

             TCP传输效率相对较低

             UDP传输效率高,适用于对高速传输和实时性有较高的通信或广播通信

        4)连接对象数量的区别

             TCP连接只能是点到点,一对一的

     UDP支持一对一,一对多,多对一和多对多的交互通信

 

2、MySQL、MySQLi和PDO的区别

答: 1)mysql扩展提供了一个面向过程的接口;并且是针对Mysql4.1.3或更早版本设计的,因此这个扩展虽然可以与mysql4.1.3数据库服务端进行交互,但是不支持后期版本的mysql服务端的某些特性

        2)mysqli扩展,我们有时称之为mysql增强扩展,可以用于使用mysql4.1.3或更新版本中新的高级特性;mysqli扩展有一系列的优势,相对于mysql扩展的提升主要有:面向对象接口、prepared语句支持、多语句执行支持、事务支持、增强的调试能力、嵌入式服务支持

   3)PHP数据对象,是PHP应用中的一个数据库抽象层规范,PDO提供了一个统一的API接口可以使得你的PHP应用不去关心具体要连接的数据库服务器系统类型,也就是说,如果你使用PDO的API,可以在任何需要的时候无缝切换数据库服务器。

  PDO是PHP5.1之后才支持的,他为访问数据库采用了一致性的接口,在链接Mysql上几乎没有区别,PDO的性能损失可以忽略不计,同时具有mysql扩展库所不具备的优点

  1:PDO真正的以底层实现的统一接口数据操作接口

  2:PDO支持更高级的DB特性操作,如:存储过程的调度等,mysql原生库是不支持的

  3:PDO是PHP官方的pecl库,兼容性稳定性必然要高于mysql Extension,可以直接使用pecl upgrade pdo命令升级

 

3、MVC、面向对象、面向切面的理解

答: MVC:模型-》视图-》控制器,是常见的软件设计架构,用一种业务逻辑、数据、界面显示分离的方式组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制页面及用户交互的同事,不需要重新编写业务逻辑。

  面向对象:简称OOP,三大特性,封装、继承、多态

  封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性

  继承:提高代码复用性,继承是多态的前提

  多态:父类或接口定义的引用变量可以指向子类或具体实现类的实力对象,提高了程序的扩展性

  面向切面:是一种针对业务处理过程中的切面进行提取,它面对的是处理过程中的某个步骤或阶段,以达到在逻辑过程中的各部分之间低耦合性的代码隔离效果

 

4、列出常见数组函数,各自有何作用?

答: array_flip() :交换数组中的键和值

        array_diff() :返回两个数组的差集数组

        array_diff_key():比较键名,并返回两个数组的差集数组

   array_column():返回输入数组中某个单一列的值

   array_merge():把一个或多个数组合并为一个数组

   array_pop():将数组最后一个单元弹出(出栈)

        array_push():将一个或多个单元压入数组的末尾(入栈)

        array_rand():从数组中随机选出一个或多个元素,并返回键值

        array_unique():删除数组中重复的值

   in_array():检查数组中是否存在指定的值

        array_values():返回数组中所有的值,不包括键值名

        array_key_exists():检查给定的键名或索引是否存在于数组中

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!