基础篇
Java基础
- 面向对象的特征:继承、封装和多态
- final、finally和finallize的区别
- Exception、Error、运行时异常与一般异常有何异同
- 请写出5种常见的RuntimeException
- int和Integer有什么区别,Integer的值缓存范围
- 包装类、装箱和拆箱
- String、StringBuilder、StringBuffer
- 重载和重写
- 抽象类和接口有什么区别
- 说说反射的用途及实现
- 说说自定义注解的场景及实现
- HTTP请求的GET和POST方式的区别
特征 | GET方法 | POST方法 |
---|---|---|
提交数据类型 | 文本 | 文本、二进制文件 |
提交数据长度 | 不超过255个字符 | 没有限制 |
提交数据可见性 | 作为URL地址的一部分显示在浏览器地址栏 | 作为请求的消息体,不可见 |
提交数据缓存 | 缓存在浏览器URL历史状态中 | 不会被浏览器缓存 |
- Session和Cookie的区别
- 列出自己常用的JDK包
- MVC设计思想
- equals与==的区别
- hashCode和equals方法的区别与练习
- 什么是Java序列化和反序列化,如何实现Java序列化?或者请解释Serializable接口的作用
- Object类常见的方法,为什么wait()、notify()会放在Object里边?
- Java的平台无关性如何体现出来的
- JDK和JRE的区别
- Java8有哪些新特性
Java常见集合
- List、Set和Map的区别
- Set和hashCode以及equals方法的联系
- ArrayList和LinkedList的区别
- ArrayList和Vector的区别
- HashMap和HashTable的区别
- HashMap和CurrentHashMap的区别
- HashMap的工作原理及代码实现,什么时候用到红黑树
- 多线程情况下HashMap死循环的问题
- HashMap出现Hash Dos攻击的问题
- ConcurrentHashMap的工作原理及代码实现,如何统计所有的元素个数
- 手写简单的HashMap
- 看过哪些Java集合类的源码
进程和线程
- 线程和进程的概念、并行和并发的概念
- 创建线程的方式及实现
- 进程间通信的方式
- 说说CountDownLatch、CyclicBarrier原理和区别
- 说说Semaphore原理
- 说说Exchanger原理
- ThreadLocal原理分析,ThreadLocal为什么会出现OOM,出现的深层次原理