一、Java基础
1.JDK和JRE有什么区别?
2.==和equals的区别是什么?
3.两个对象的hashCode()相同, 则equals()也一定为true, 对吗?
4.final在java中有什么作用?
5.java中的Math.round(-1.5)等于多少?
6.String属于基础的数据类型吗?
7.java中操作字符串都有哪些类?它们之间有什么区别?
8.String str= "i"与String str=new String(“i”)一样吗?
9.如何将字符串反转?
10.String 类的常用方法都有那些?
11.抽象类必须要有抽象方法吗?
12.普通类和抽象类有哪些区别?
13.抽象类能使用final修饰吗?
14.接口和抽象类有什么区别?
15.java中IO流分为几种?
16.BIO、 NIO、AIO有什么区别?
17.Files的常用方法都有哪些?
二、容器
-
java容器都有哪些?
-
Collection和Collections有什么区别?
-
List、Set、 Map之间的区别是什么?
-
HashMap和Hashtable有什么区别?
-
如何决定使用HashMap还是TreeMap?
-
说一下HashMap的实现原理?
-
HashMap底层怎么实现的?
-
红黑树的实现原理?和应用场景?
-
LinkedHashMap的应用?
-
Hashmap有什么并发问题?可能扩展到ConcurrentHashMap
-
说一下HashSet的实现原理?
-
ArrayList和LinkedList的区别是什么?
-
如何实现数组和List 之间的转换?
-
ArrayList和Vector的区别是什么?
-
Array和ArrayList有何区别?
-
在Queue中poll()和remove()有什么区别? -
哪些集合类是线程安全的?
-
迭代器Iterator是什么?
-
Iterator怎么使用?有什么特点?
-
Iterator和Listlterator有什么区别?
-
怎么确保一个集合不能被修改?
三、多线程
- 并行和并发有什么区别?
- 线程和进程的区别?
- 守护线程是什么?
- 创建线程有哪几种方式?
- 说一下runnable和callable有什么区别?
- 线程有哪些状态?
- sleep()和wait()有什么区别?
- notify()和notifyAll()有什么区别?
- 线程的run()和start()有什么区别?
- 为什么需要线程池?
- 创建线程池有哪几种方式?
- 线程池几个重要参数,如何合理配置线程池的大小?
- 线程池实现原理?和线程的调度过程?
- 线程池都有哪些状态?
- 什么时候出现进程僵死?
- 线程池中submit()和execute()方法有什么区别?
- 什么是线程安全?
- 在java程序中怎么保证多线程的运行安全?
- 多线程锁的升级原理是什么?
- 什么是死锁?
- 模拟死锁?
- 怎么防止死锁?
- ThreadLocal是什么?有哪些使用场景?
- 什么时候出现OOM的状况?为什么?
- 说一下synchronized底层实现原理?
- synchronized和volatile的区别是什么?
- ThreadLocal和volatile的实现原理和使用场景?
- synchronized和Lock有什么区别?
- synchronized锁粒度?
- synchronized和ReentrantLock区别是什么?
- 说一下atomic的原理?
四、反射
- 什么是反射?
- 什么是java序列化?什么情况下需要序列化?
- 动态代理是什么?有哪些应用?
- 怎么实现动态代理?
五、对象拷贝
1.为什么要使用克隆?
2.如何实现对象克隆?
3.深拷贝和浅拷贝区别是什么?
六、Java Web
- servlet生命周期?
- jsp和servlet有什么区别?
- jsp有哪些内置对象?作用分别是什么?
- 说一下jsp的4种作用域?
- session和cookie有什么区别?
- 说一下session的工作原理?
- 如果客户端禁止cookie能实现session还能用吗?
- spring mvc和struts的区别是什么?
- 如何避免sql注入?
- 什么是XSS攻击,如何避免?
- 什么是CSRF攻击,如何避免?
七、异常
- throw和throws的区别?
- final、finally、 finalize 有什么区别?
- try-catch-finally中哪个部分可以省略?
- try-catch-finally中,如果catch中return了, finally 还会执行吗?
- 常见的异常类有哪些?
八、网络
- http响应码301和302代表的是什么?有什么区别?
- forward和redirect的区别?
- 简述tcp和udp的区别?
- tcp为什么要三次握手,两次不行吗?为什么?
- 说一下tcp粘包是怎么产生的?
- OSI的七层模型都有哪些?
- get和post请求有哪些区别?
- 如何实现跨域?
- 说一下JSONP实现原理?
九、设计模式
- 说一下你熟悉的设计模式?
- 简单工厂和抽象工厂有什么区别?