首页常用模板面试问题如何面试PHP开发工程师?

如何面试PHP开发工程师?

随着互联网公司的迅速发展,他们对人才的需求也越来越大,尤其是技术方面的人才,除了网申和笔试,面试也是考核的一大关卡,分为3-5轮不等,那在面试环节应该如何考察呢?

面试PHP开发工程师的4个注意点:

1、根据大部分阿里巴巴开发工程师面试官的论述,java的多线程和并发安全性及数据库相关这些都非常重要。

2、一面通常是聊一些java基本功,二面就是聊项目,三面谈理想和人生。

3、对于PHP一面问题,通常面试官的提问都有逻辑性,抓住面试官的逻辑主线,求职者就可以大致知道他下面要问什么。

4、求职者需要多阅读和总结开源框架的具体底层实现源码。

一. 常见面试题

java基础

  1. HashMap的实现原理

  2. HashMap是否线程安全,有哪些线程安全的Hash类

  3. volatile关键字的作用

  4. 线程池的常见用法,线程池的参数含义

  5. synchronized与ReentrantLock的区别

  6. jvm内存模型,垃圾回收原理

  7. 类加载过程

  8. AtomicInteger实现原理

  9. NIO原理

  10. java8新特性

java web

  1. Spring AOP和IOC的理解, 实现原理

  2. Spring过滤器和拦截器的区别

  3. Spring boot有哪些优点

数据库

  1. InnerDB存储引擎和MyISAM存储引擎的区别

  2. 索引的实现原理

  3. 联合索引的使用

  4. 索引的建立原则

  5. 数据库事务概念,事务隔离级别及实现原理

  6. 如何查看SQL执行计划

分布式

  1. 分布式锁有哪些实现方式

  2. dubbo服务发现原理

  3. 消息队列的推拉模式区别

  4. kafka实现原理

  5. redis和memcached的区别

  6. redis如何实现主从同步,持久化机制

  7. zookeeper的作用,一致性原理

  8. 如何避免分布式缓存出现缓存击穿

  9. 如何实现分布式事务

设计模式

  1. 单例模式(懒加载方式和饿汉模式)

  2. 策略模式

  3. 工厂模式

网络

  1. 网络7层协议

  2. TCP3次握手和4次挥手

  3. HTTP协议和TCP协议的关系

系统设计

  1. 实现一个全局唯一ID生成器

  2. 实现一个LRU缓存

  3. 实现一个可以支撑百万级别的分钟级定时任务管理系统(到达任务的执行时间后,一分钟以内被执行)

  4. 实现一个短域名服务

  5. 设计一个用于进行省、市、县、街道级联查询的接口

实战经验

  1. 发现线上服务无响应或响应很慢,如何排查

  2. 发现线上机器CPU使用率居高不下,如何排查

  3. 发现频繁full gc,如何排查

  4. gc日志里的信息代表什么含义

算法编程

  1. 给定一个整形数组,要求实现一个方法,用于查找数组中是否存在两个数字,使两个数字之和等于给定目标值(例如给定数组10,2,3,6,1,8,7,给定目标值是9,则需要找出2和7,以及1和8)

  2. 归并排序

  3. 单链表反转

  4. 1亿个整形数字(存储在本地文件中)找出最大的k个数字

  5. 将给定一句话,例如"Hello World"中的每个单词字母反转(变成"olleH dlroW"),使用多线程实现

  6. 找出一个字符串中出现的第一个重复的字符,例如给定"adcdefgabd",则第一个重复出现的字符是a,要求不能使用jdk中的类库

  7. 使用两个栈实现一个队列(给出思路即可)

  8. 打印回环数字

  9. 一个m*n的矩阵,一只蚂蚁从最左上角走到最右下角有多少种不同的走法,规定每一步只能向右一格或向下一格

二. 其他能力考查

面试通常是一次综合素质的考察,专业技能固然重要,但是其他的一些能力面试官也应该关注。例如耐心、学习能力、语言表达能力、逻辑思维能力、全局意识、甚至面试态度。

耐心:可以体现在当遇到一个稍微复杂的问题时,是否可以沉下心来仔细思考,尽全力解决,而不是轻言放弃

学习能力:体现在平时对于业内热门技术的关注以及深入学习,技术书籍阅读等

语言表达能力:可以通过自我介绍以及对项目的介绍体现

逻辑思维能力:反映在对问题分析的思路,或者对复杂问题进行较为全面的分析

全局意识:通常在大公司里一个人只负责模块中的一部分功能开发,是否对整个模块有清晰的认识?对团队中的其他模块是否有了解?

面试态度:一般来说,面试者肯定不会去故意顶撞面试官,但是要注意面试过程中的礼貌,给面试官留下好的印象显然会更好。如果面试者在面试官走过来时,起立致意,并在面试过程中与面试官有一些眼神沟通,个人感觉会让面试官觉得舒服一些


这就是面试官在面试PHP开发工程师的主要面试内容了,当然,考察的轮数由公司内部来制定,考察的形式以提问交流的方式为主进行全面考察。