转载于:王召波 博客

PHP对象的克隆与引用有什么区别?

摘要: 是这样的,这个问题确切说应该是这样的:“ PHP对象的赋值和克隆有什么区别 ”,注意不是复制,就是复制,打开窗子说亮话,就是下面两行有什么区别。 $user2 = $user1这种写法,实际上是引用写法,也就是说本质上user1和user2变量指向的都是同一个PHP对象,占用的内存也只有一份,如果你阅读全文

posted @ 2018-11-06 10:32 王召波 阅读(94) | 评论 (0)  编辑

一个数据表如果量很大了,应该有什么措施?

摘要: 我记得这次面试好像也没人问我,但是两年前有人问过我,当时我非常牛逼,就回答了一句:当然是分表啊!然后就没有然后了,今天我来重新审视一下这个问题。 “假如一个表太大了,怎么办?” 既然问这个问题了,那么一定是这个表出问题了才会问,如果不出问题谁吃饱撑的研究这个。 一般情况单表谁过于大了,对查询速度会产阅读全文

posted @ 2018-10-10 14:24 王召波 阅读(320) | 评论 (0)  编辑

一个基于LNMP架构的应用服务器出现卡顿现象,如何排查原因?

摘要: 既然是基于LNMP架构的应用服务器,反正面试官也没说是Web应用还是API应用,我们就索性假装既要为客户端提供API,同时还提供Web页面。 首先第一件事儿就是通过各种方式查看查看各个服务器当前的负载高不高,方式包括登录云服务器控制台,自己用ssh登录到服务器,甚至有条件自己实现了运维监控手段,总之阅读全文

posted @ 2018-10-10 14:23 王召波 阅读(80) | 评论 (0)  编辑

php常见的运行模式

摘要: 这个问题十分经典,我是建议伴随着ubuntu linux下自带的php安装包来讲解比较合适,我截个图,你们感受一下: 以往遇到问题总是有人说自己改了php配置文件,但是就是不生效,八成就是改错配置文件了。 先说最经典的php运行模式,就是apache mod模式,这种模式下,php是作为apache阅读全文

posted @ 2018-10-10 14:22 王召波 阅读(68) | 评论 (0)  编辑

常见的HTTP头部信息都有哪些?

摘要: Accept: 允许哪些媒体类型。 Accept-Charset: 允许哪些字符集。 Accept-Encoding: 允许哪些编码。 Accept-Language: 允许哪些语言。 Cache-Control: 缓存策略,如no-cache,详见官方文档。 Connection: 连接选项,例如是否允许代理。 Host: 请求的主机。 If-None-Match: 判断请求实体的Etag是...阅读全文

posted @ 2018-10-10 14:18 王召波 阅读(224) | 评论 (0)  编辑

API网关一般提供什么功能?

摘要: 网关这种东西,是伴随着微服务风生水起的,微服务可以没有api网关,但是最好有,也并不是绝对的。因为有这个东西是合理的,没有的话,你的微服务会很难受。 首先网关最基础的作用就是对外包括ios、android、webapp、website、h5、微信小程序甚至是第三方提供一个统一服务接入入口。聚合内网众阅读全文

posted @ 2018-10-10 14:16 王召波 阅读(489) | 评论 (0)  编辑

对比swoole和workerman,进程模型有什么不同?

摘要: 这个社会,你要出去找工作说不会点儿workerman或者swoole,真是不好意思说自己是混php圈子的。swoole是使用C语言实现的socket通信框架,workerman则是使用纯php实现的socket框架,二者进程模型上也存在很多的不同。 先说下swoole的进程模型,当然了,我先盗张图贴阅读全文

posted @ 2018-09-18 11:07 王召波 阅读(48) | 评论 (0)  编辑

认识过延迟队列吗?什么场景需要延迟队列?

摘要: 其实这个问题有个面试官问过我,但被我搪塞过去了。其实说到底是那会儿对这个玩意不是特别熟悉,仅仅是听说过。现如今,已经了解了很多了,所以拿出来说一说。 其实这道题属于偏“业务”类型的问题。延迟队列首先是个消息队列,其次是个带延迟功能的消息队列,你这么理解就对了。相对于普通消息队列,延迟队列中的消息除了阅读全文

posted @ 2018-09-18 10:51 王召波 阅读(50) | 评论 (0)  编辑

