9月9日京东电话一面

前言

2020年9月9日晚上8点准时开始的京东面试。

emmm 一周后通知凉了,看来和东哥还是做不成兄弟啊2333。

具体问题

  • 现在在学校是研二对吗?之前有在别的公司实习过吗?
  • 你这个电商项目是自己感兴趣做的还是学校项目?
  • spring熟悉吗? 我说我今年刚用的,源码就看了一点。
  • 你知道final这个关键字吗?具体有哪些作用。我这里其实说final对象不可变,应该跟面试官讲清楚怎么个不可变法,怕他误会,下次改进。
  • volatile关键字知道吗?介绍一下。那指令不可重排,JVM是怎么保证的呢?有哪些指令能够防止能指令重排?
  • juc下面的有用过吗?有一些锁,这些东西底层用的是什么数据结构去实现的吗?
  • 加锁解锁过程说一下,简单描述下。
  • cas最底层是怎么做的呢? 我看你这块了解很深嘛,现在的孩子都很牛逼嘛….其实他说了这句之后我就感觉基本凉了。
  • JVM内存的分区介绍下。
  • 我现在希望你把方法区撑爆,你觉得还有办法吗?有的。一直反复加载类就可以了。
  • JVM中有很多线程,那你觉得线程数非常多一定是比较好吗?
  • 那我一个8核的任务,开一万个线程合理吗?
  • 那线程切换,会切换什么东西呢?
  • 内核态和用户态之间的切换?
  • 内核态和用户态本质的区别是什么?
  • 仅仅是打开文件的区别吗?权限比较低的人不能做什么? 这里他是想引导我去回答用户态不能访问内核的空间。
  • linux里面的kernel所占用的内存是多少?
  • 有一台机器,发现它的磁盘IO非常高,磁盘繁忙,怎么查看哪个进程。我不会,然后问了面试官,面试官说的是strace,至今不理解为什么strace能解决这个问题,难道是看疯狂调用read吗….
  • 有一个商品非常火热,产生了热点问题,你觉得你有什么办法解决它?
  • 我现在有这么一个场景,就是预约某件商品,利用redis进行原子++,这样能够看到预约人数,但是这个实在太火了,你觉得Redis反应得过来吗?
  • 那我怎么知道,突然这个商品就火了呢? 应该用guava。
  • 有大概知道红黑树是什么东西吗?哪些性质能让它保持弱平衡。
  • 什么时候会发生左旋和右旋。有写过一个红黑树吗?
  • 有遇到过慢查询的这种情况吗?
  • 那你觉得每个字段都建立索引是合适的吗?
  • 我现在有两张表,结果完全一样的,B表是A表的半年前的状态,那么索引走的是一样吗
  • 那么如果是master和slave的结构呢?
  • 主向从发信息,通过什么协议?会向从发送什么东西?binlog呀。
  • mysql有一个查询优化器,它会查看你这个表的读写不平衡,就会改掉explain的计划。就算是B+索引树完全一致,也会出现不一致。
  • spring熟吗?不太熟。然后开始深入提问。
  • 我现在希望在一个bean加一个日志的功能,怎么做呢?
  • 我现在有个奇怪的用法,我用反射额外生成了bean,我想用反射出来的bean去执行一些方法,那么你觉得反射的这个会有问题吗?我说不是单例了,面试官说没关系呀。
  • bean里面的这些注解,是什么时候起效的?
  • 你都说了applicationcontext了,它其实就是path一个bean,然后解析了依赖关系对吧。发现有注解,然后就自动把依赖引入进来,做一堆工作。那我如果是反射呢?反射是JDK底层的,但是其实有一些resource没有被spring托管,那么如果其中有B,那么B就不会被初始化,就会有空指针问题之类的。
  • 你觉得TCP建立连接的时候,只握手三次吗?你确定吗?最极端的情况下有了解吗?
  • 有两个进程同一时刻打开对方的端口,会发生什么?

总结

这个面试官还是可以的,基本问了问题如果不会都会引导一下,实在是不会也会告诉你答案。只是感觉部分问题有点怪,比如红黑树的旋转问题,还有我明确表示框架不太熟的时候,还问的比较深。最后是,还问我看没看过内核源码中对TCP的四次握手的处理….算了,真的和京东无缘吧。