面试总结
记录一些本人在面试中遇到的觉得有些掌握不好的面试题,下面的答案都是本人回答的,如果哪里不对的话,希望各位能够指出.
1.Git fetch和git pull的区别
Git fetch相当于从远程获取最新版本到背地,但是不会自动合并.
Git pull相当于从远程获取更新版本并合并到本地.
2.session的工作原理
Session是在客户端初次访问的时候由服务器端创建,并将其存储在客户端,如果浏览器禁止掉cookie的话,那么就不能保存session信息,这时可以考虑将session存储在url里或者数据库内,一般都是存储在redis或者是memcache内.
3.xss攻击是什么?怎么预防.
XSS又叫CSS英文缩写为CrossSite Script,中文意思为跨站脚本攻击,具体内容指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的.
预防:1.输入检测(常见的有base64编码,十六进制编码,script关键字等.),2.输出编码,3.cookie防盗(不在cookie里面存放重要的信息).
4.require和include的区别
include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码。
require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。
Include在用到时加载,require在初始的时候就加载.
在实际的应用场景中,如果遇到必须要引用某个文件,这时我们就需要使用require.如果遇到有他没他一样的文件,这个时候可以使用include.
5.数据库里面int类型后面的数字代表什么
这个数字代表补位.
6.假如一个数组里面的元素是0-49随机分布的,并且缺少一个元素.怎么样快速的查找到这个元素.
最佳答案就是:用另一个(0-49)的数组与其相加.这样可以根据差值快速找到缺少的那个值.
7.html,css,js,php,mysql的执行顺序是什么?
执行顺序为:PHP => MySQL => HTML => CSS 和 JS,当用户访问一个网站的时候,服务器会调用php解析器来解析php代码,然后php代码会查询数据库.最好将页面上的东西组织好发送给浏览器,然后浏览器再根据html来调用css和js.
8.写出你最熟悉的一种排序函数
function quickSort($array)
{
$len = count($array);
if($len <= 1) return $array;
$mid = $array[0];
$left = array();
$right = array();
for($i = 1; $i < $len; $i++)
{
if($array[$i] < $mid)
{
$left[] = $array[$i];
}
else
{
$right[] = $array[$i];
}
}
$left = $this->quickSort($left);
$right = $this->quickSort($right);
return array_merge($left,array($mid),$right);
}
9.redis里面常见的数据类型
1.string(字符串)
2.hash(哈希)
3.list(链表)
4.sets(集合)
5.sorted sets(有序集合)