HTTPS原理大概是怎样的?

摘要: https比http多的,主要就是安全。那么,安全在哪儿了? 假如说,现在只有http协议,让你进行安全的数据传输,你怎么办? 当然是加密了,就是服务器和客户端商议好一个密钥,然后彼此之间传输数据的时候通过这个密钥进行加密和解密。当然了,这个密钥可以是固定的,但是这种情况下要么服务器密钥和加解密算法阅读全文

posted @ 2018-09-18 10:51 王召波 阅读(13) | 评论 (0)  编辑

你在尝试过PHP的多进程编程吗?进程和线程有什么区别?

摘要: 首先,PHP是可以操作多进程的,这个模块叫做pcntl,一般情况下,会被默认安装,可以通过php -m来查询。 PHP也可以操作多线程,需要一个叫做pthread的库来实现,但是PHP的pthread比较奇怪,变量一直不能共享,似乎失去了多线程的意义。 相对来说,在生产环境更具备价值的是php的多进阅读全文

posted @ 2018-09-18 10:50 王召波 阅读(42) | 评论 (0)  编辑

你在平时开发中对MVC有什么理解?Logic或者Service层呢?

摘要: 这玩意实际上没有标准答案了,每个人和每个人理解方式都不一样,但是最终目的都是为解决问题而生的。 一般说来,大家对MVC都是比较熟悉的,至于Logic层可能略微陌生或者见过但没用过。先说MVC是什么意思,老生常谈。 mcv 是模型(model)-视图(view)-控制器(controller)的缩写的阅读全文

posted @ 2018-09-18 10:49 王召波 阅读(218) | 评论 (0)  编辑

结合PHP,说下你了解的服务器进程模型有哪些?

摘要: 由于PHP没有可靠可用的线程,所以只能用进程来顶上去,那么我们常见的服务器模型有哪些呢? 单进程类型。一个主进程,启动后开始一个监听socket。客户端有请求了,就accept,然后处理业务,最后将处理好的数据write给客户端。在主进程处理业务期间,如果有其他客户端来请求,那么就只能很悲催的等待。阅读全文

posted @ 2018-09-10 10:40 王召波 阅读(30) | 评论 (0)  编辑

redis过期策略?以及过期的实现关键点?

摘要: redis的key有个有效期限,这个应该都知道,如果你不知道,说明你基础很差。比如我们有个key,我们只给了他五分钟的有效期,五分钟过后,这个key就算是失效了。那么,在redis中,一个key过期实际上是有三种策略来对待的,并不是一定是过期就立马删除。 下面先说三种比较常见的删除策略,这些策略都是阅读全文

posted @ 2018-09-10 10:40 王召波 阅读(21) | 评论 (0)  编辑

简单解析一下http协议

摘要: 首先说,http协议是基于TCP协议实现的,http协议首先是文本协议(请区别于二进制协议),其次他还是超文本协议。超文本传输协议的意思就是出了传递文本消息,他真也能传递二进制数据,比如图片,甚至其他流媒体信息。 一般说来,tcp的数据是流式的,所以判断数据包就是靠数据边界来识别的。一般说来,识别数阅读全文

posted @ 2018-09-10 10:39 王召波 阅读(48) | 评论 (0)  编辑

同步、异步、阻塞、非阻塞和IO多路复用是怎么回事?

摘要: 要想更好了解socket编程,有一个不可绕过的环节就是IO.在Linux中,一切皆文件.实际上要文件干啥?不就是读写么?所以,这句话本质就是”IO才是王道”.用php的fopen打开文件关闭文件读读写写,这叫本地文件IO.在socket编程中,本质就是网络IO.所以,在开始进一步的socket编程前阅读全文

posted @ 2018-09-06 09:59 王召波 阅读(97) | 评论 (0)  编辑

你是如何理解RPC的?

摘要: RPC英文全程是Remote Procedure Call,中文全称叫做远程过程调用。我们遇到大多数都是本地调用,一种是同一个程序内调用,比如一个函数调用另外一个函数,第二种情况是一个进程调用另外一个进程算是跨进程调用。而RPC则是跨机器跨进程的调用,大概如下图所示: 其实本身也没什么好神奇的,下面阅读全文

