秋招面经-同花顺-Android开发工程师-提前批
1、自我介绍
2、介绍一下项目
3、选择一个项目,共享屏幕,打开项目的源码,介绍一下
4、先介绍项目的每个包是干嘛的,有什么作用(java里面的common,service,controller包等等)
5、项目中annotaion包下用了自定义注解,写的是@Retention(RetentionPolicy.RUNTIME),为什么选RUNTIME这个生命周期?还有其他的什么生命周期可以选择?差异是什么?(SOURCE、CLASS、RUNTIME)
6、用户登录密码为什么加盐
7、md5加密方式存在什么问题,有没有什么更好的加密方式?md5的碰撞漏洞了解过吗?
8、缓存怎么设计的,key怎么设计的,缓存的内容是什么?
9、谈谈对CDN的理解
10、项目中用到了什么设计模式吗,结合代码讲讲看
11、如果现在需要扩展一种上传方法进来,应该怎么去修改代码?
12、什么是面向对象设计中的开闭原则和里氏原则?
13、谈谈什么是单例模式?
14、单例模式中有一种写法是双重锁检查,为什么要用两个锁?
15、双重锁检查的单例模式中,实例需要用volatile来修饰,为什么?
16、平时开发工程中会用到什么AI工具?用来解决什么问题?
17、AI编码的IDE有用过吗?知道哪些?
18、实习拷打