
Java
文章平均质量分 74
Java编程小辉
两年半Java开发经验,24届毕业生
GitHub:https://github.com/qiuquanhui 正在求职找工作中
展开
-
HashMap源码解析
因此 n - 1 就是二进制低位全是1,跟 hashCode 相与的话会将左边的哈希值的高位全抹掉,剩下的就是余数了,因此相当于 HashCode % n, 两者的结果是一样的,但使用 HashCode & (n - 1)是位运算,执行在硬件层,效率比直接求余要高。扩容机制:HashMap 的默认容量为 16 ,负载因子为 0.75,当集合中的元素超过容量与负载因子的乘积时,会引发扩容机制。树化的过程,两个条件:1.hashmap 的容量要大于等于 64 并且 链表的长度要大于等于 8 ,才能实现树化。原创 2024-06-11 16:46:39 · 628 阅读 · 0 评论 -
ArrayList源码解析
ArrayList:是基于数组实现的集合列表,它被称为动态数组,因为相比与数组的固定大小,ArrayList 当添加元素时,添加的元素数量大于数组的容量的话就会触发扩容机制。ArrayList 是线程不安全的,如果要实现线程安全,可以使用 CopyOnWriteArrayList,或者用 Collections 工具类封装。每次通过右移的方法扩容 1.5 倍,最后将旧数组的元素复制到新数组中。数组的移除是通过覆盖的方式完成,将该元素后面的值往前覆盖。很简单,直接根据下标设置数组的元素。原创 2024-06-11 14:59:09 · 420 阅读 · 0 评论 -
Java基础-一文一答系列
在没有重写equals方法的时候,两者是一样的,都是在比较元素的内存地址是否相同,但是如果我们重写了equals方法,在比较对象的时候,就可以将对象原本比较内存地址的改为对象之间的逻辑内存的对比。答:BigDecimal,相比于 Double ,Folat,BigDecimal 的精度大,准确度高,优点是准确率高,缺点是在数据比较大精度的时候计算比较慢。这是一种规范,例如我们在使用 HashMap的时候,也是先计算元素的 HashCode,相同的话再进行 equals 的比较。大家好,我是小辉,持续分享。原创 2024-06-09 14:50:08 · 826 阅读 · 0 评论 -
Java 基础知识点
修饰的类为抽象类,里面可以定义抽象方法,普通方法,局部变量,如果子类不是抽象类继承抽象父类需要重写抽象父类的方法。原创 2024-06-08 16:25:52 · 728 阅读 · 0 评论 -
Java 基础面试题
使用时通过创建一个对象来调用类中的方法,创建一个一个类似于模块化的结构,每个类各司其职,便于管理与维护,也起到代码复用的效果。抽象类:用 abstract 修饰的类为抽象类,里面可以定义抽象方法,普通方法,局部变量,如果子类不是抽象类继承抽象父类需要重写抽象父类的方法。第二种是运行时多态,对象引用的具体类型在运行时才确定,通过子类继承父类并重写父类的方法,然后使用父类的引用指向子类的对象实现。程序在运行时的时候,通过反射来获取类信息,用类来调用方法与属性,或者通过反射获取对象,用对象来调用方法与属性。原创 2024-06-06 15:29:52 · 664 阅读 · 0 评论 -
HashMap扩容机制
触发条件:HashMap 的默认容量为 16 ,负载因子为 0.75,当集合中的元素超过容量与负载因子的乘积时,会引发扩容机制。我是小辉,24 届毕业生。当下是找工作ing,欢迎关注,持续分享。 如果红黑树的值小于 6 ,就会退化成链表。原创 2024-05-30 16:10:35 · 1127 阅读 · 0 评论 -
String的基本介绍与常见的方法
在Java中,String是一个代表字符串的类。字符串本质上是一个不可变的字符序列,这意呀着一旦一个String对象被创建,它所包含的字符序列是不能被改变的。Java中的String类提供了大量的方法来进行字符串的操作,如字符串的查找、字符串的比较、子字符串的提取、字符串的分割等。String对象可以通过以下几种方式创建:字符串字面量:这是最常见的方式,例如。在Java中,每当你使用字符串字面量,JVM会首先检查字符串常量池中是否已经存在相同内容的字符串。如果存在,就会返回该字符串的引用;原创 2024-04-24 17:52:25 · 1351 阅读 · 0 评论 -
面向对象的三大特性
面向对象的三大特性。。。原创 2023-05-14 23:29:09 · 75 阅读 · 0 评论