凉经—快手java开发实习生

面试形式:微信视频面试
一面

  1. 简单自我介绍(包括项目)
  2. 问了下我实验室情况,由于面试官是北邮的(通信很强),简单问了下我文章的事情
  3. Spring Aop的实现原理?(回答是使用了代理模式)你还知道哪些框架使用了代理模式?
  4. 静态代理和动态代理的区别?
  5. 看你项目里面使用了httpclient,那么httpclient是怎么配置的呢?
  6. Tomcat IO优化?(不会。。。)
  7. http1.0和http2.0的区别?(我回到是1.0里面的长连接一次连接中的多个请求串行执行,2.0里面可以并发执行),然后面试官问我串行执行和并发执行是什么意思?(解释了下,他说我没理解这两个的区别,顺便举了个栗子,说要是我先打开一个网页,再打开一个,岂不是不行?其实我没听明白,也不确定前一个网页要是没刷出来,后面那个到底能不能刷出来)
  8. 实际场景题:一个签到系统,签到有奖,连续签到的话奖励会递增,怎么实现连续签到判断?(我说的是redis打时间戳来实现,用户id作为key值,时间戳为value,其中value里面是一个list集合,关键在于怎么判断是连续一天还是间隔了一天,可以将上一个时间戳计算还有多久一天结束,记为t0,接着新添加的时间算出间隔时间,记为T,将T-t0,与24进行比较即可)
  9. 当有很多用户同时进行签到,那么会有大量数据在redis数据库里面,该怎么缓解这种压力?(我开始回答是利用redis内存淘汰机制来处理缓存,使用 LRU算法,面试官说问的不是这个意思,然后我回答了持久化到硬盘里面)
  10. redis持久化的方式有哪些?
  11. struts用的是什么?(struts2)那么考虑过登陆系统里面的action是否会发生线程安全问题么?(会发生线程安全问题,没考虑过。。。)

基本就记得这些了,然后马上约了二面...

二面

  1. 简单自我介绍下
  2. java里面的对象是值传递还是址传地?
  3. hashMap是线程安全的么?什么时候会发生线程安全问题?哪些又是线程安全的呢?(我回答了ConcurrentHashMap)那么ConcurrentHashMap中两个线程定位到了同一个位置的时候,一个进行查询,一个进行插入,二者是同步还是异步执行的?
  • Map a = new HashMap();
  • a.put(1, 1);
  •  a.put(2, 2);
  •   
  •   void method(map a){
  •     a = new HashMap();
  •     a.put(3, 3);
  •   }
  •   
  •   最后a里面有哪些数据?

    4.在一张表里面查找年龄最小的一行数据,用SQL写?(不会。。。挂点一)后面补问了一个关键字,应该是用于寻找最小的, 

      我回答不会(挂点一plus)

          数据表

          id        name        age        group

          1            张三        24        1

          2            李四        25        1

          3            王五        21        2

          4            赵六        18        2

    5.redis里面实现排行榜功能?sorted set底层是怎么实现的?(不会,挂点二)

    6.utf-8和unicode的区别?字符和字节的区别?(不会,挂点二。。。这个真不应该直接说不会,很让人失望)

    7.算法题:求一个满二叉树的镜像(先翻转一个节点的左右子树,再进行递归即可)

    8.你有什么想要问我的么?

 

第二天,通知了,很遗憾...

PS:其实也不遗憾,菜是原罪...

你可能感兴趣的:(凉经—快手java开发实习生)