Java
文章平均质量分 64
Java学习,学无止境~
小呀小蜜蜂
JUST DO IT
展开
-
Java HashMap表的长度为什么是2的倍数?
这个数值串就是Y%X的计算结果。所以,正是由于二进制运算的这种特性,HashMap在put进一个新元素到哈希表时,如果哈希表的长度为2的倍数,那么就可以直接通过(n - 1) & hash得到 n%hash的结果了。由于位运算的执行效率要比%运算高效很多,所以,通过做位运算,而不是%运算,就能够大大提高对哈希表操作的效率了。原创 2023-08-22 17:12:37 · 138 阅读 · 0 评论 -
Java字符串String在JVM内存中的存储位置
由于字符串“+”运算的规则,对于代码String str4 = str1 + str2,由于操作数str1和str2并不是在编译期间就被确定,所以JVM就会自动把“+”替换成StringBuilder的append和toString方法。所以可以知道,str1 + str2运算实际上会为变量str4在内存堆中新建一个StringBuilder类型的对象,然后通过这个对象的toString()方法,在内存堆中再新建一个String类对象,最后让str4引用这个对象。原创 2023-07-09 12:55:11 · 786 阅读 · 2 评论 -
Java ArrayList实例是否可以存放NULL元素?
当add一个新元素时,如果这个元素是一个null元素,那么在这个方法中也并没有做null校验,它内部的处理逻辑就是把这个新元素直接存到elementData字段的最后一个空间中,而数组对存放null元素本身也并没有做限制。当我们调用add()方法添加一个新元素到ArrayList类中,我们看下elementData字段此时会被怎么处理。根据官方解释,可以了解到这个elementData字段就是用来存放存入到ArrayList类对象中的所有元素。原创 2023-06-15 17:04:40 · 481 阅读 · 0 评论 -
Optional类中,of()和ofNullable()方法的用法与区别
of(...)方法会返回一个携带被指定的value,且该value不能为NULL;使用ofNullable(...)方法时,若指定的value不为NULL,则会返回携带有该value的Optional类实例,否则就返回一个value值为NULL的Optional类实例。我们可以通过实验来看看这两者之间的区别。原创 2022-04-26 17:14:03 · 12795 阅读 · 0 评论 -
Optional类的作用和应用场景
我们要养成看官方文档的好习惯,所以先来看看JDK 8官方文档上的解释:从文档中可以看出来,大概的意思就是说Optional是一个基于值的类,它里面会存放一个为NULL或不为NULL的值,也就是value,然后这个类里面的API都是围绕着这个值而被开发的。原创 2022-04-26 16:00:24 · 1658 阅读 · 0 评论 -
探究Collections.singletonList的作用和使用方法
Collections.singletonList被限定只被分配一个内存空间,也就是只能存放一个元素的内容。这样做的好处就是不会造成内存的浪费,不像ArrayList这样的类,不管你是需要多少内存,初始化就会被分配一定空间的内存,就会导致多余内存的浪费。所以在实际的开发中,如果有特殊要求只需要List存放一个的元素,就可以使用Collections.singletonList作为数据结构来存放数据啦。原创 2022-02-25 14:17:28 · 61014 阅读 · 1 评论 -
探究Java ArrayList的add(E e)方法
AarrayList的add()方法每次add新元素其实都是直接把形参对应的引用地址存入到数组中。所以我们在开发的时候就要格外的认识到这一点。因为,当我们调用add方法每次都传入相同引用地址的形参时,就会导致:只要改变List中某个元素的内部内容时,就会导致数组中其它下标的元素的内容也跟着一起被改变,这是因为,此时这个数组中的每个元素,实际上指向的都是堆中同一个对象。原创 2022-02-25 15:51:45 · 2684 阅读 · 2 评论