Android面试Java相关问题总结

112 阅读2分钟

基础

  1. 三个特性:封装、继承、多态详细说一下
  2. static和volatile区别
  3. final、finally和finalize的区别
  4. 抽象类和接口的区别和使用场景
  5. string、stringbuffer和stringbuilder的区别
  6. object的equal和==的区别
  7. int和integer的区别,什么是装箱拆箱
  8. 为什么匿名内部类中使用局部变量要用final
  9. String a=""和String a=new String("")的的关系和异同?
  10. 什么是内部类?有什么作用?静态内部类和非静态内部类的区别
  11. 什么是反射,有什么作用和应用
  12. java的四种引用和区别
  13. 集合、数组、泛型的关系,并比较
  14. GC(垃圾回收)是什么?如何工作的?回收算法有哪些?怎么从新生代变成老年代的?

源码部分

  1. hashmap,linkhashmap,concurrenthashmap,hashtable这四个的源码和区别要清楚,是不是线程安全的?怎么实现的线程安全?这个线程不安全怎么样能让它变的安全?hash冲突怎么解决?是不是有序的?怎么扩容?这一系列都要清楚,要不然很容易一面只问了表面二面就一定会问这些底层的,你不知道就凉凉(别问我怎么知道的)
  2. arraylist,linklist源码,为什么arrlist是数组实现的它可以无限put?
  3. hashset和treeset的区别

多线程部分

  1. sleep和wait的区别?怎么中断?
  2. join 的用法和yield的用法
  3. synchronized和volatile区别和怎么实现的
  4. 线程池怎么实现的?怎么实现线程复用的?直接在oncreate中写一个new thread,怎么去复用这个线程?
  5. 什么是死锁?
  6. 读写锁和synchronized的区别
  7. 什么是线程安全?保障线程安全有哪些手段?
  8. 同步和非同步、阻塞和非阻塞的概念
  9. 开启一个线程的方法有哪些?销毁一个线程的方法呢?

这些Java相关的问题被问到的可能性都是非常大的,最近准备面试的小伙伴建议先把这些java基础的东西弄明白再去面试吧,如果是想去大厂这些更是要很清楚才行要不然最多也就到二面了