Java面试题大全

一、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的常用方法都有哪些?

二、容器
18. java 容器都有哪些?
19. Collection 和 Collections 有什么区别?
20. List、Set、Map 之间的区别是什么?
21. HashMap 和 Hashtable 有什么区别?
22. 如何决定使用 HashMap 还是 TreeMap?
23. 说一下 HashMap 的实现原理?
24. 说一下 HashSet 的实现原理?
25. ArrayList 和 LinkedList 的区别是什么?
26. 如何实现数组和 List 之间的转换?
27. ArrayList 和 Vector 的区别是什么?
28. Array 和 ArrayList 有何区别?
29. 在 Queue 中 poll()和 remove()有什么区别?
30. 哪些集合类是线程安全的?
31. 迭代器 Iterator 是什么?
32. Iterator 怎么使用?有什么特点?
33. Iterator 和 ListIterator 有什么区别?
34. 怎么确保一个集合不能被修改?

三、多线程
35. 并行和并发有什么区别?
36. 线程和进程的区别?
37. 守护线程是什么?
38. 创建线程有哪几种方式?
39. 说一下 runnable 和 callable 有什么区别?
40. 线程有哪些状态?
41. sleep() 和 wait() 有什么区别?
42. notify()和 notifyAll()有什么区别?
43. 线程的 run()和 start()有什么区别?
44. 创建线程池有哪几种方式?
45. 线程池都有哪些状态?
46. 线程池中 submit()和 execute()方法有什么区别?
47. 在 java 程序中怎么保证多线程的运行安全?
48. 多线程锁的升级原理是什么?
49. 什么是死锁?
50. 怎么防止死锁?
51. ThreadLocal 是什么?有哪些使用场景?
52. 说一下 synchronized 底层实现原理?
53. synchronized 和 volatile 的区别是什么?
54. synchronized 和 Lock 有什么区别?
55. synchronized 和 ReentrantLock 区别是什么?
56. 说一下 atomic 的原理?

四、反射
57. 什么是反射?
58. 什么是 java 序列化?什么情况下需要序列化?
59. 动态代理是什么?有哪些应用?
60. 怎么实现动态代理?

五、对象拷贝
61. 为什么要使用克隆?
62. 如何实现对象克隆?
63. 深拷贝和浅拷贝区别是什么?

六、Java Web
64. jsp 和 servlet 有什么区别?
65. jsp 有哪些内置对象?作用分别是什么?
66. 说一下 jsp 的 4 种作用域?
67. session 和 cookie 有什么区别?
68. 说一下 session 的工作原理?
69. 如果客户端禁止 cookie 能实现 session 还能用吗?
70. spring mvc 和 struts 的区别是什么?
71. 如何避免 sql 注入?
72. 什么是 XSS 攻击,如何避免?
73. 什么是 CSRF 攻击,如何避免?

七、异常
74. throw 和 throws 的区别?
75. final、finally、finalize 有什么区别?
76. try-catch-finally 中哪个部分可以省略?
77. try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
78. 常见的异常类有哪些?

八、网络
79. http 响应码 301 和 302 代表的是什么?有什么区别?
80. forward 和 redirect 的区别?
81. 简述 tcp 和 udp的区别?
82. tcp 为什么要三次握手,两次不行吗?为什么?
83. 说一下 tcp 粘包是怎么产生的?
84. OSI 的七层模型都有哪些?
85. get 和 post 请求有哪些区别?
86. 如何实现跨域?
87. 说一下 JSONP 实现原理?

九、设计模式
88. 说一下你熟悉的设计模式?
89. 简单工厂和抽象工厂有什么区别?
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值