基础
- 三个特性:封装、继承、多态详细说一下
- static和volatile区别
- final、finally和finalize的区别
- 抽象类和接口的区别和使用场景
- string、stringbuffer和stringbuilder的区别
- object的equal和==的区别
- int和integer的区别,什么是装箱拆箱
- 为什么匿名内部类中使用局部变量要用final
- String a=""和String a=new String("")的的关系和异同?
- 什么是内部类?有什么作用?静态内部类和非静态内部类的区别
- 什么是反射,有什么作用和应用
- java的四种引用和区别
- 集合、数组、泛型的关系,并比较
- GC(垃圾回收)是什么?如何工作的?回收算法有哪些?怎么从新生代变成老年代的?
源码部分
- hashmap,linkhashmap,concurrenthashmap,hashtable这四个的源码和区别要清楚,是不是线程安全的?怎么实现的线程安全?这个线程不安全怎么样能让它变的安全?hash冲突怎么解决?是不是有序的?怎么扩容?这一系列都要清楚,要不然很容易一面只问了表面二面就一定会问这些底层的,你不知道就凉凉(别问我怎么知道的)
- arraylist,linklist源码,为什么arrlist是数组实现的它可以无限put?
- hashset和treeset的区别
多线程部分
- sleep和wait的区别?怎么中断?
- join 的用法和yield的用法
- synchronized和volatile区别和怎么实现的
- 线程池怎么实现的?怎么实现线程复用的?直接在oncreate中写一个new thread,怎么去复用这个线程?
- 什么是死锁?
- 读写锁和synchronized的区别
- 什么是线程安全?保障线程安全有哪些手段?
- 同步和非同步、阻塞和非阻塞的概念
- 开启一个线程的方法有哪些?销毁一个线程的方法呢?
这些Java相关的问题被问到的可能性都是非常大的,最近准备面试的小伙伴建议先把这些java基础的东西弄明白再去面试吧,如果是想去大厂这些更是要很清楚才行要不然最多也就到二面了
网友评论