这些JAVA基础你都知道嘛

    技术2025-03-29  18

    JAVA基础知识积累

    JavaSE基础知识点1.== , equals 和hashCode JavaSE容器知识点1.ArrayList 和 LinkedList

    JavaSE基础知识点

    在java学习中遇到的知识点作记录,以便查阅。

    1.== , equals 和hashCode

    == , 对于基本数据类型和引用数据类型,其作用是不一样的 基本数据类型:比较的是值是否相同。 引用数据类型:比较的是引用是否相同。 equals , 默认情况下是引用比较,只是很多类重写了equals方法,比如String,Integer等,把它变成了 值的比较,一般情况下equals比较是值是否相同。 hashcode 对象使用hashCode()来生成一个hashCode值,用equal对比相同的对象hascode肯定相等,但不同的对象可能他们生成的hashcode一样。hashcode并不是绝对可靠

    重写的equal()比较复杂,效率低,hashCode()效率很高,需要对比的时候,首先用hashCode()对比,如果hashCode()不一样,则表示这两个对象肯定不相等,如果hashCode()相同,此时再对比他们的equal(),如果equal()也相同,则表示这两个对象相同,这样既能提高效率也保证对比的正确性。

    一般的hash容器如hashset要求对象不能重复,则他内部的对比规则就是像上面说的那样,这样效率比较高。

    JavaSE容器知识点

    1.ArrayList 和 LinkedList

    都是实现List接口的容器类,用于存储一系列的对象引用,都可对元素进行增删改查。 ArrayList底层是动态数组结构,支持随机访问,LinkedList底层数据结构是双循环链表,不支持随机访问。 对于随机访问的get和set方法,ArrayList优于LinkedList,LinkedList要移动指针,对于新增和删除操作add/remove LinkedList占据优势。 但平时使用时,更多的是Arraylist,项目中多数是查询操作

    Processed: 0.010, SQL: 9