• 面试


    最近打算换工作,面试的时候遇到一些好的题目,来分享下

    试题

    1. linux下执行“ls -l”看到的某文件属性为“drwxr-xr-x”,下面的字母对应的

    (1)2)(3)(4)(5)什么意思,填在字母对应的横线上。(6分)

    d

    r

    w

    x

    r

    -

    x

    r

    -

    x

    1

    2

    3

     

     

    4

     

     

     

    5

     

    (1)文件类型:目录文件(2)所有者可读(3) 所有者可写(4)所有者所在组其他用户无写权限

    5)其他组用户有可执行权限

     

    1. 文件test.log中每行的格式为:“姓名,职级,绩效考核等级”(等级为S A B C D)。使用awk(其他语言也可)快速统计每个等级的员工人数。(6分)

     

    #!/bin/bash

    awk 'BEGIN{Na=0;Nb=0;Nc=0;Nd=0;Ns=0;} {if($3=="A") Na++; if($3=="B") Nb++; if($3=="C") Nc++;  if($3=="D") Nd++;   if($3=="S") Ns++; }  END{print "A:"""Na; print "B:"""Nb; print "C:"""Nc;

    print "D:"""Nd;  print "S:"""Ns;}'  test.log

     

    1. 使用shell命令完成如下任务:从当前目录(及其所有子目录)下的所有扩展名为“.log”的文件中,过滤出所有包含“error”字符串的行,并对结果进行自然排序,然后输出到当前登录用户主目录下的error.log文件中。(15分)

     

     

     

     

     

     

     

    1. 以下函数的功能及返回类型。(10分)

    函数名

    功能

    返回类型

    array_map

    将回调函数作用到给定数组的单元上

    数组

    krsort

    对关联数组按照键名进行降序排序。

    布尔类型

    array_merge

    用于把一个或多个数组合并为一个数组

    合并的数组

    array_filter

    用回调函数过滤数组中的元素

    过滤的数组

    filter_var

    通过指定的过滤器过滤一个变量

    成功的话,返回被过滤的数组,失败则返回false

    shuffle

    把数组中的元素按随机顺序重新排列

    布尔类型

     

    1. 请实现一个完整的函数,传入两个参数字符串$a$b,删除$a中出现了的$b的所有字符,如 $a =‘欢迎您来到鲁大师面试。’,$b=‘祝您面试顺利。’,则返回值为‘欢迎来到鲁大师’。(20分)

     

    答:function del_sub_str($a,$b){

         $a_strlen=iconv_strlen($a,”UTF-8”);

         $b_strlen=iconv_strlen($b,”UTF-8”);

         $a_array=array();

         $b_array=array();

         for($i=0;$i<$a_strlen;$i++){

            $a_array[]=iconv_substr($a,$i,1,”UTF-8”);   

    }

          for($i=0;$i<$b_strlen;$i++){

            $b_array[]=iconv_substr($b,$i,1,”UTF-8”);

    }

    $diff=array_diff($a_array,$b_array);

    //将数组转化成字符串

    echo implode(‘’,$diff);

    }

     

    1. 列举几个php7的新特性?(5分)

    答:PHP常量数组、PHP匿名类、use语句

     

    1. Mysql常用数据类型和sql优化(15分)

       常用数据类型:char  varchar  int  tinyint  smallint  float  double

    datetime  timestamp

     

    a)varchar char的区别 (2分)

    答:char是一种固定长度的类型,varchar则是一种可变长度的类型

     

    b)datetime timestamp的区别(2分)

     

    答:

    1) datetime 1000-01-01 00:00:00” 到“9999-12-31 23:59:598字节

    timestamp 19700101000000 2037 年的某个时刻 4字节

    datetime的日期范围是1001-9999timestamp的时间范围是1970-2038年。

    2) Datetime存储时间与时区无关,timestamp存储时间与时区有关,显示的值也依赖于时区。在mysql服务器,操作系统以及客户端连接都有时区的设置。

     

    c)“int(10)”中的数字10是什么含义?(2分)

     

    答:最大指示宽度是10

     

    d)使用explain查看sql分析时,你对结果最关注的列及这些列常用值的含义。

    9分)

    答:type本次查询表连接类型,从这里可以看到本次查询大概的效率

        

    key最终选择的索引,如果没有索引的话,本次查询效率通常很差

     

    key_len 本次查询用于结果过滤的索引实际长度

     

    rows预计需要扫描的记录数,预计需要扫描的记录数越小越好

     

    Extra额外附加信息,主要确认是否出现Using filesortUsing temporary这两种情况

     

    1. 列举常见的安全问题类型(如sql注入等等),越多越好。并举实际场景说明以及如何处理。(如果某场景文字过多,只写出安全问题的类型,场景和处理方法稍后口述即可)(10分)

     

    答: 跨网站请求伪造攻击(CSRF

         Session会话劫持   URL攻击

     

    1. 以下有三个问题:

    a)http请求结果为500是什么意思?通过什么方法查看500的原因?(4分)

    答:500是服务器内部错误。遇上错误首先想到的肯定是先看服务器的进程还在不在,然后查看日志,从日志里面找原因

    1.数据库异常

    2.域名异常

    3./etc/hosts没有配置解析

    4.logoutURL配置问题,网站的退出登录时,页面直接报500 5.memcached异常,页面登录,报500

     

    b)用户访问www.ludashi.com首页,当使用不同客户端(如手机和PC)访问该URL时,呈现的页面结果却不相同,如何实现?(3分)

    答:通过$_SERVER[‘HTTP_USER_AGENT’]判断浏览器类型,然后include不同的模板代码。

     

    c)如何防止站内图片被盗链?(3分)

     

    答:http标准协议中有专门的字段记录referer

    1)它可以追溯到请求时从哪个哪个网站链接过来的

    2)对于资源文件,可以追踪到包含显示他的网页地址是什么

     

    因此所有防盗链方法都是基于这个Referer字段,用得比较多的方法有以下两种:

    第一种:是使用apache文件FileMatch限制,在httpd.conf中增加以下语句或者将其存成一个.htaccess文件,并放到网站的根目录(www/html目录)

    SetEnvIfNoCase  Referer  “^http://yahoo.com/”  local_ref=1

     

    Order Allow,Deny

    Allow from env=local_ref

    Allow from 127.0.0.1

    这种很方便禁止非允许访问URL引用各种资源文件

    第二种:使用rewrite,需要增加apachemode_rewrite,支持.htaccess文件目录权限限制,在虚拟主机根目录增加.htaccess文件,描述重定向,把非本地地址refer的图片文件都从定向到警告图片或者警告网页上。

     

       

    1. 多域名情况下,如何实现用户在某域名下登陆后,其他域名也同时登陆,退出后其他域名也同时退出。

    答:多域名同步登录,单点登录SSO

     

  • 相关阅读:
    Mvaen系列第5篇:私服详解(本文内容来自 路人甲java)
    springmvc和springboot做分页查询
    maven详解4:仓库详解
    Maven系列3:详解maven解决依赖问题(该系列从 路人甲java 学习)
    maven学习2:安装、配置、mvn运行(本系列从 路人甲java 学习)
    maven学习系列1:maven入门
    日期格式转换
    springmvc、springboot配置静态资源
    反射
    java中运行python脚本
  • 原文地址:https://www.cnblogs.com/hld123/p/9515738.html
Copyright © 2020-2023  润新知