Java基础面试题阅读指南

大家好,我是帅地。

为了方便大家复习,这些面试题的展示采取了右边面试题目,左边答案的方式,方便大家按需查看。

由于手机端不支持这种展示方式,当然,为了手机方便阅读,下面会贴出所有面试题答案链接,不过大家最好在 PC 电脑端阅读哈,相关面试题还会持续更新,尽量补充完善起来,建议收藏帅地的网站哦。

以下链接点进去就是答案

1. Java为什么被称为平台无关性语言?

2. 解释下什么是面向对象?面向对象和面向过程的区别

3. 面向对象的三大特性?分别解释下?

4. Java 中的参数传递时传值呢?还是传引用?

5. JDK、JRE、JVM 三者之间的关系?

6. = =和equals有什么区别?

7. 讲一下equals()与hashcode(),什么时候重写,为什么重写,怎么重写?

8. 为什么重写 equals() 就一定要重写 hashCode() 方法?

9. 两个对象的 hashCode() 相同,则 equals() 也一定为 true 吗?

10. 说一说你对异常的理解?

11. 异常有哪些种类,可以举几个例子吗?

12. throw 和 throws 有啥区别?直接 try catch 不好吗,为啥还要抛呢?

13. try catch会影响性能吗?为什么抛出异常的时候会影响性能?

14. try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?

15. 谈一谈你对 final 关键字的理解?什么时候需要用这个关键字来定义呢?

16. String 为什么要设计为不可变类?

17. String a = new String(“aa”) + “bb” “这句话创建了多少个对象?为什么?

18. String 对象最多可以存放多少个字符(长度)?

19. 字符串常量池是放在堆中吗?

20. String中 “+” 和 StringBuffer 中的 append 会有性能上的差别吗?

21. String、StringBuilder、StringBuffer 的区别?

22. String 字符串修改实现的原理?

23. String str = “i” 与 String str = new String(“i”) 一样吗?

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

25. final 修饰 StringBuffer 后还可以 append 吗?

26. 字节和字符的区别?

27. Java 中的 IO 流的分类?说出几个你熟悉的实现类?

28. 字节流和字符流有什么区别?

29. BIO、NIO、AIO 有什么区别?

30. 如何实现对象的克隆?

31. 深克隆和浅克隆的区别?

32. 装箱和拆箱的区别?

33. Integer 和 int 的区别?

34. short s1 = 1;s1 = s1 + 1;有什么错?那么 short s1 = 1; s1 += 1;呢?有没有错误?

35. switch 语句能否作用在 byte 上,能否作用在 long 上,能否作用在 String 上?

36. Java 中的 Math.round(-1.5) 等于多少?

37. 两个二进制数的异或结果是什么?

38. 介绍一下 Object 常见方法?

39. 构造方法有哪些特性?

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

41. Java 中创建对象的几种方式?

42. 静态变量和实例变量的区别?

43. super 关键字的作用?

44. transient 关键字的作用?

45. static 关键字的作用?

46. 抽象类和接口有什么区别?

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

48. 为什么Java不支持多继承?

49. 聊一聊你对多态的理解?

50. 讲一下重载和重写的区别?

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

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

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

54. 什么是序列化?什么情况下需要序列号?序列号在Java中是怎么实现的?

55. Java 中的反射是什么意思?有哪些应用场景?有哪些优缺点?

56. 什么是动态代理?有什么用?Java中可以怎么样实现动态代理?

57. final、finally、finalize 的区别

58. & 和 && 的区别?

59. 请阐述Java和C++两种编程语言的主要差异,以及它们各自的优点和缺点是什么?

60. 在Java和C中,函数或方法的参数传递有哪些重要区别?请具体说明。

61. 能否详细解释面向对象编程的五大基本原则是什么?这些原则在编程实践中的重要性如何体现?

62. Java语言中已经有了基本数据类型,为什么还需要引入对应的包装类?包装类的存在有何意义?

63. 谈谈你对Java中自动拆箱和装箱的理解,这两个过程在编程中起到了什么作用?

64. 为什么我们通常不建议使用浮点数来表示金钱等需要精确计算的数值?请说明原因。

65. 在使用Java的BigDecimal类进行数值比较时,为什么不应该直接使用equals方法来做等值比较?请解释原因。

66. 对Java中的负数取绝对值结果一定是正数吗,为什么?

67. 考虑以下Java代码片段:String a = "ab"; String b = "a" + "b"; 请问在这里,a和b是否相等(使用==运算符进行比较)?

68. Java中的String类型是否有长度限制?如果有,那么这个限制是多少?

69. 在RPC接口的返回值中,我们应该选择基本数据类型还是它们的包装类?

70. 列举并解释一些常见的字符编码方式以及它们之间的主要差异。

71. 能列举几种编程中常用的语法糖吗?

72. Lambda表达式的底层实现机制是怎样的?

73. 描述一下泛型是什么,以及使用它有哪些优势?

74. 解释一下类型擦除?

75. 在泛型声明中,K、T、V、E、Object等通常代表什么意义?

76. 泛型中的上界限定符extends和下界限定符super各自的作用是什么,它们之间有何不同?

77. SPI是什么,它与API有什么主要区别?

78. Java注解的主要用途是什么?

79. serialVersionUID在Java序列化中起什么作用?如果不定义它,可能会遇到什么问题?

80. 你是否了解fastjson库中的反序列化漏洞?请简述其影响。

81. finally块中的代码是否总是会被执行?有没有例外情况?

82. Java中的枚举类型有哪些独特之处,使用它们有什么好处?

83. SimpleDateFormat在多线程环境中是否安全?使用时需要特别注意什么?

84. 目前JDK的最新版本号是什么?

85. 在JDK的最新版本中,引入了哪些新的特性或改进?

86. UUID是什么,它能否保证在全局范围内的唯一性?

87. char类型能否直接存储中文字符?

88. 从性能角度来看,while(true)for(;;)哪个更优?

89. ClassNotFoundExceptionNoClassDefFoundError在Java中分别代表什么,它们之间有何区别?

90. 在JDK 9中,为什么String类的内部实现从char[\]改为了byte[]?这样做有什么好处?

91. Arrays.sort方法在Java中使用了哪种排序算法?

92. Java中的String类是如何实现其不可变性的?

93. 字符串常量在什么时候会被加入到Java的字符串常量池中?

94. 解释String类中的intern方法的工作原理。

发表回复

后才能评论