zoukankan      html  css  js  c++  java
  • 2019 面试题


    1、GET与POST 请求的区别:

    URL 方面:  

    GET  url 的参数是显示在url上

       POST  url 的参数不是在url  请求body上

       缓存方面:

    GET 请求被浏览器的自动缓存

    POST 不会自动缓存

    退回方面:

       GET 退回可以重新页面

    POST 退回是重新提交

      安全方面:

    GET 参数暴露在url

    POST 参数隐藏

     

    2、MySql 的引擎

    a) 支持事务方面:Innodb 支持事务,Myisam 不支持事务

    b) Innodb 支持行锁,Myisam 支持表锁

    c) 储存文件类型:innodb数据文件不支持跨平台 Myisam数据支持跨平台

    d) 全文类型索引:innodb 不支持 ,myisam支持

    e) 查询效率 :innodb 慢,mysian 快

    3、Redis 数据类型:

    a) String 字符串

    i. 适应场景:常规key-value缓存应用。常规计数: 微博数, 粉丝数。

    b) Hash 字典

    i. 适应场景:缓存

    c) List 列表

    i. 最新消息排行等功能(比如朋友圈的时间线)

    ii. 消息队列 

    d) Set 集合

    i. 共同好友

    ii. 利用唯一性,统计访问网站的所有独立ip

    iii. 好友推荐时,根据tag求交集,大于某个阈值就可以推荐

    e) Sorte Set 有序集合

    i. 排行榜

    ii. 带权重的消息队列

    4、RabbitMQ 特点:

    a) 可靠性:RabbitMQ使用一些机制来保证可靠性,持久化、传输确定及发布确认

    b) 灵活的路由: 在消息进入列队之前,通过交换器来路由消息。对于典型的路由功能,RabbitMQ 已经提供了一些内置的交换器来实现。针对更复杂的路由功能,可以多个交换器绑定在一起,也可以通过插件机制来实现自己的交换器

    c) 扩展性:多个RabbitMQ节点可以组成一个集群,也可以根据实际业务情况动态扩展集群的节点

    d) 高可用性:列队可以在集群中的机器上设置镜像,使得在部分节点出现问题的情况下队仍然可

    e) 多种协议:rabbitMQ除了原生支持AMQP协议,还支持STOMP,MQTT等多种消息中间件协议。

    f) 多语言客户端:RabbitMQ几乎支持所有常用语言,比如Jav a、Python、Ruby、PHP、C#、JavaScript等。

    g) 管理界面:RabbitMQ提供了一个易用的用户界面,使得用户可以监控和管理消息、集群中的节点等。

    h) 插件机制:RabbitMQ提供了许多插件,以实现从多方面进行扩展,当然也可以编写自己的插件。

    5、Laravel 优缺点:

    优点:优雅,框架结构组织清晰(抽象了中间件,任务,服务等模块),提供的artisan开发工具开发效率高,社区活跃完善,并且提供了简化的轻量级框架lumen

    缺点基于组件式的框架,所以比较臃肿

    6、定义一个函数,查找一个N 维数组的中的key为 ‘test’ 的值, 输出格式为数组

    function getValueArr($arr , $searhKey = 'test'){

    $rs = $result = [];
        if ( is_array($arr) ) {
            foreach ( $arr as $key => $val ) {
                if ( count($val) > 1 || is_array($arr[ $key ]) ) {
                    $result = getValueArr($arr[ $key ]);
                    $rs = array_merge($rs , $result);
                } elseif ( $key == $searhKey ) {
                    $rs[] = $arr[ $key ];
                }
            }
        }
        return $rs;
    }

    7、MySql的优化

    a) Sql 语句优化

    i. explain出来的各种item的意义;

    ii. profile的意义以及使用场景

    iii. 慢查询

    b) 索引优化

    8、MySql的“悲观锁”与“乐观锁”

    悲观锁比较适合写入操作比较频繁的场景,如果出现大量的读取操作,每次读取的时候都会进行加锁,这样会增加大量的锁的开销,降低了系统的吞吐量。(一锁二查三更新)

    乐观锁:比较适合读取操作比较频繁的场景,如果出现大量的写入操作,数据发生冲突的可能性就会增大,为了保证数据的一致性,应用层需要不断的重新获取数据,这样会增加大量的查询操作,降低了系统的吞吐量。

    9、innodb引擎的4大特性

    a) 插入缓冲(insert buffer)

    b) 二次写(double write)

    c) 自适应哈希索引(ahi)

    d) 预读(read ahead)

     

    10、数据库事务的四大特性:

    a) 原子性

    b) 一致性

    c) 隔离性

    d) 持久性

     

  • 相关阅读:
    Eclipse常用插件推荐
    Open Source Search Engines in Java
    Java: convert a file to a byte array, then convert byte array to a file.
    常用的Eclipse插件介绍
    一个搜索引擎周边的blog
    java文件读取。(单字节读取和按行读取读取)
    im4java
    csv格式读取通用类
    java以流方式下载文件struts2.x版_心灵的港湾_百度空间
    Jetty/Feature/Jetty Maven Plugin
  • 原文地址:https://www.cnblogs.com/costa92/p/10415549.html
Copyright © 2011-2022 走看看