2020-03-14 极米科技一面

  • 自我介绍一下

  • 你在公司实习那么久,主要做些什么啊?

    在公司的EMS小组实习,整个项目是一个权限管理系统,因为微服务架构,所以我负责其中文件上传下载功能的实现还有协助测试人员完成测试。(这次倒是流利了)

  • 实习六个月,不会只做这么一个功能吧?

    (还真是)刚开始的两个月培训,对EMS的流程有个初步了解,因为是实习生,所以没有分配太复杂的工作。

  • 那你刚才提到是个权限管理系统,跟你的文件上传下载功能有什么联系呢?

    上层的权限管理由公司的老员工们负责,他们验证权限后再分发到我们这里

  • 那你们的Spring Cloud用到什么框架呢?

    (这个答的太差)

    RPC……???%&¥#¥(我们公司用的应该是Netfix)

    • Spring Cloud是一系列框架的集合,包括Eureka、Feign、Zuul、Hystrix
  • Spring Cloud怎么调用你的服务呢?

    Ribben???(Eureka!!!!太紧张了)

  • 嗯…………你刚才一直在说微服务,微服务和Spring Cloud有什么联系吗?

    微服务是Spring Cloud的子功能????(Spring Cloud是微服务的具体架构!!!!Spring Cloud基于Spring Boot提供了一套微服务解决方案)

  • 那Spring Boot和Spring MVC直接有什么关系吗?

    …………

    • Spring boot只是一个工具,Spring MVC是一个框架,是实际运行的代码
  • 那Spring Boot和Spring又有啥联系吗?

    …………

    • Spring Boot是Spring框架的扩展,消除了Spring需要的XML配置
  • Spring Boot中的@Enablexxxxx怎么运作的?

    ……配置??在root set里面查找它……

    • 自动配置,通过@Import注解引入相关配置类,然后在配置类将所需的bean注册到Spring容器中和实现组件相关处理逻辑中
  • OK,你的其他两个项目需要聊一下吗?(感觉到失望)

    ……一个是大二的时候工作室的练手项目,一个是大三的时候老师牵头的一个甲方需求

  • 那vue你有什么了解吗?

    vue是前端同学负责的,我没有实际用过,只是有一定的了解

  • 谈谈你的了解(给自己挖坑……)

    vue比JQuery更加动态,同时它支持很多组件可以直接调用,很方便,就跟Python一样。

    • 轻量级框架(只注视图层),简单易学(国人开发),双向数据绑定,视图数据结构分离,虚拟DOM,运行速度更快,适合小型项目
  • 你们是怎么解决预约发号的?

    加锁%¥&@*#(没答好)

  • 你是怎么使用Redis的,主要用来干嘛?

    用来做缓存

  • 还有其他用途吗?

    日志管理、权限验证啥的…………

    • 热点数据缓存、限时业务、计数器、排行榜、分布式锁、延时操作、模糊搜索、排重服务、消息队列
  • 行吧,那就聊聊基础吧?MySQL的事务隔离级别,分别解决了什么问题?

    (这个问题很简单)

  • 默认的存储引擎呢?

    (白给问题)

  • 乐观锁悲观锁的概念呢?

    (继续白给)

  • 如果我要给数据库里面的记录加锁,分别用乐观锁和悲观锁,应该怎么实现呢?

    (难顶,没答好)乐观锁用事务,悲观锁就用Lock关键字加锁……

    • 悲观锁实现:……for update
    • 乐观锁实现:数据库不提供,需要自己实现,比如添加版本号
  • 加锁一般是加的什么锁?

    行级锁

    • 根据主键查询时并查到数据,主键字段行级锁

    • 根据非主键查询(含索引),非主键字段行锁,如果索引是enum字段,则是表锁

    • 根据非主键查询(不含索引),非主键字段表锁

  • B树和B+树有什么区别?索引用的什么?

    (白给)

  • 加索引的SQL语句?

    (答错了)

    • alter table xxx add index xxxx(‘xxxx’);
  • 除了MySQL你还知道哪些数据库?

    MongoDB、Redis、MemercachedDB、Oracle

    • Oracle、MySQL/MariaDB、SQL Server、PostgrcSQL
    • InfluxDB、RRDtool
    • Redis、Memcached
    • MongoDB、Amazon
    • Neo4j
    • Elasticsearch
    • Database
    • HBase
  • http和https的区别?

    https更加安全,添加了SSL协议

    • 明文和加密传输
    • 免费和收费
    • 端口不同,80和443
    • 无状态和身份认证
  • Https的加密算法是什么?

    对称加密?

    • 在证书的数字签名中使用了哈希算法和非对称加密算法(RSA)
    • 在加密通信过程中使用了对称加密算法(AES)
    • 防止传输的数据被篡改和重放使用了MAC(消息认证码)
  • Http的常见请求方法有哪些?

    get、post、put、delete

    • get、head、post、put、delete、connect、options、trace
  • 线程池怎么处理一个新事务?

    有空闲的线程就直接分配,没有就阻塞等待,一直等待不到就报错

    • 当任务数 小于等于 核心线程数时, 启动任务数 个线程
    • 当任务数 大于等于 核心线程数 但小于 工作队列大小 + 核心线程数时, 启动全部核心线程
    • 当任务数 大于 核心线程数 + 工作队列数 , 但任务数 - 队列数 小于 线程池最大容量 ,启动最大容量线程
    • 当任务数 - 队列数 大于 最大容量时, 启动最大容量线程, 其余的执行响应的拒绝策略。
  • ThreadLocal有什么了解吗?

    …………不了解

    • 本地线程副本变量工具类
    • 用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰
    • 使用于各个线程依赖不同的变量值完成操作的场景,多线程
    • 解决Hash冲突用线性探测
  • CAS是乐观锁还是悲观锁?

    悲观锁(乐观锁啊!!!!!被diss了)

  • 设计模式有什么了解吗?

    单例、代理、工厂、抽象

  • 怎么写一个单例?

    不熟悉……(被diss了)

你可能感兴趣的:(我的面试之路)