话不多说,直接上题材。(若想要答案,请看评论)
一、JAVA(分为基础题型和进阶题型)
会有延伸,建议熟读以下问题涉及到的源码。
A 基础题型
- 面向对象的特性。
- JAVA如何实现跨平台。
- 对类加载过程的理解。
- 字符串常量和字符型常量的区别。
- 自动装箱和拆箱。
- 值传递和引用传递的区别。
- 数据类型有哪些。
- public、private、protected、默认关键字的作用范围
- int和Integer的区别。
- 局部变量和成员变量的区别。
- 重载和重写的区别。
- String为什么是线程安全的。
- String str = “abc” 和 String str = new String(“abc”)是一样的吗?为什么?
- equals()和==的区别。
- Set、List、Map的区别。
- HashMap、HashSet、Hashtable、ConcurrentHashMap的区别以及它们的底层原理,扩容机制,存储和获取元素的过程。
- hashCode()和equals()的关系,什么情况下需要重写这两个方法。
- String、StringBuilder、StringBuffer三者的区别。
- 普通类、抽象类和接口的区别。
- 对迭代器的理解。
- ArrayList、LinkedList、Vector的区别。
- &和&&的区别。
- BIO、NIO、AIO三者的区别。
- synchronized和RetrantLock的区别
- 用过哪些线程池,线程池的底层原理和作用。
- 锁机制的理解
- 对ThreadLocal、volatile、static、final等关键字的理解。
- 线程安全 、线程异步、线程同步的理解。
- 用过哪些线程同步的方法。
- sleep()和wait()的区别。
- final、finally、finalize()三者的区别。
- throw和throws的区别。
- 遇到过哪些异常。
- Error和和Exception的区别。
- 反射的使用和作用。
- 线程有哪些状态及状态间的转换关系。
- 栈和堆的区别。
- 对JVM内存模型的理解。
- 引用类型有哪些。
- 线程共享和线程私有区域。
- 什么是死锁,如何避免。
B 进阶题型
42. 对偏向锁、轻量级锁、重量级锁的理解。
43. 对CAS、QPS理论的理解。
44. 如何避免ABA问题。
45. 做过哪些代码优化。
46. 对JVM的理解。
47. 遇到过哪些内存溢出,如何解决。
48. 做过哪些内存优化。
49. 对GC机制的了解。
50. 如何判断对象是否已被回收。
二、框架