美文网首页我爱编程
链家-开发商端-面试题

链家-开发商端-面试题

作者: 彩云上飞翔 | 来源:发表于2018-03-21 11:59 被阅读0次

    php

    1. php常用的数组及用法
    array_merge
    数组相加
    array_map
    array_filter
    array_flip
    array_diff
    array_diff_assoc
    
    1. php魔术函数
    __construct()
    __destruct()  
    __call()
    __callStatic()  
    __get() 
    __set()  
    __isset()  
    __unset()  
    __sleep() serialize() 
    __wakeup() unserialize()  
    __toString()
    __clone()
    
    1. php私有成员变量
    class A {
        priveate $m1 = '';
        protected $m2 = '';
    };
    
    class B extends A {
        public function f1()
        {
            echo $m1."\n";
            echo $m2."\n";
        }
    };
    会产生什么样的输出
    
    1. 列举常用的打印函数及区别
    echo
    print
    print_r
    var_export
    var_dump
    printf
    sprintf
    
    1. 实现一个单例模式
    2. 调试代码及日志的方法
    打印输出
    www日志
    业务日志
    php错误日志
    xhprof
    
    1. 捕捉程序错误并记录日志如何实现
    set_error_handle+set_exception_handle
    register_shutdown_function
    error_get_last
    debug_backtrace
    
    1. php引用,写出如下代码的输出,并展示演算过程
    $a = (object)array();
    $b = $a;
    $a->str = 1;
    $b->child = $a;
    $b->child->str = 2;
    echo $b->str."\r\n";
    $b = null;
    echo $a->str."\r\n";
    
    1. 聊聊php如何并发请求url
    multi curl
    swoole AsyncIO
    
    1. 聊聊php如何并发请求mysql
    MYSQLI_ASYNC
    swoole AsyncIO
    
    1. 聊聊php多进程
    system
    exec
    fork最大进程数量调度
    supervisor进程管理
    
    1. 聊聊单点登录
    2. 聊聊登录保持

    shell

    1. 聊聊top命令和输出,怎么看负载的高低
    2. 如何查看centos系统的版本号
    3. 按日期统计访问量,有如下nginx访问日志,日期按照日期分割,newhouse-ka-vip-www-20180101.log,用shell命令计算这个链接的/developer/vanke按照日期分组的访问量

    26/02/2018:19:54:57 vanke.lianjia.com "GET /developer/vanke HTTP/1.1"

    grep /developer/vanke newhouse-ka-vip-www-201801*.log | awk '{ print substr($2,1,10)}' | awk '{a[$1]+=1}END{for (i in a)print i,a[i]}'
    

    算法

    1. 常用的排序算法
    http://www.cnblogs.com/rainblack/p/5808694.html
    冒泡排序(手写)
    选择排序
    插入排序
    快速排序(手写)
    
    1. 常用的查找算法
    http://blog.csdn.net/u012910292/article/details/55057046
    顺序查找
    二分查找(手写)
    
    1. 两个有序数组合并为一个及归并排序实例
    http://www.cnblogs.com/andy-zhou/p/6669728.html
    
    1. 有一个数组,该数组由正负数字组成,找出该数组中连续元素组成的子数组求和最大值。
    https://m.jb51.net/article/48910.htm
    

    mysql

    1. mysql分表之后如何实现自增id
    http://www.cnblogs.com/baiwa/p/5318432.html
    http://blog.csdn.net/u010256841/article/details/56840743
    http://blog.csdn.net/sunwenq2812/article/details/21998355
    
    1. mysql支持的索引种类
    2. mysql联合索引需要注意哪些,在一个拥有一个亿的表,存在字段agent_id唯一值1000万个,存在status唯一值10个,如果建立联合索引,agent_id和status哪个在前,说说为什么
    3. 分库分表有哪些种类及各自的应用场景
    hash水平分表,适合按照用户id分库分表
    垂直分表,适合内容字段和查询字段分开存储
    日期分表,适合单表,叶子节点表,不和其他表发生关系的表
    冷热数据分表,适合后端报表
    
    1. 浅谈mysql的事务和行锁

    2. 在高并发大流量和数据统计中的业务中,数据库的设计原则分别是什么?

    A、满足业务
    B、让核心SQL尽可能一个表里搞定,或是两个表搞定
    C、节省IO,减少IO,一次查询返回的结果不宜过大,如果结果集比较大要分页查询
    D、选择最少最合适的数据类型,条件字段尽量都是数字,不是数字也要转成数字,字符串字段单独拆一个表
    E、索引要适度,索引太多影响数据更新速度
    
    1. 如果一个商品的缓存表(summary_sku)中有1000万条数据,其中POP(非自营)类型的商品大于800万条,由于业务变不需要了,如何清除这部分数据,该表每天还有大量查询,不能影响线上业务
    A、由于删除的数据比保留的多,可以建新表,拷贝数据,旧表改个名字,新表改成旧表的名字
    B、先批量查出要删除数据的主键,用脚本按照主键批量删除
    C、删除时加limit 循环删除直到没有可删除记录为止
    
    1. 有表scores表如下,假设student是唯一的
    student college class course score term exam_time
    张三 计控 1班 高数 56 大一上学期 2016年12月31日
    李四 计控 2班 高数 61 大一上学期 2017年3月10日

    求计控学院一年级上学期有补考的同学(class,student)

    select distinct class,student from (select class,course,student,count(*) as total
    from scores 
    where colleg='计控' term='大一上学期'
    group by course,student having total>1) as tmp
    

    求计控学院一年级上学期高数有补考通过的同学数量按班级排行(class,人数)

    select class,count(*) as total from (select class,student,score,count(*) as total
    from (select * from scores order by exam_time desc) as tmp1
    where colleg='计控' course='高数' term='大一上学期'
    group by student having total>1 and score>=60) as tmp2 group by class order by total desc
    

    求大一上学期没有学生补考的班级

    select distinct college,class
    from scores s
    where s.student not in (select student from (
    (select class,course,student,count(*) as total
    from scores 
    where term='大一上学期'
    group by course,student having total>1) as tmp)
    
    1. 有以下两个表
    uid name
    100 闫红成
    101 宋大卫
    102 陈绿洲

    学生表

    uid name
    100 闫红成
    101 宋大卫
    102 陈绿洲
    uid subject_name score
    100 数学 99
    100 语文 80
    101 数学 98

    score成绩表

    uid subject_name score
    100 数学 99
    100 语文 80
    101 数学 98

    请写个sql列出所有同学的平均分,没有成绩的按0分算,按平均分由高到低排序

    select student.id,student.name,if(score. uid is null,0,avg(score. scores)) as avg_scores 
    from student
    left join score on student.uid=score.uid
    group by student.uid
    order by avg_scores desc
    

    redis

    1. redis常用数据结构
    key
    string(缓存、计数、session)
    hash
    list(队列)
    set(用户权限)
    sorted set(投票、排行榜)
    
    1. redis能做什么
    投票系统,用户登录session,购物车,网页缓存,日志系统,搜索引擎,消息队列
    
    1. 浅谈redis高并发抢购逻辑
    a、一个商品一个队列,如果商品有10个库存,就在队列压10个1,抢购即从队列中取出一个
        文档:http://www.cnblogs.com/phpper/p/7085663.html
    b、watch+事务
        文档:http://www.cnblogs.com/sandea/p/5731006.html
    

    nginx+fpm

    1. nginx为什么高效
    2. cgi、fastcgi、php-cgi、php-fpm剖析
    http://cuishan.win/2017/02/05/cgi-fastcgi-php-cgi-php-fpm/
    
    1. 如何提高ngxin+fpm的并发能力
    2. 怎样理解阻塞非阻塞与同步异步的区别?
    https://www.zhihu.com/question/19732473
    http://www.voidcn.com/article/p-nvskyjwx-bnb.html
    https://www.zhihu.com/question/54959949
    

    开发环境安装及命令

    1. linux安装ngxin、php-fpm、数据库
    编译安装
    yum、apt、brew
    
    1. ngxin 热启动命令
    sudo /usr/local/bin/nginx -s reload
    
    1. php-fpm重启的命令
    sudo /etc/init.d/php-fmp restart
    
    1. php命令
    如何确定PHP CLI安装了哪些扩展
    php -m
    如何确定PHP CLI 的php.ini文件的位置
    php --ini | grep ini
    
    1. php 插件安装
    A、yum brew apt 等安装
    B、pecl 安装
    C、编译安装
    下载插件源码,或者安装包的ext目录下
    phpize
    ./configure --with-php-config=/usr/bin/php-config
    make
    make install
    修改php.ini extension=插件.so
    

    其他

    1. 平时用哪些开发工具
    2. 用过哪些代码管理工具
    3. 什么叫灰度发布
    4. 上一家公司的开发流程
    5. 上家公司项目上线流程是什么,发布代码后发生事故如何处理
    6. 面试者对链家有什么疑问和期待

    相关文章

      网友评论

        本文标题:链家-开发商端-面试题

        本文链接:https://www.haomeiwen.com/subject/wknwqftx.html