📍面试公司:小米汽车🕐面试时间:10.22 -- 15:00(整体一个小时)💻面试岗位:安卓开发(接收java)❓面试问题:1、自我介绍2、是否接触过其他编程语言3、java的垃圾回收机制4、刚刚提到gc roots,哪些可以作为gc roots5、java的引用类型和c++的有什么区别吗6、java中基础数据类型和引用数据类型的区别7、java代码在不同系统上的运行流程8、介绍collections下的类9、谈谈ArrayList和LinkedList的区别10、hashMap访问的时间复杂度11、hashMap如何在不存在哈希冲突的情况下做到在0(1)的时间复杂度下找到元素举个例子;(其实就是考察为什么是2的幂次方,%等价于&)12、java中多线程难点以及注意事项13、ConcurrentHashMap等数据结构在多线程场景下还会有线程安全问题吗追问:在业务实际开发中如何去考虑线程安全问题(hashtable)14、反射应用场景15、动态代理技术如何实现的呢16、代理需要拿到原始对象吗17、Object中常见的方法18、提到了equals,那么重写equals有什么注意事项(hashcode)19、项目中遇到什么难点,怎么解决的20、手撕1、生产者消费者模型实现(我直接sync锁住整个消费者或者生产者了,面试官不太满意)2、实现斐波那契数列🙌面试感想:八股八股八股八股八股八股八股八股八股八股生产者消费者还是不太熟练,跟面试官说撕10-15分钟,结果干了20分钟