面试刷题11-28

有赞:

一面:

  1. hashMap原理,put和resize过程
  2. 线程池类型

固定大小线程池,无界线程池, 

  1. concurrentHashMap分段锁原理,用java8实现和java7有什么区别

Java 8 CAS

  1. B-树B+树区别,数据库索引原理,组合索引怎么使用?最左匹配的原理
  1. spring生命周期,几种scope区别,aop实现有哪几种实现,接口***和类***会有什么区别

 


二面:

  1. 项目介绍
  2. 斐波拉契数列非递归实现
  3. 短URL实现


三面:HR+主管
你现在做的事情,为什么要离职?对你性格生活薪资全面了解
 

字节跳动:

一面:

  1. 自我介绍
  2. 做的项目价值,架构设计,给你一个集群你会怎么分布,考虑哪些因素,容灾、负载均衡
  3. 让你来设计咸鱼,你会怎么设计?模型设计
  4. linux常用指令


二面:

  1. 算法在线编程
  2. 项目,主要做了什么,项目中碰到的问题有哪些,都市怎么解决?你觉得那个项目是最有挑战的
  3. java多线程,线程池选型,为什么要选这个,底层实现原理


三面:

  1. 你最熟悉的项目,做了什么,为什么这么做,项目价值
  2. 推广广告,你会怎么设计?
  3. java基础,JVM内存模型 G1和CMS垃圾回收器
  4. 如何中断线程,await和sleep区别
  5. 设计秒杀系统
  6. spring生命周期,几种scope区别


四面:
跟上面差不多

五面:
主管面,问项目,然后说部门现在在做的内容

六面HR:
期望薪资,为什么要离职,现在的级别
 

网易:

一面:

  1. RPC原理,netty原理
  2. hashMap原理
  3. redis缓存回收机制,准备同步,哨兵机制
  4. 统计10分钟内订单的亏损,你会怎么设计
  5. 项目:你做了什么,为什么要这么做,用了什么技术要解决什么问题


二面:

  1. 分布式缓存redis原理,zookeeper锁是如何实现的
  2. 分布式缓存读写不一致问题
  3. java线程你怎么使用
  4. 数据库是如何调优的
  5. git rebase命令发生了什么
  6. 讨论项目


三面HR:
薪资,为什么要离开,级别
 

华为:

一面:

  1. 结构数据库和非结构数据库区别,你了解的非结构数据库有哪些
  2. 频繁的增删数据量某个表,数据库最终数据只有几万或者更少,为什么查询会变慢
  3. 数据如果出现了阻塞,你是怎么排查的,top和jstack命令用过没,jstack命令的nid是什么意思,怎么查看java某个进程的线程
  4. 大数据算法聚类算法有哪些
  5. 写一个算法判断某个数是2的n次方
  6. 说你最熟悉的项目


二面HR:

  1. 薪资级别
  2. 如何抗压
  3. 平时喜欢做什么
  4. 对加班什么看法

 

三面业务主管:

  1. 你想做什么,介绍他们部门做的东西
  2. 你自己做的项目,怎么设计的

 

美团

分布式缓存redis,dubbo原理,分布式缓存锁的实现

mysql分库分表原则

- 为什么要分这么多库这么多表
- 基于什么考虑?
- 如何实现数据库动态扩容?

线程池coreSize,maxSize怎么设置,依据是什么?场景1:单台机器4核,服务A请求时间为5S,但是A调用的某个服务B耗时4.98S,A服务超时时间是10S,问100QPS的访问量,动态线程池CoreSize,maxSize,等待队列怎么指定?

IO密集型和CPU密集型

设计一个订餐排队系统,底层模型有哪些

 

滴滴

基本也是问java基础,线程池,跟二面面试官讨论了些设计模式,模型设计,接口设计的原则,分布式缓存、rpc原理、消息幂等怎么实现、redis、zookeeper原理,HSF和Dubbo区别,整体跟之前面试问的差不多。
前端写过一些,所以问了些react和nodejs
HR:离职原因,这么多公司offer你会考虑滴滴吗

 

总结

整体上面试总共就是考察这么几个部分:

  1. java基础知识和源码
  2. 线程池,这个每个面试都必问,结合使用场景和原理说一说
  3. 分布式必要要去了解,每个面试基本都会问,redis、dubbo、kafka或者其他,集群管理zookeeper
  4. 数据库性能调优,组合索引和原理也是必问
  5. 业务设计能力和架构negligence考察

 


 

再分享一波shopee的面试,上回以为自己凉了,没想到被捞起来了,感觉又有希望,然后沉住气继续准备,面试题一如既往地不按套路出牌,这次终于彻底凉了。

  • 自我介绍
  • coding : nums=[1,2,3,4] => products=[24,12,8,6], products[i] = nums[0] *~ nums[nums.length - 1] except nums[i], 考虑nums[i] == 0, 考虑多个0
  • 主键索引与二级索引的区别
  • 主键索引存储什么数据
  • 为什么主键用auto_increment
  • 如何生成唯一主键 A:UUID
  • UUID的缺点
  • mysql如何实现事务中持久性
  • 间隙锁
  • 刷题网 105. Construct Binary Tree from Preorder and Inorder Traversal
  • kafka如何保证可靠,高可用,幂等
  • redis的IO模型
  • 解释同步/异步/阻塞/非阻塞
  • 一致性哈希的工作原理,优点,缺点
  • redis持久化的方式
  • hashtable的操作get和put的时间复杂度
  • 解决哈希冲突的方法
  • keep_alive
  • 四次挥手为什么要等Timewait
  • timewait为多少
  • cookies和session的区别
  • 多个微服务如何共享session

你可能感兴趣的:(算法)