zoukankan      html  css  js  c++  java
  • 平常面试问题集锦

    一、为什么选择使用rabbitmq作为消息中间件?

    1. 社区活跃度高,遇到问题容易解决
    2. 支持消息的持久化,Activemq也支持。
    3. 综合技术实现强,可靠性高、灵活的路由、集群、事务、高可用的队列、消息排序、问题追踪、可视化管理工具、插件系统。
    4. 支持高并发,rabbitmq实现语言是天生具备高并发高可用的erlang 语言

            参考:https://blog.csdn.net/water_21215/article/details/80089663

     二、为什么哈希表、完全平衡二叉树、B树、B+树都可以优化查询,为何Mysql独独喜欢B+树?

    •  哈希表的特点:可以快速的精确查询,但是不支持范围查询。
    • 完全平衡二叉树:与B树相比,B树的一个节点可以存储多个元素,从而减少了从磁盘中读取数据的次数,提高了IO效率。
    • B树:与B+树相比,B+树中的非叶子节点会冗余一份在叶子节点中,并且叶子节点之间用指针相连。提高了范围查询的效率

           三种树的结构:

     参考:https://mp.weixin.qq.com/s/Qq2i0cAqkbSXm4fWg2oAaQ

    三、分布式、高并发及多线程的区别?

         三者相辅相成,但是侧重点不同

    • 分布式:是从物理资源的角度去将不同的机器组成一个整体对外服务,技术范围非常广且难度非常大;
    • 高并发:是从业务角度去描述系统的能力,实现高并发的手段可以采用分布式,也可以采用诸如缓存、CDN等,当然也包括多线程;
    • 多线程聚焦于如何使用编程语言将CPU调度能力最大化。
  • 相关阅读:
    E-R图转换成关系模型
    折叠表格
    ICE在Linux下的安装
    yum 安装gcc
    dll和so文件区别与构成
    linux进入图形界面的方法
    ACE vs Boost: Singleton的实现
    ACE与ASIO之间关于Socket编程的比较
    Linux 下编译安装ACE时遇到的问题及解决
    Linux下安装、配置ACE
  • 原文地址:https://www.cnblogs.com/lu51211314/p/10430490.html
Copyright © 2011-2022 走看看