2023年Java基础面试题目收集整理归纳(持续更新)

createh52周前 (03-03)技术教程2

开始的碎碎念

本文大多是各大企业的topN题目,针对java中高级开发,本文会持续收集更新内容,如果大家有优质的Java面试题,也欢迎大家来投稿。希望大家顺顺利利找到自己心仪的工作,加油!!!

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. 多线程中 synchronized 锁升级的原理是什么?

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. 简单工厂和抽象工厂有什么区别?

最后,需要领取答案的小伙伴可以关注我,私信发送领取面试资料即可!!!



相关文章

Java 输入输出(I/O)详解_java oj输入输出

Java 输入输出(I/O)详解Java 提供了丰富的类库来处理输入输出操作。这些类主要位于 java.io 包中。以下是关于 Java I/O 的详细讲解,分为几个部分:文件 I/O、标准输入输出、...

Java IO 中常用的目录和文件操作,用到的时候从这里拷贝就行了

文件是操作系统对磁盘上数据的组织形式。文件包括文件路径和文件名,比如:/Users/Calvin/Desktop/demo.txt 复制代码文件名的后缀其实是文件名的一部分,文件不一定要有后缀,但是一...

Java I/O(2):NIO中的Channel_java channel实现原理

您好,我是湘王,这是我的头条号「湘王说」,欢迎您来,欢迎您再来~为了解决标准Java I/O令人难以忍受的效率问题,从JDK1.4开始,NIO出现了(Non-blocking I/O,官方称之为New...

第一个Java程序_第一个java程序教学设计

第一个Java程序描述使用 Java 实现,编写第一个程序,即 Java HelloWorld。Java HelloWorld新建一个 HelloWorld.java 文件,如下:然后在这个文件中写以...

Java中i++和++i如何理解其含义_java中i++与++i

事实上,在 C、C++、Java 等编程语言当中,i++ 与 ++i 均旨在递增变量 i 的值,只不过在表达式里的行为存有差异。这牵涉到前缀递增(++i)以及后缀递增(i++)的概念。后缀递增(i++...

Java switch_JAVA switch支持类型

Java switch描述运用 Java switch 判断对应的数字为星期几。题目键盘录入一个 0 到 7 数字,使用 switch 输出这个数字对应的星期。题目解决思路创建键盘录入 对象录入数据s...