依图科技Java后端日常实习一面
7.29上午一面 45min
1.自我介绍
2.写个算法:无序数组找第K小
题目比较简单,也没有要求时间复杂度,就写了个冒泡排序。第一次面试有点紧张,再加上好久没写冒泡了,卡了一小会,好在一遍过。然后接着问有没有更好的(其实敲得时候就猜到了会这么问),然后就介绍了了堆排,快排等。应该还有更好的,好在面试官没有追究了。
3.Java接口和抽象类,举例什么场景会用哪个
4.static关键字用法,什么场景用
5.final finally finalize区别
6.谈到JVM了,说说垃圾回收
7.redis用过吗,如果已有三台服务器,要再添加一台服务器分担压力,怎么设计
刚开始没太懂问题,以为问的集群,集群的话直接而加入不就好了。面试官说不用集群怎么自己处理。我就想那就模仿集群呗,于是回答给key建立索引,通过索引到对应服务器查。追问索引放哪,,这实在没考虑过,答曰放某台服务器吧。追问,能不能不用索引,代码实现,,想了一会,面试官提示取模。恍然大悟表示赞同,分析了一下实现。追问,取模会带来什么问题,答曰 之前存好的数据不能通过取模新服务器总数获取到了,追问怎么解决,答曰 把之前数据取出来重新取模存一遍,追问正常运作中这么做会带来什么问题,答曰吞吐量下降,用户线程体验变差,,好在没追问了
8.ConcurrentHashMap了解吗
之前准备了HashMap,奈何没怎么看ConcurrentHashMap,问我觉得应该怎么解决怎么设计这个并发的HashMap,答上锁,问怎么上,粒度多大,没办法只能按自己理解扯了,反正我知道不能锁整个Map的,实际怎么实现的我也没了解,就说锁这个数据项吧,然后面试官说粒度太小了导致锁太多,怎么优化,答了一部分数据项共用一把锁,然后怎么均衡共用一把锁的数据项的个数,答了均分Map或者固定个数两种,由于实在没什么了解,面试官让私下看看。
9.锁
自己谈谈Java里面的锁,说了一下Synchronized,也说了一下volatile,提了一下相关工具类ReentrantLock,没深问了。
10.注解
注解用过哪些,罗列了一下常见的,主要是spring相关的,面试官也没有深问
11.语言
用过哪些语言,说了C++,问Java用了几年,用过python吗,毕竟CV大厂,对python还是感兴趣
12.看到简历用过LSTM
对AI算法相关还是感兴趣,然而我不会,让我介绍lstm以及门的概念,只能坦言自己不会了
13.能实习多久
14.有什么想问的
大致就这些吧,本以为算法题会问很多,没有问太多专业课基础知识,不知道为啥,很多东西都是我自己说,比如jvm以及锁,面试官也没追问,听完就下一问。跟我预想的很不一样,不知道这样还有没有戏。许愿顺利通过吧。
#面经##Java工程师##依图科技##实习#