posted @ 2018-09-05 13:25 王召波 阅读(109) | 评论 (0)  编辑

REDIS中List是如何实现的?

摘要: redis中的list本质就是链表。链表是由一个一个的节点组成的,这个没什么疑问吧?节点就是node,然后一个node和一个node中间串联起来就是链表。我们先看下node的C语言结构体,如下: struct listNode { // 指向前一个节点的指针 listNode * prev; // 阅读全文

posted @ 2018-09-05 13:24 王召波 阅读(34) | 评论 (0)  编辑

REDIS中字符串是如何实现的?

摘要: 首先在说redis的字符串之前,希望你昨天应该补充过redis字符串的一些操作api了。其实redis的字符串本质上就是利用C语言的字符串来实现的,但是又不能单纯的C语言字符串,而是改造过的加强版本的字符串,官方名称叫做SDS,中文名字叫做简单动态字符串。这个东西数据结构就是一个C语言的结构体,结构阅读全文

posted @ 2018-09-05 13:22 王召波 阅读(26) | 评论 (0)  编辑

REDIS中常见的数据结构有几种?在你看来每种数据结构的应用场景应该是怎样的?

摘要: 今天这个问题比较初级,很多同学应该可能都知道,即便是没吃过猪肉,也应该见过猪跑。废话不多说,步入正题。 小提示,redis是使用C语言实现的。 第一种数据就是字符串,也就是string,这是redis中最基础的数据类型了,最起码redis中所有的key本身都是字符串类型。我举几个常见的场景: 这个东阅读全文

posted @ 2018-09-05 13:21 王召波 阅读(65) | 评论 (0)  编辑

MYSQL的innodb引擎中,聚簇索引和二级索引有什么不同

摘要: 好了,我们先来接触第一个概念,就是二叉搜索树。一坨数字15、10、18、7、12、16、19,让你快速从中找到16,然后我们将它组织为一颗二叉搜索树,如下图所示:然后我们在寻找16的时候,第三次就锁定到16。如果不用这种方法,而且我们从头15数字开始,怕是要循环到第六次才能锁定。当然,运气好从后往前阅读全文

posted @ 2018-09-05 13:19 王召波 阅读(25) | 评论 (0)  编辑

PHP的垃圾回收机制以及大概实现

摘要: 垃圾回收,简称gc。顾名思义,就是废物重利用的意思。再说这个之前先接触一下内存泄露,大概意思就是申请了一块地儿拉了会儿屎,拉完后不收拾,那么那块儿地就算是糟蹋了,地越用越少,最后一地全是屎。说到底一句,用了记得还。一定程度上说,垃圾回收机制就是用来擦屁股的。如果用过C语言,那么申请内存的方式是mal阅读全文

php高级工程师面试题的更多相关文章

  1. 2019阿里天猫团队Java高级工程师面试题之第二面

    2019阿里天猫团队Java高级工程师面试题之第一面 2019阿里天猫团队Java高级工程师面试题之第三面 1.Tomcat的基本架构是什么? https://blog.csdn.net/xlgen1 ...

  2. 2019阿里天猫团队Java高级工程师面试题之第三面

    2019阿里天猫团队Java高级工程师面试题之第一面 2019阿里天猫团队Java高级工程师面试题之第二面 1.说说MySQL的锁并发?加锁的机制是什么? https://www.cnblogs.co ...

  3. 2019阿里天猫团队Java高级工程师面试题之第一面

    2019阿里天猫团队Java高级工程师面试题之第二面 2019阿里天猫团队Java高级工程师面试题之第三面 1.五分钟自我介绍,说说自己的擅长及拿手的技术 自我介绍是为了考察面试者的语言表达和总结概括 ...

  4. .NET高级工程师面试题之SQL篇

    1 题目 这确实是一个真实的面试题,琢磨一下吧!知识不用,就会丢掉,我太依赖各种框架和dll了,已经忘记了最基本的东西.有多久没有写过SQL了,我已经不记得了. 已知表信息如下: Department ...

  5. Java高级工程师面试题总结及参考答案

    一.面试题基础总结 1. JVM结构原理.GC工作机制详解 答:具体参照:JVM结构.GC工作机制详解     ,说到GC,记住两点:1.GC是负责回收所有无任何引用对象的内存空间. 注意:垃圾回收回 ...

  6. Android高级工程师面试题整理

    这些题目是网友去百度.小米.乐视.美团.58.猎豹.360.新浪.搜狐等一线互联网公司面试被问到的题目.熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率. 主要分为以下几部分: (1)java ...

  7. php高级工程师面试题,行不行对照看下自己的实力

    在网上看到一些高级php 的面试题目.. 最近接连面试了几家公司,有些重要问题记录一下,督促自己学习提高,同时希望给朋友们一些帮助.内容很多,一点点完善,一步步学习..有些是面试被问,有些是招聘要求, ...

  8. 博雅PHP高级工程师面试题-自拟

    作者:元如枫   2010年 1.现有学校课程内容系统简单需求描述,试着提供解决方案. 需求简单描述如下: 1)对象及属性 学校: 学校名称,学校所属分类,学校介绍,学校地图标记,学校所属地区,标签, ...

  9. .Net高级工程师面试题

    ----------高级开发工程师岗位职责: 1.完成平台系统新功能模块开发,维护现有产品,独立地设计.开发.实现和测试关键系统: 2.负责公司项目核心代码的编写: 3.根据产品需求进行业务功能的开发 ...

  10. php高级面试题知识点(转载)

    php高级面试题知识点大全 时间:2016-01-26 06:36:22来源:网络 导读:php高级面试题知识点大全,本套面试题内容包括php魔术方法.php单点登录.linux基本命令.前端开发技术 ...

