游族网络 后端开发 暑期实习一面面经
35min。
实习经历
jvm
jvm线上调优,就比如如果gc后,内存还是有很多对象怎么解决?
垃圾收集算法
Java内存区域分布情况:
有几种类加载器?
双亲委派?
为什么要这样弄几层类加载器:树、基类
在自定义的包下弄String类,可以使用吗?
Java并发
ScheduledExecutorService通过这个去问线程池的七个参数
synchronized 底层原理
synchronized如何使用?修饰实例方法、静态方法、代码块
mysql
mysql的锁可以分为哪几种? 行锁表锁、乐观锁悲观锁、读写锁
聚簇索引和非聚簇索引
Java基础
Integer缓存问题:
针对 new Integer(1) == (new Integer(1)),源码没有做特殊处理,就是 new 了两个不同的对象,他们当然是不相等的,返回 false;
针对 new Integer(1).equals(new Integer(1)),可以看一下 Integer.equals() 函数的实现,函数内部是直接比较两个对象的 value 是否相等,他们的 value 都是 1,所以返回 true;
针对 Integer.valueOf(1) == Integer.valueOf(1),就是我们前面提到的 IntegerCache 了,Integer.valueOf 会直接使用缓存好的对象,两个值相等,所以对象也是相同的,返回 true;
针对 Integer.valueOf(129) == Integer.valueOf(129),由于缓存的范围是 -128 ~ 127,值 129 显然是超出范围了,所以会 new 一个新对象,也不会相等,返回 false;
Java集合
ArrayList的源码
redis
持久化机制
5 种基本数据类型
#软件开发笔面经##牛客创作赏金赛#