Java基础面试题阅读指南
大家好,我是帅地。
为了方便大家复习,这些面试题的展示采取了右边面试题目,左边答案的方式,方便大家按需查看。
由于手机端不支持这种展示方式,当然,为了手机方便阅读,下面会贴出所有面试题答案链接,不过大家最好在 PC 电脑端阅读哈,相关面试题还会持续更新,尽量补充完善起来,建议收藏帅地的网站哦。
以下链接点进去就是答案
7. 讲一下equals()与hashcode(),什么时候重写,为什么重写,怎么重写?
8. 为什么重写 equals() 就一定要重写 hashCode() 方法?
9. 两个对象的 hashCode() 相同,则 equals() 也一定为 true 吗?
12. throw 和 throws 有啥区别?直接 try catch 不好吗,为啥还要抛呢?
13. try catch会影响性能吗?为什么抛出异常的时候会影响性能?
14. try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
15. 谈一谈你对 final 关键字的理解?什么时候需要用这个关键字来定义呢?
17. String a = new String(“aa”) + “bb” “这句话创建了多少个对象?为什么?
20. String中 “+” 和 StringBuffer 中的 append 会有性能上的差别吗?
21. String、StringBuilder、StringBuffer 的区别?
23. String str = “i” 与 String str = new String(“i”) 一样吗?
25. final 修饰 StringBuffer 后还可以 append 吗?
27. Java 中的 IO 流的分类?说出几个你熟悉的实现类?
34. short s1 = 1;s1 = s1 + 1;有什么错?那么 short s1 = 1; s1 += 1;呢?有没有错误?
35. switch 语句能否作用在 byte 上,能否作用在 long 上,能否作用在 String 上?
36. Java 中的 Math.round(-1.5) 等于多少?
40. 在 Java 中定义一个不做事且没有参数的构造方法有什么作用?
47. Java 中是否可以重写一个 private 或者 static 方法?
51. Java 的泛型是如何工作的 ? 什么是类型擦除 ?
53. List< ? extends T > 和 List < ? super T > 之间有什么区别 ?
54. 什么是序列化?什么情况下需要序列号?序列号在Java中是怎么实现的?
55. Java 中的反射是什么意思?有哪些应用场景?有哪些优缺点?
56. 什么是动态代理?有什么用?Java中可以怎么样实现动态代理?
57. final、finally、finalize 的区别
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. 列举并解释一些常见的字符编码方式以及它们之间的主要差异。
75. 在泛型声明中,K、T、V、E、Object等通常代表什么意义?
76. 泛型中的上界限定符extends
和下界限定符super
各自的作用是什么,它们之间有何不同?
79. serialVersionUID
在Java序列化中起什么作用?如果不定义它,可能会遇到什么问题?
80. 你是否了解fastjson库中的反序列化漏洞?请简述其影响。
81. finally
块中的代码是否总是会被执行?有没有例外情况?
82. Java中的枚举类型有哪些独特之处,使用它们有什么好处?
83. SimpleDateFormat
在多线程环境中是否安全?使用时需要特别注意什么?
88. 从性能角度来看,while(true)
和for(;;)
哪个更优?
89. ClassNotFoundException
和NoClassDefFoundError
在Java中分别代表什么,它们之间有何区别?
90. 在JDK 9中,为什么String
类的内部实现从char[\]
改为了byte[]
?这样做有什么好处?
91. Arrays.sort
方法在Java中使用了哪种排序算法?