最强Java面试题整理(2021版,附答案)

我自己前前后后加起来总共应该参加了不下四五十次的面试,另外参考网上的一些面试题,整理了这个面试题库,希望可以帮助到大家。

篇幅有限,我在上千道面试题中从各技术方向选出15道,分享给大家
可以关注公众号:【Java专栏】,发送" 面试题 " 获取完整的面试题(整理成了PDF,并且带目录)
或者 ☺️☺️点击这里,获取面试手册及答案😌😌

Java基础

1. 为什么要有包装类型?

2. 内部类的分类有哪些

3. 在Java中定义一个不做事且没有参数的构造方法的作用

4. 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?

5. final有哪些用法?

6. 什么Java注释

7. Java中的抽象类和接口的区别?

8. Java程序是如何执行的

9. 什么是内部类?

10. Java 中是否可以重写一个 private 或者 static 方法?

11. Integer a= 127 与 Integer b = 127相等吗

12. static的独特之处

13. static和final区别

14. a=a+b与a+=b有什么区别吗?

15. 一个类的构造方法的作用是什么?若一个类没有声明构造方法,改程序能正确执行吗?为什么?

字符串

16. 什么是字符串池?

17. 如何将String转换为char,反过来呢?

18. 如何将String转换为byte array,反过来呢?

19. 为什么要引入SpringBuffer、StringBuilder两种字符串处理类?

20. 创建String对象的不同方式有哪些?

21. String str="i"与 String str=new String("i")一样吗?

22. 如何分割一个String?

23. String s = new String("xyz");创建了几个StringObject?是否可以继承String类?

24. String是不可变的有什么好处?

25. 如何让一个字符串变成小写或大写形式?

26. 什么是String,它是什么数据类型?

27. Java 中操作字符串都有哪些类?它们之间有什么区别?

28. 下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"

29. String 类的常用方法都有那些?

30. 如何比较两个字符串?

容器

31. HashMap自动扩容

32. hashCode()和equals()方法有何重要性?

33. Array和ArrayList有何区别?什么时候更适合用Array?

34. fail-fast与fail-safe有什么区别?

35. 哪些集合类提供对元素的随机访问?

36. ArrayList,Vector,LinkedList的存储性能和特性

37. 简述Java中的集合

38. 我们如何对一组对象进行排序?

39. Comparable和Comparator接口有何区别?

40. HashMap在JDK1.7和JDK1.8中有哪些不同?

41. 大写的O是什么?举几个例子?

42. ConcurrenHashMap 原理?1.8 中为什么要用红黑树?

43. 谈谈线程池阻塞队列吧~

44. HashMap和HashTable有何不同?

45. 队列和栈是什么,列出它们的区别?

多线程并发

46. Java中interrupted 和isInterruptedd方法的区别?

47. 什么是线程调度器(Thread Scheduler)和时间分片(Time Slicing)?

48. 说一下 atomic 的原理?

49. 自旋锁的优缺点?

50. 如何在两个线程之间共享数据

51. 什么是ThreadLocal变量?

52. 什么是线程池? 为什么要使用它?

53. 如何创建守护线程?以及在什么场合来使用它?

54. Java中interrupted 和 isInterrupted方法的区别?

55. 常用的线程池模式以及不同线程池的使用场景?

56. 线程池都有哪些状态?

57. 什么是阻塞(Blocking)和非阻塞(Non-Blocking)?

58. 在Java中Executor、ExecutorService、Executors的区别?

59. 现在有 T1、T2、T3 三个线程,你怎样保证 T2 在 T1 执行完后执行,T3 在 T2 执行完后执 行?

60. 线程中断是否能直接调用stop,为什么?

异常

61. Excption与Error包结构

62. Java异常简介

63. 运行时异常与一般异常有何异同?

64. Throw 和 throws 的区别

65. 简单说说Java中的异常处理机制的简单原理和应用。

66. Java异常的分类

67. try {}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?

68. 什么是受检异常

69. 阐述 final、finally、finalize 的区别

70. 列出一些你常见的运行时异常?

71. Error 和 Exception 有什么区别?

泛型

72. List<? extends T>和List <? super T>之间有什么区别 ?

73. 什么是泛型中的限定通配符和非限定通配符 ?

74. Java的泛型是如何工作的 ? 什么是类型擦除 ?

75. 什么是泛型

76. 如何编写一个泛型方法,让它能接受泛型参数并返回泛型类型?

77. 你可以把List传递给一个接受List

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章