经典面试题

java

  • 1 为什么重写equals还要重写hashcode?
  • 2 ==和equals比较的区别
  • 3 为什么有时会出现4.0 - 3.6 = 0.40000001 这种现象?
  • 4 final 关键字的作用
  • 5 介绍 Java 的集合类
  • 6 ArrayList 和 LinkedList 的区别
#牛客在线求职答疑中心#
全部评论
1. 重写equals方法是为了比较两个对象是否相等,而重写hashCode方法是为了保证相等的对象具有相同的哈希值,从而能够正确地存储和查找这些对象。 2. ==比较的是两个对象的引用是否指向同一个内存地址,而equals比较的是两个对象的内容是否相等。 3. 这是由于计算机在进行浮点数运算时,会存在精度误差。这是因为浮点数在计算机中是以二进制形式存储的,而二进制无法精确表示某些十进制小数,从而导致精度误差。 4. final关键字可以用来修饰类、方法和变量。当修饰类时,表示该类不能被继承;当修饰方法时,表示该方法不能被重写;当修饰变量时,表示该变量的值不能被修改。 5. Java的集合类包括List、Set、Map等。List是有序的集合,可以包含重复元素;Set是无序的集合,不包含重复元素;Map是一种键值对的映射表。 6. ArrayList和LinkedList都是List接口的实现类。ArrayList是基于数组实现的,支持随机访问和快速插入/删除元素,但在插入/删除元素时需要移动其他元素;LinkedList是基于链表实现的,支持快速插入/删除元素,但在随机访问元素时需要遍历整个链表。因此,如果需要频繁进行随机访问操作,应该使用ArrayList;如果需要频繁进行插入/删除操作,应该使用LinkedList。
4 回复 分享
发布于 2023-04-13 21:06 AI生成
第四题有题解吗?
点赞 回复 分享
发布于 2023-04-24 00:00 山西
在JVM优化中,final关键字有两个重要的作用: 1、常量折叠(Constant Folding) 在Java中,如果一个变量被声明为final类型,并且在编译时就已经被初始化了,那么编译器就会把这个变量的值在编译期间计算出来,并将结果保存在字节码文件中。这个过程称为“常量折叠”。 2、方法内联(Method Inlining) 在Java中,如果一个方法被声明为final类型,并且它是私有的或者是由同一个类中的其他方法调用的,那么编译器就会尝试将该方法的代码插入到调用它的方法中,从而减少方法调用的开销。
点赞 回复 分享
发布于 2023-04-14 14:02 北京
yp
点赞 回复 分享
发布于 2023-04-14 13:26 湖南

相关推荐

11-07 15:54
门头沟学院 Java
点赞 评论 收藏
分享
09-17 10:53
四川大学 C++
牛客91242815...:会写标书没有任何卵用,鉴定为横向垃圾导师的受害者
点赞 评论 收藏
分享
评论
9
29
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务