php——10道面试题

1.简述面向对象的三大特性

答:封装 --  继承  --  多态

  封装的目的:为了让类更安全

  继承的概念:子类可以继承父类的一切

  多态的概念:当父类引用指向子类实例,由于子类里面对父类的方法进行了重写,父类引用在调用该方法的时候表现出的不同状态。

2.面向对象的接口和类有什么异同

方法一:

答:接口的方法不能直接调用

  不能直接转化,能继承,再把里面的抽象方法实现了就OK了

  自己的理解是:

  接口不能实例化,他里面可以有抽象方法,属性,只能被继承,在继承的时候要实现里面的抽象方法

  接口看起来和类差不多,但是类的继承是单继承,不能同时继承多个类

  接口就可以多继承,就是一个类或接口,可以继承多个接口

方法二:

答:接口不是类,因为关键字不一样!

  类 为class

  接口 为 interface

  接口里面只定义方法本身,但不定义方法的实现过程

  类的接口实现的载体,即类实现接口中定义的方法,其实就是定义方法的实现过程。

3.一列数的规则如下:1,1,2,3,5,8,13,21,34.....求第30位数是多少,用递归算法实现

4.简述单例模式和工厂模式的实现方法

答:(1) 单例模式就是确保一个类只能有一个实例,并且提供一个全局访问点

  (2) 类的计划生育

  让该类在外界无法造对象

  让外界只能造一个对象,做一个静态方法返回对象

  在类里面通过静态变量控制返回对象只能有一个

  (1—1) 工厂模式就是定义一个创建对象的接口,但有子类决定要实例化的是哪一个,工厂模式把实例化推迟到子类。

  (1—2)还有抽象工厂则是提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

  (2—1)工厂模式是最常用的实例化对象模式,是用工厂方法代替new操作的一种模式。

5.简述你对 MVC 模式的看法

方法一:

答:M:Model   (模型) 实体类,例如蛋糕

  V:View (视图) 局部控制,例如界面

  C:Controller    (控制器)用户接口类, 用户会首先访问这个东西,例如营业员

  上面三者合起来,就相当于构建了一个场景,营业员在经营食品店,客户访问我制作的网页就像去买蛋糕一样!

方法二:

答:MVC本来是存在Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使用同一个程序可以使用不同的表现形式。比如一批一批统计数据你可以分别用柱状图,饼图来表示,C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。

方法三:

答:MVC是一个设计模式,它强制性的使应用程序的输入,处理和输出分开。使用MVC应用程序被分成三个核心部件: 模型,视图,控制器。他们各自处理自己的任务。

7.简述overload 和 override 区别

答:overload是重载,在同一个类中,允许存在同名函数,但他们的参数个数或者参数类型不同即可。

  override是重写,重写就是子类重写了父类的方法。

8.简述 js 的 作用 和 闭包

答:js的函数作用域:

  没有块作用域:即作用不是以{}包围的,其作用域完全由函数来决定,因而 if / for 等语句的花括号不是独立的作用域。

  如前述, js 的在函数中定义的局部变量只对这个函数内部可见,称之为函数作用。

答:全局作用域:

  全局作用域的变量是全局对象的属性,不论在什么函数中都可以直接访问,而不需要通过全局对象,但加上全局对象,可以提供搜索效率

 满足下列条件的变量属于全局作用域:

  在最外层定义的变量

  全局对象的属性

  任何地方隐匿定义的变量。

答:js闭包的用途

  闭包有两个用途,一是方便实现嵌套的回调函数,二是隐藏对象的细节。

  对于前者 NodeJS 的编程风格已经可以说明问题,对二后者,对于函数内部的局部变量外部是不可见的,但可以提供访问函数来访问和修改相应的局部变量,从而实现 OOP 封装的意图。

9.CSS中 margin 和 padding的区别

答:maergin外部边距

  padding内部边距

10.简述你做过的项目,遇到的问题,如何解决的

答:(1)羽恒梦工厂(有关教材视频的网站)

  当时遇到了一个用流媒体播放器的视频地址隐藏问题,

  解决方法是参考的网上资料,备注在博客园了。

  (2)宏承汽车配件有限公司

  使用thinkcmf框架开发此项目时遇到了

时间: 2025-01-11 03:30:30

php——10道面试题的相关文章

每一个JavaScript开发者都应该知道的10道面试题

