有赞
一面:
1、hashMap原理,put和resize过程;
2、线程池有哪些类型?
3、concurrentHashMap分段锁原理,java8和java7实现的区别;
4、B-树和B+树区别,数据库索引原理,组合索引怎么使用?最左匹配的原理;
5、spring生命周期,几种scope区别,aop实现有哪几种实现,接口代理和类代理会有什么区别?
二面:
1、项目介绍;
2、斐波拉契数列非递归实现;
3、短URL实现;
短址的长度一般设为 6 位,而每一位是由 [a - z, A - Z, 0 - 9] 总共 62 个字母组成的,所以6位的话,总共会有 62^6 ~= 568亿种组合,基本上够用了。在google URL shortener 服务中,短址长度为 5,大概有9亿多种组合.
假设我们用数据库来保存长地址和短地址的映射,那么,在表 LongtoShortURL 中,我们会有三列:
1. ID,int, 自动增长;
2. LURL,varchar, // 长URL;
3. SURL, varchar, // 短URL。
利用进制之间的转换,对于每一个长地址,我们可以根据它的ID,得到一个6位的 62 进制数,这个6位的 62 进制数就是我们的短址。具体实现如下:
public ArrayList<Integer> base62(int id) { ArrayList<Integer> value = new ArrayList<Integer>(); while (id > 0) { int remainder = id % 62; value.add(remainder); id = id / 62; } return value; }
三面(HR+主管)
你现在做的事情,为什么要离职?反正对你性格、生活、期望薪资等方面全面了解
字节跳动
一面:
1、自我介绍,做的项目价值,架构设计,给你一个集群你会怎么分布,考虑哪些因素,容灾、负载均衡
2、让你来设计咸鱼,你会怎么设计?模型设计
3、linux常用指令
二面:
1、算法在线编程
2、项目,主要做了什么,项目中碰到的问题有哪些,都市怎么解决?你觉得那个项目是最有挑战的
3、java多线程,线程池的选型,为什么要选这个,底层实现原理
三面:
1、你最熟悉的项目,做了什么,为什么这么做,怎么体现你项目的价值
2、让你来推广广告,你会怎么设计?
3、java基础问了些,JVM内存模型 G1和CMS垃圾回收器
4、如何中断线程,await和sleep区别
5、设计一个秒杀系统
6、spring生命周期,几种scope区别
HR面:
期望薪资,为什么要离职?
全部评论
(2) 回帖