随机推荐

  1. 在离线环境使用nuget包

    原来程序集的引用 一个项目所有功能我们不可能都自己写对吧.这个时代 引用一大片的第三方包  项目源文件几百兆 ,有可能第三方包占了总体积99%.有可能我们自己写的代码不过几十行.想想我们原来的 老时代 ...

  2. VM1038:1 (in promise) MiniProgramError {"errMsg":"navigateTo:fail webview count limit exceed"} Object解决办法

    在跳转的时候,出现这,有的时候回出现,有的时候不会出现: VM1038:1 (in promise) MiniProgramError {"errMsg":"naviga ...

  3. Janus Pro:DeepSeek 开源革新,多模态 AI 的未来

    Janus Pro 是 DeepSeek 开发的一个开源多模态人工智能框架,它通过集成视觉和语言处理能力,提供了高性能的多模态任务处理能力. 在线体验: https://deepseek-janusp ...

  4. Centos7下oracle12c的安装与配置

    一.硬件资源配置(虚拟机) CentOS7@VMware Workstation 10 Pro,分配资源:CPU:2颗,内存:4GB,硬盘空间:20GB+30GB 二.软件环境配置 软件上传 xshe ...

  5. 开源的 DeepSeek-R1「GitHub 热点速览」

    春节假期回来,一睁眼全是王炸级的开源模型 DeepSeek-R1! GitHub 地址→github.com/deepseek-ai/DeepSeek-R1 DeepSeek-R1 开源还不到一个月, ...

  6. 2023LN省选游记

    前言 CSP第一轮都考完了,我才写这个游记.我真懒惰 书接上回 正文 Day -114514 我也没想到我居然能报省选. 报上了.准备去爆零. Day -114513~Day -1 学习暴力算法以及痛 ...

  7. C# OpenMP

    在C#中实现代码优化,并行的方式来提升速度. 参考链接:https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/ho ...

  8. [BZOJ4665] 小w的喜糖 题解

    我们先假设同种糖间存在差异. 设 \(f_{i,j}\) 表示前 \(i\) 种糖至少有 \(j\) 人拿到的糖和原来一样,\(c_i\) 表示拿第 \(i\) 种糖的人的个数,则有: \[f_{i, ...

  9. Type-C协议(CC检测原理)-CC1和CC2接电阻-数字和模拟耳机兼容

    1 简介 USB Type-C其实是USB的一种接口形态,USB的接口形态可以分为USB Type-A.USB Type-B.USB Type-C,USB Type-A和USB Type-B还有两种不 ...

  10. AI 发展下的伦理挑战,应当如何应对?

    一.构建可靠的 AI 隐私保护机制 在当今数字化时代,人工智能的广泛应用给我们的生活带来了诸多便利,但与此同时,个人隐私保护问题也日益凸显.在不牺牲个人隐私的前提下,设计和实施有效的数据保护措施,特别 ...