JavaScript十分特别.而且差点儿在每一个大型应用中起着至关关键的数据.那么,究竟是什么使JavaScript显得与众不同,意义非凡? 这里有一些问题将帮助你了解其真正的奥妙所在:   1.你能说出对JavaScript应用开发人员非常重要的两种编程范式吗? 答: JavaScript是一门多范式语言, 支持命令式/过程式编程以及OOP(面向对象编程)和函数式编程.JavaScript使用原型继承来实现OOP. 面试官非常高兴听到这些: ·原型继承(或:原型,OLOO(对象链接到其它对象)

撩课-Java每天10道面试题第3天

21.final, finally, finalize的区别 1.final修饰符(关键字). 被final修饰的类, 就意味着不能再派生出新的子类, 不能作为父类而被子类继承. 因此一个类不能既被abstract声明, 又被final声明.将变量或方法声明为final, 可以保证他们在使用的过程中不被修改. 被声明为final的变量必须在声明时给出变量的初始值, 而在以后的引用中只能读取. 被final声明的方法也同样只能使用, 即不能方法重写. 22.finally是在异常处理时 提供fin

蓝鸥成都整理Java程序员的10道XML面试题

蓝鸥成都给大家整理了10道常见的XML面试问答题,这些问题大部分在Java面试中会问到.XML并不依赖于其他编程语言,同SQL一样是编程人员所需要的技能之一,因此在任何技术工作面试之前准备一些XML问题是很有意义的. XML面试问答 这些问题并不很难但涵盖了XML技术的一些重要领域,比如DTD,XML Schema,XSLT转换,XPATH检索,XML绑定,XML解析器以及XML的基本知识,比如命名空间,校验,属性,元素等. 问题1:XML是什么? 答:XML即可扩展标记语言(Extensibl

【转载】经典10道c/c++语言经典笔试题(含全部所有参考答案)

经典10道c/c++语言经典笔试题(含全部所有参考答案) 1. 下面这段代码的输出是多少(在32位机上). char *p; char *q[20]; char *m[20][20]; int (*n)[10]; struct MyStruct { char dda; double dda1; int type ; }; MyStruct k; printf("%d %d %d %d %d",sizeof(p),sizeof(q),sizeof(m),sizeof(n),sizeof(

Java程序员的10道XML面试题

如今,面对web开发人员的Java各种面试中,XML面试题在各种编程工作的面试中很常见.XML是一种成熟的技术,经常作为从一个平台到其他平台传输数据的标准.XML面试问题包括用于转换XML文件的XSLT技术,以及XPATH,XQuery等各种XML技术和XML基础知识. 笔者从论坛收集看到常见的XML面试问答题.这些问题大部分在Java面试中会问到,同时在C,C++,Scala或其他语言的编程面试中同样很有用处.作为编程人员所需要的技能之一,在任何技术工作面试之前准备一些XML问题是很有意义的.

10道C++输出易错笔试题收集(敢进来挑战吗?)

下面这些题目都是我之前准备笔试面试过程中积累的,大部分都是知名公司的笔试题,C++基础薄弱的很容易栽进去.我从中选了10道简单的题,C++初学者可以进来挑战下,C++大牛也可以作为娱乐玩下(比如下面的第6题).为了便于大家思考,将题目与答案分开,不过无论题目本身如何,我觉得后面的解析过程更值得学习,因为涉及很多我们学习C++过程中必知必会的小知识点 . 第一部分:题目 如下函数,在32 bit系统foo(2^31-3)的值是:() int foo(int x) { return x&-x; }

10道C++输出易错笔试题收集

下面这些题目都是我之前准备笔试面试过程中积累的,大部分都是知名公司的笔试题,C++基础薄弱的很容易栽进去.我从中选了10道简单的题,C++初学者可以进来挑战下,C++大牛也可以作为娱乐玩下(比如下面的第6题).为了便于大家思考,将题目与答案分开,不过无论题目本身如何,我觉得后面的解析过程更值得学习,因为涉及很多我们学习C++过程中必知必会的小知识点 . 第一部分:题目 如下函数,在32 bit系统foo(2^31-3)的值是:() int foo(int x) { return x&-x; }

这10道springboot常见面试题你需要了解下

? 1.什么是Spring Boot? 多年来,随着新功能的增加,spring变得越来越复杂.只需访问https://spring.io/projects页面,我们就会看到可以在我们的应用程序中使用的所有Spring项目的不同功能. 如果必须启动一个新的Spring项目,我们必须添加构建路径或添加Maven依赖关系,配置应用程序服务器,添加spring配置. 因此,开始一个新的spring项目需要很多努力,因为我们现在必须从头开始做所有事情. Spring Boot是解决这个问题的方法.Spri

(转)Android 50道面试题总结(大家看看吧)

1. 方法重载与覆盖的区别?(Overload与Override的区别)2. String 和StringBuffer的区别3. 字符串“abcde”通过写一个函数不让调用第三方的字符串,实现一个字符串倒序,比如字符串“abcde”变成“edcba”.4. 抽象类与接口的区别(abstract与interface的区别5. 集合的实现类与区别?6. 线程有几种状态,分别是哪些?(调用run()和调用start()的区别7. 线程的实现方式8. sleep() 与wait()的区别9. 线程中wa