面经-2020阿里菜鸟网络春招实习
一面 43min
自我介绍
介绍一下你最深刻的项目,项目架构是什么?(后面围绕项目展开提问)
项目中遇到的难题是什么?你怎么解决的?
项目你觉得有哪些需要改进?从中学到了什么?
String不可变的原理是什么?为什么要设计成不可变的?
char数组用final修饰的;
如果可变,字符串常量池引用会混乱;String缓存了自己的hash,如果可变,但是hash不会变,在HashMap、HashSet中会出现问题;String经常用作参数,如果可变则不安全。
StringBuilder和StringBuffer的区别?看过它们的源码吗?他们谁的性能高?
线程安全问题,StringBuffer使用了synchronized,StringBuilder性能较高
String str1 = "abc" 创建了几个对象?String str2 = "ab"+"c"创建了几个对象?
考察字符串常量池
ArrayList和LinkedList插入一条数据时谁的效率高?插入上万条数据时谁的效率高?
插一条数据分在什么位置插,如果末尾则差不多,如果中间则LinkedList;插入很多条的话考虑到ArrayList会扩容,LinkedList高
HashMap源码看过吗?实现原理是什么?
实现线程池为什么不用Executors的静态方法生成固定的那几个?
FixedThreadPool和SingleThreadPool使用了无界队列,会出现OOM,CachedThreadPool和ScheduledThreadPool的最大线程池数设置为Integer.MAX_VALUE,也会出现OOM
如果自己创建一个ThreadPoolExecutor,怎么设置核心线程池数和最大线程池数?
几个参数的原理,如何设置这些参数要看具体使用场景,cpu密集型和io密集型
Java中的注解有哪些?你自定义过注解吗,怎么用的?
说一个你熟悉的排序算法,怎么实现的?
说一个你熟悉的数据结构,你可以怎么实现?
项目中用到的设计模式,怎么用的?
你有什么要问的吗?
二面 45min
TCP和UDP的有什么区别,原理是什么?
浏览器中访问一个网址,都发生了什么?
spring加载bean的流程是什么?
synchronized和lock的区别?
ConcurrentHashMap的原理是什么?
说说JVM的内存结构?
垃圾回收算法有哪些?
Mysql的索引
了解MySQL的隔离级别吗?说说各自解决的问题
说说你了解的设计模式
平时是怎么学习新技术的?
你还有什么要问的吗?
实习只有两轮技术面,三面是hr面,每次面试差不多间隔一周。