21字节Java实习面经
谢谢各位牛友,回馈下
-
一面
- 面试题(面了一个小时,只记得一小部分了,不分先后)
- 讲讲项目
- 在浏览器的url栏里输入一个https的请求会发生什么?balabala.
- 三次握手,close_wait, time_wait原理
- 内存泄露原因,举例子,怎么排查,OOM异常
- 静态内部类会被编译成几个class?为什么内部类可以访问外部类的private的方法?
- 多线程安全,线程池相关问题
- 集合框架源码,concurrenthashmap,hashmap,linkedhashmap实现LRU
- 为什么需要锁,你知道几种锁,说说AQS,说说CAS
- synchronized原理,jdk6对他的优化,(偏向锁等),JNI,逃逸分析,对象的markword
- 知道几个设计模式,怎么用,手写双重检查锁单例模式
- 以下代码题输出什么?(巨坑,输出100,从泛型+向上转型+map+equals原理上想)
Map<Short, String> map = new HashMap<>(); for(short i = 0; i <100; i++) { map.put(i, String.valueOf(i)); map.remove(i-1); } System.out.println(map.size());
- 算法:手写jdk中的优先级队列 PriorityQueue(最大堆)
二面
面试题(面了一个小时,只记得一部分了,不分先后) 算法题:
- 介绍自己
- 说说项目,说说你的开源项目
- 剑指offer62:圆圈剩下的数字
- 写一个快排
- 给出一个数组nums,一个值k,找出数组中的两个下标 i,j 使得 nums[i] + nums[j] = k. 2种解法,排序数组+双指针o(n)遍历或使用HashMap额外存储空间。
- 泛型 List<Integer> 与 List<String> 这两个的getClass是否相对?(泛型擦除,中间还有一个小插曲,面试官问我<? extends String> 有什么作用?我说:String不是不可继承的嘛,被final修饰的。相视而笑)
- 说说你知道的设计模式,说说项目里用到的设计模式,说说策略模式,设计一个下棋的场景问如何结合设计模式使用,设计模式什么时候继承,什么时候委托?
- 说说MySQL Innodb 索引底层实现,说说join,说说GroupBy
- 说说抽象类与接口区别?说说从设计模式层面的理解,为什么要有这么2个东西?
- 说说操作系统内存模型不连续空间分配,说说分段,分页,虚拟内存,页淘汰算法...., 11.说说Redis底层实现,说说他和MySQL的区别
- 说说volatile,说说线程同步,说说JVM线程模型
- 说说动态***,说说你知道的AOP,项目中是怎样使用AOP的?
- 有没有使用过责任链模式?如果有...个场景,如何选择使用设计模式
- 你还有什么问题?
三面(面了一个小时,只记得一部分了,不分先后)
- 自我介绍
- 项目用户量3w+,怎么做到的?如何协调团队?
- 说说项目中如何使用的Redis,如果有10w请求插入Redis,如何优化?
- 说说你理解的线程池
- 说说操作系统组成
- 手撕一个阻塞队列,生产者生产0~100的随机数,消费者消费后将其存储到一个list,需要保持list中元素保持递增。(信号量+线程安全)
- 说说hashmap的resize死循环
- 说说hashtable和hahsmap区别,说说copyOnwriteArrayList以及他们分别采用的并发修改当然(fast-fail,fast-safe)
- 说说你的优缺点。
- 说说你对字节的了解?
hr
- 介绍下自己
- 这个项目3w的用户量如何统计的?如何处理团队问题?
- 为什么想来字节?(喜欢张一鸣)
- 什么时候来?
- 口头offer