一、 PHP方面的问题
- 什么是composer?以及composer是干什么用的?工作原理
- PHP如何实现静态化
- 你了解设计模式吗?说下你最常用的设计模式
- 观察者模式是如何实现的?工厂模式是如何实现的?适配器模式是如何实现的?……
- PHP的优化方案
- 说下你了解的session和cookie
- 如何实现不基于session和cookie的用户认证。
- 说下你目前框架所用到的核心概念
- 什么是CSRF攻击,XSS攻击?如何防范
- 你了解RESTful API吗?说说干什么用的。
- 设计的原则
- 如果实现自动加载?不用composer如何实现?PSR-4是什么?
二、 数据库方面
- 你知道nosql吗?你用的nosql都有哪些?
- mysql索引优化
- mysql的优化方案
- mysql的事务
- mysql的读写分离
- 消息队列如何实现
- 查询优化
- msyql的存储引擎,以及各自的区别
- redis和memcache有什么区别
- 索引有哪些,你是如何做索引的?
- 如何分表
三、 服务器方面
- 说下一些你常用的linux命令
- Linux如何搭建LAMP环境
- 你们平常工作的系统环境是在哪里?
- 你了解Docker吗?
- 你说下常用的服务端口号
- 说下都有哪些跨域。
- 事件冒泡
- DOM事件流
- JS是如何实现继承的
- 绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
- 怎么查看当前进程?怎么执行退出?怎么查看当前路径?
- 怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?
- Ls 命令执行什么功能? 可以带哪些参数,有什么区别?
- 目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
- 随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?
- 终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
- 复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需要有提示功能呢?
- 删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?
- Linux 下命令有哪几种可使用的通配符?分别代表什么含义?
- 用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)
- Grep 命令有什么用? 如何忽略大小写? 如何查找不含该串的行?
- Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?
- 怎么使一个命令在后台运行?
- 利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息?
- 哪个命令专门用来查看后台任务?
- 把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?
- 搜索文件用什么命令? 格式是怎么样的?
- 查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令?
- 使用什么命令查看用过的命令列表?
- 使用什么命令查看磁盘使用空间? 空闲空间呢?
- 查找命令的可执行文件是去哪查找的? 怎么对其进行设置及添加
- 当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢?
- 如果一个 linux 新手想要知道当前系统支持的所有命令的列表,他需要怎么做?
五、Redis习题
- 什么是 Redis?
- Redis 的数据类型?
- 使用 Redis 有哪些好处?
- Redis 相比 Memcached 有哪些优势?
- Memcache 与 Redis 的区别都有哪些?
- Redis 是单进程单线程的?
- 一个字符串类型的值能存储最大容量是多少?
- Redis 的持久化机制是什么?各自的优缺点?
- Redis 常见性能问题和解决方案
- redis 过期键的删除策略?
- Redis 的回收策略(淘汰策略)?
- 为什么 edis 需要把所有数据放到内存中?
- Redis 的同步机制了解么?
- Pipeline 有什么好处,为什么要用 pipeline?
- 是否使用过 Redis 集群,集群的原理是什么?
- Redis 集群方案什么情况下会导致整个集群不可用?
- Redis 如何设置密码及验证密码?
- 说说 Redis 哈希槽的概念?
- Redis 集群的主从复制模型是怎样的?
- Redis 集群会有写操作丢失吗?为什么?
- Redis 集群之间是如何复制的?
- Redis 集群最大节点个数是多少?
- Redis 集群如何选择数据库?
六、 算法和其它方面
- 最常用的排序算法
- 做一个微信抢红包的功能
- 如何防止高并发
- 你们用哪种版本控制?如何避免代码冲突
- 在浏览中输入网址后都发生了什么
- 你了解socket吗?
- 如果打开网页的时候白屏10秒才显示出页面,如果进行排查。
- 其它,必问知识
- 说下你在项目中碰到的问题
- 你是如何解决的问题的
- 你未来的规划是什么?
- 你为什么离职
- 你觉得你的领导会如何评价你
- 说下你做得你公司最不错的项目,都用了哪些技术,对你带来了哪些成长
- 说下TCP的三次握手,为什么三次,两次不行吗?为什么挥手又是四次
七、微服务
- 您对微服务有何了解?
- 微服务架构有哪些优势?
- 微服务有哪些特点?
- 设计微服务的最佳实践是什么?
- 微服务架构如何运作?
- 微服务架构的优缺点是什么?
- Docker 的目的是什么?
- 什么是微服务中的反应性扩展?
这些并不是说都需要会,都要知道,只是你需要了解这些。工作中不一定会用到,但是需要你在提某项技术的时候你知道有这项技术。
笔试的时候基本都是些PHP,mysql,linx等的基础,所以基础还是需要看的,比如考察一些函数的用法。HTTP的一些状态码,一些sql语句,一些排序算法。
面试一般会看你的简历来问,所以说对于虚假的东西一问就露馅,所以不要过多的美化简历。面试的时候一般会针对你简历上的某项技术,一直深入问下去,直到问到你答不出,然后转到另外一项技术上面。
一般面试的技术都是以后你要跟着他干的人员,所以多站在对方的场景下想问题,对方肯定是希望有个能帮他分担工作压力的人。
回答不要一问一答,最好能说出你自己的理解,以及它的优缺点。
一些技术方面的问题,要回答那些实用看的见的效果,比如composer可以解决自动加载类,不用你写过多的new,比回答,composer是一个依赖管理工具,composer会帮你安装这些依赖的库文件,要强的多,当然也可以说,以前都是复制粘贴一些代码到自己项目里,然后把代码改为自己需要的,现在使用composer我可以直接引用别人的代码而不需要过多的更改。
技术不需要你全部会,(你也不可能全部会,别人就是要问到你答不出来为止,不然怎么压你工资),但是你要有自己的理解,这东西我没用过,但是我了解过一些,大概是什么什么玩意,它是个啥啥啥技术,大概是为了解决啥啥啥技术。
对于面试的是技术的,不会就不会,没用过就没用过,如果你乱扯,技术一听就能听出来你说的对不对,但是你可以说说你对这个理解,这样就不至于冷场了,蒙对了加分,蒙错了也代表你会思考这个东西,会去想。
读者福利: 一份腾讯T3-2架构师分享的架构师学习思维路线:
一、框架源码解析专题
- thinkphp6.0源码解析
- laravel5.7源码解析
- Symfony4.0源码解析
设计模式
- 设计原则
- 创建型模式
- 原型模式
- 装饰器模式
- 设计模式对比及应用场景
二、性能调优专题
- mysql优化
- redis高级
- PHP程序性能优化
- 算法与数据结果
- Nginx调优实战
Mysql性能调优
- Mysql底层Btree机制讲解
- Mysql 执行计划深入讲解
- Mysql锁机制与事务隔离级别详解
- 慢查询Sql调优实战
- MySQL索引优化详解
- MySQL分库分表
Nginx调优
- Nginx快速掌握
- 熟练掌握Nginx核心配置
- 掌握Nginx负载算法配置
PHP程序性能优化
- PHP内核探索
- 深入对象内存优化
- 类的设计陷进
三、微服务系列专题
- swoft微服务框架
- swoole源码剖析
- API接口平台源码剖析
- Tars分布式RPC框架
- Docker容器
四、分布式框架专题分布式架构原理
- 初始分布式
- 分布式架构设计原则
- 分布式通信协议
分布式缓存
- Redis主从复制讲解
- Redis分布式集群部署
- Redis读写分离实战
- Redis哨兵机制
分布式RPC、消息中间件
- 多协议的RPC框架
- 多协议通信
- Kafka消息处理原理剖析
- Rabbitmq消息分发原理
五、项目实战专题亿级云平台
- 云平台项目架构设计及核心技术点整理介绍
- 基于swoft微服务架构拆分
- 云平台技术解决方案
小编结合以上知识体系整理了一套BAT面试真题+架构技术资料,退可提升软硬实力,进可收获高薪好offer。资料内容涵盖BAT架构技术与面试真题,减少你到处搜索资料的时间,成体系的实战技术知识,让你面试、进阶都更加容易。
PHP进阶学习笔记、面试;文档、视频资源免费获取shimo.im