外包面试之旅( 三 )

  • 自己的规划是什么?(规划学微服务,分布式等等)
  • 技术方面的优势是什么

  • 外包面试之旅

    文章插图
     
    1. 代码怎么优化,重构(单一职责,共用等等)
    2. 自己的网站是怎么进行性能优化的?(加 cdn,加 redis)
    3. 你有什么想问我的?你们那边用到的技术是什么?面试官:技术桟是封装框架,没有前端,用拖拉组件什么的,微服务是 dubbo,数据库是 oracle,侧重点是业务,技术次要 。
    最后面试官说:有四轮面试,这边面试完跟总监商量一下(剩下3轮都不是技术面)
    五、平安银行(外包,面试了40分钟,因为有事,最后中断了)
    1. spirngboot 启动原理(内嵌 Tomcat....)
    2. 启动的注解(springbootApplication)
    3. springboot 核心配置
    4. 配置文件的方式(yml, properties)
    5. springmvc 的工作流程
    6. springmvc 的组件
    7. @RequestMapping 的作用(拦截 url)
    8. spring 常用的模块,核心
    9. 说一说 ioc 和 aop
    10. spring 常用的注入方式
    1. spring 的 bean 有没有了解
    2. spring 事务的实现
    3. spring 的隔离
    4. 数据库的隔离级别(读未提交,读已提交,可重复读,串行化)
    5. 隔离级别的影响(脏读,不可重复读,幻读)
    6. 原子性,持久性(不可分割,保存到数据库)
    7. char 和 varchar 的区别(字节大小,''和"")面试官继续问还有没有 。。。
    8. left join 和 right join 的区别
    9. sql 你是怎么调优的
    10. sql 执行计划(explain)
    1. sql 的行锁和表锁,优势(锁一行和锁整个表)
    2. 乐观锁,悲观锁(版本号,时间戳)
    3. mysql 的引擎,区别(innodb 支持外键,行锁,支持奔溃恢复,myisam 支持全文索引)
    4. select count(*) from table,数据是怎么执行的,会造成全表扫描吗(innodb,不支持全文索引,所以在innodb会造成全表扫描)
    5. float 和 double 内存占多少字节
    6. 在自增表,有6条数据,删了两条数据,再增加一条数据,这条数据的id是多少(innodb是7,myisam是5,结果说反了)
    7. redis使用场景,和 memcache 的区别
    8. redis 的持久化(rdb 和 aof,全量,增量)
    9. 了解 redis 分布式,有多少个节点,以及一些命令
    10. nginx应用场景(前后端分离,负载均衡)
    1. 负载均衡的策略(轮询,权重等等)
    2. 前后端是怎么交互的
    3. 正向代理和反向代理
    4. swagger 有了解吗(接口文档)
    5. == 和 equals 的区别
    6. 堆栈有了解吗
    7. stringbuilder 和 stringbuffer 的区别(线程安全,效率)
    8. io 流(reader和writer,inputstream和outputstream)
    9. fileinputstream 和 bufferinputstream 的区别
    10. 集合(list,set,map)
    11. 线程安全的集合有哪些(vector,copyonwritearraylist,hashtable, concurrenthashmap)
    12. hashmap的实现过程(1.7头插,1.8尾插)
    13. hashset 和 linkedhashset(底层hashmap,有序,底层 linkedhashmap,无序)
    14. 深拷贝,浅拷贝
    问的时间差不多40分钟了,因为还要工作,就打断面试了,结果晚上就来了第二轮面试
     
    平安银行第二轮面试(面试了26分钟)
    1. mysql 查询,有很多关联的表,怎么优化(表加字段,适当冗余,少关联表,不要用*,in,null,or, %等等)
    2. 索引失效的情况(in,null,or, %等等)
    3. 常用的集合类(list,set,map及实现类)
    4. 线程安全的容器有哪些(vector,copyonwritearraylist,hashtable,concurrenthashmap)
    5. concurrenthashmap 是怎么保证线程安全的(1.7用分段锁,16个都上锁,1.8用cas+syn)
    6. hashmap 的数据结构(1.7数组+链表,多线程会形成一个环,cpu会飙升100%,1.8数组+链表+红黑树)
    7. 什么情况下会转成红黑树(key,hash,数组大于64,链表大于8,转成红黑树)
    8. 重写了 equals,还需要重写 hashcode 方法吗(因为根据 key,hash 计算出来有可能会冲突,所以要重写hashcode)
    9. 链表是双向链表吗
    10. redis的数据结构(string,set,sort set,list,hash,bitmap等等)
    1. redis 分布式锁
    2. b+ 树了解吗(mysql索引)
    3. 缓存击穿(缓存失效,在缓存找不到,在数据库有数据)
    4. 解决办法(设置缓存失效时间随机,错开时间,或者给个标记)(其实是设置热点数据永远不过期或者加互斥锁等等)
    5. threadlocal有了解吗(发音没听清,听成什么logo了,听了三遍没听出来,后面才反应他要说什么)


      推荐阅读