zoukankan      html  css  js  c++  java
  • 转-面试题

    1:变量的传值与引用。
    2:变量的类型转换和判断类型方法。
    3:php运算符优先级,一般是写出运算符的运算结果。
    4:PHP中函数传参,闭包,判断输出的echo,print是不是函数等。
    5:PHP数组,数组函数,数组遍历,预定义数组(面试必出)。
    6:PHP面向对象,魔术方法,封装、继承、多态。设计模式,包括(单利、工厂、迭代器、装饰、命令、策略)。
    7:正则表达式,每个标号含义,邮箱、网址、标签匹配,正则函数(面试必出)。
    8:PHP异常处理(级别,错误日志,控制错误输出)。
    9:PHP时间函数,日期计算函数。
    10:文件系统,记录日志、目录、文件的遍历、上传、多方法得到文件扩展名、文件引用方式、引用函数区别。(面试必出)。
    11:会话控制,主要说原理。session与cookie在分布式应用中出现问题的解决方案。
    12:PHP模板引擎,常用模板引擎特点,MVC好与不好的地方。
    13:PHP安全处理,过滤函数。
    14:XML的使用。
    15:PHP字符串的处理,包括转义(安全)、编码、截取、定位、与数组间的转换、处理函数等。(面试必出)。
    16:Socket编程,各种协议,head头,curl参数含义。
    17:网络状态码含义,常用(204,304, 404, 504,502)。
    18:Apache配置文件,PHP配置文件,各个含义字段的含义。
    19:网络各种攻击的名词含义(SQL攻击、XSS、CSRF、DDos),防止措施。
    20:url的处理函数,得到url指定的部分。

    1:基础sql语句书写(一般让写关联和子查询语句)
    2:索引的创建,优缺点,最左原则
    3:存储引擎,常用的几个,优缺点,差别,原理(面试必出)
    4:sql注入的处理方法
    5:mysql处理函数(PHP中封装的)
    6:PDO的使用方法,为什么使用
    7:mysql的优化,表拆分等
    8:事务处理,sql语句的处理效率等
    9:数据表字段的类型,同类型间的区别,改如何选取,int(10)与int(11)的区别等。
    10:数据库索引使用的那种数据结构,画出数据结构

    1:常用命令的使用,vim编辑器的使用。
    2:进程,cpu等信息的查看命令。
    3:文件内查看命令(主要涉及统计信息)。
    4:Shell的使用,命令操作。
    1:Redis的应用场景,结合微博业务说出他的具体应用。
    2:Redis与MC支持数据的不同点,两者都支持哪些数据结构的存储,写越多越好。
    3:Redis持久化存储的原理,与Mysql的应用区别。怎样保持持久化数据与内存数据同步的关系(Redis同步机制)
    4:Redis与MC在并发状态下的性能比较。
    5:MC的内存管理机制,当一个数据需要存储的时候怎样分配内存空间
    6:Redis的内存管理机制,与MC有哪些不同点。
    1:PHP7中的新特性与废弃的特性
    2:为什么要使用PHP7,PHP7快在哪里
    1:git的使用命令,例如:写出版本回退命令。
    2:git与svn的区别。
    3:如何进行多分支开发,包括多人开发协同,分段测试,上线。

    php部分我是按照面试常问的问题总结的,下面的问题在面试中出场率很高。问题比较基础

    1、HTTP Keep-Alive的作用

    作用:Keep-Alive:使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。Web服务器,基本上都支持HTTP Keep-Alive。

    缺点:对于提供静态内容的网站来说,这个功能通常很有用。但是,对于负担较重的网站来说,虽然为客户保留打开的连 接有一定的好处,但它同样影响了性能,因为在处理暂停期间,本来可以释放的资源仍旧被占用。当Web服务器和应用服务器在同一台机器上运行时,Keep- Alive功能对资源利用的影响尤其突出。

    解决:Keep-Alive: timeout=5, max=100
    timeout:过期时间5秒(对应httpd.conf里的参数是:KeepAliveTimeout),max是最多一百次请求,强制断掉连接。就是在timeout时间内又有新的连接过来,同时max会自动减1,直到为0,强制断掉。

    数组相关----------|

    1、php数组函数常见的那些? (array_merge、in_array的作用)
    2、PHP中以array_开头的数组函数有哪些,并说出使用方法(至少6个)

    array_values($arr); //获得数组的值
    array_keys($arr); //获得数组的键名
    array_flip($arr); //数组中的值与键名互换(如果有重复前面的会被后面的覆盖)
    array_search('PHP',$arr); //检索给定的值,加true则是严格类型检查
    array_reverse($arr); //将数组中的元素翻转
    in_array("apple", $arr); //在数组中检索apple
    array_key_exists("apple", $arr); // 检索给定的键名是否存在数组中
    array_count_values($arr); // 统计数组中所有值出现的次数

    1 array_slice($arr, 0, 3);    //将数组中的一段取出,此函数忽略键名(数组的分段)
    2 array_splice($arr, 0, 3,array("black","maroon"));    //将数组中的一段取出,返回的序列从原数组中删除
    3 array_chunk($arr, 3, TRUE);   //将一个数组分割成多个,TRUE为保留原数组的键名(分割多个数组)
    1 array_push($arr, "apple", "pear");    //将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数
    2 array_pop($arr);    // 将数组栈的最后一个元素弹出(出栈)
    3 array_shift($arr);   //数组中第一个元素移出并返回(长度减1,其他元素向前移动一位,数字键名改为从零计数,文字键名不变)
    4 array_unshift($arr,"a",array(1,2));  //在数组的开头插入一个或多个元素
    1 sort($arr);       //由小到大,忽略键名       
    2 rsort($arr);      //由大到小,忽略键名
    3 asort($arr);     //由小到大,保留键名       
    4 arsort($arr);    // 由大到小,保留键名
    5 ksort($arr);     //按照键名正序排序           
    6 krsort($arr);   // 按照键名逆序排序

    array_sum($arr); //对数组内部的所有元素做求和运算(数组元素的求和)
    array_merge($arr1, $arr2); //合并两个或多个(相同字符串键名,后面覆盖前面,相同的数字键名,后面的附加到后面)

    array_diff($arr1, $arr2); //返回差集结果数组 array_diff_assoc($arr1, $arr2, $arr3); //返回差集结果数组,键名也做比较
    array_intersect($arr1, $arr2); //返回交集结果数组 array_intersect_assoc($arr1, $arr2); //返回交集结果数组,键名也做比较

    1 array_unique($arr);   //移除数组中重复的值,新的数组中会保留原始的键名
    2 shuffle($arr);             // 将数组的顺序打乱
    PHP中几个输出函数echo,print(),print_r(),sprintf(),var_dump()的区别

    1:echo:是语句不是函数,没有返回值,可输出多个变量值,不需要圆括号。不能输出数组和对象,只能打印简单类型(如int,string)。

    2:print:是语句不是函数,有返回值 1 ,只能输出一个变量,不需要圆括号。不能输出数组和对象,只能打印简单类型(如int,string)。

    3:print_r:是函数,可以打印复合类型,例如:stirng、int、float、array、object等,输出array时会用结构表示,而且可以通过print_r($str,true)来使print_r不输出而返回print_r处理后的值

    4:printf:是函数,把文字格式化以后输出(参看C语言)

    5:sprintf:是函数,跟printf相似,但不打印,而是返回格式化后的文字(该函数把格式化的字符串写写入一个变量中,而不是输出来),其    他的与printf一样。

    1 $str = "Hello";    
    2 $number = 123; 
    3 $txt = sprintf("%s world. Day number %u",$str,$number);
    4 //输出: Hello world. Day number 123 

    6:var_dump():函数,输出变量的内容、类型或字符串的内容、类型、长度。常用来调试。

    可以通过function_exists('函数名称')进行测试

    1 var_dump(function_exists('print'));  //bool(false)
    2 
    3 var_dump(function_exists('echo'));  //bool(false)
    4 
    5 var_dump(function_exists('print_r')); //bool(true)

    1:
    list($a, $b) = array($b, $a);
    2:
    $a = $a . $b;
    $b = strlen( $b );
    $b = substr( $a, 0, (strlen($a) – $b ) );
    $a = substr( $a, strlen($b) );

    3:(必须用一个两个字符串都都不能出现的字符做为分隔符)
    $a = $b.','.$a ;
    $a = explode(',', $a);
    $b = $a[1];
    $a = $a[0];

    4:这个是当两个数都是数字的时候:
    $a = $a + $b;
    $b = $a – $b;
    $a = $a – $b;

    5:借助数组
    $a = array($a,$b);
    $b = $a[0];
    $a = $a[1];

  • 相关阅读:
    C#中的异常处理
    How to: Create a Windows Communication Foundation Client
    王立平--result += "{";
    Gradle增量学习建筑
    android 当屏幕截图,你如何改变屏幕内容,他们俩bitmap将合并的图像被一起显示
    惊人go语言(image网站开发)
    树莓派的演奏音符3 -- LCD1602显示文章
    Linux解析内核源代码——传输控制块诞生
    Preemption Context Switches 和 Synchronization Context Switches
    folat i = 0.1; 警告
  • 原文地址:https://www.cnblogs.com/hupengyin/p/10951488.html
Copyright © 2011-2022 走看看