
Java
文章平均质量分 92
Java知识点经验总结
iwgd1
这个作者很懒,什么都没留下…
展开
-
实现简易LinkedList
Java 中的 LinkedList 相对于 ArrayList 使用的频率比较小,它实现了java.util.List 接口, 虽然它与ArrayList都实现了该接口但是内部实现差异非常大,LinkedList内部是用链表实现的,这就决定了LinkedList的随机访问操作非常低效,时间复杂度为O(n);单次插入效率为O(1), 但是每插入一次都要伴随着一次查找,所以单次插入效率同样低下,但是如果用ListIterator连续做插入操作则效率很高。在头部和尾部做访问和插入操作效率都很高,基于这个原因可原创 2020-11-15 22:54:28 · 164 阅读 · 1 评论 -
实现简易ArrayList
Java 中的 ArrayList 可以说是使用频率最高的容器类实现,它实现了java.util.List 接口,实现这个接口的还有一个相对来说使用比较少的LinkedList, 虽然接口相同但是内部的实现还是有很大差异的,具体来说ArrayList正如它的名称所示内部是用数组来实现的,这就决定了ArrayList的随机访问操作非常高效,时间复杂度为O(1), 但是也因为这个原因其随机插入效率很差为O(n), 在末尾插入元素则是例外。具体实现简单来说就是初始化一个数组,随着元素的插入和容量不够或即将不够使进原创 2020-11-15 22:21:33 · 169 阅读 · 0 评论 -
java覆盖equals注意事项
覆盖equals方法须要遵守通用约定:这里需要重点关注的情况是: 子类继承父类并且扩展了新的比较字段时,稍有不慎就会违反对称性或者传递性。如图,如果是 父类.equals(子类) 的情况,父类是看不到字段3的,这时如果进行比较一定是返回 true, 但是反过来 子类.equals(父类) 有两种情况:第一种情况是返回 false, 这种情况就违反了对称性。第二种情况是返回 true,这种情况符合对称性,但是违反了传递性以上的情况中,父类中一般都是这样实现的 class Point原创 2020-08-09 21:49:12 · 450 阅读 · 0 评论 -
关于java字符串 “ab” + “cd“ 创建了几个对象
关于 String s = “ab” + “cd” 创建了几个字符串对象,首先前提是在程序其他地方没有涉及"ab"、“cd”和“abcd”的字面量以及拼接操作。如果关注过此类问题应该会知道这句代码只会产生一个"abcd"对象,不会产生“ab”、“cd”字符串对象,那么怎么证明呢。第一种方式可以通过javap工具产生类的字节码来查看,首先先上出测试代码import java.util.Scanner;public class StrTest1 { public static void main(St原创 2020-08-02 18:23:32 · 1358 阅读 · 0 评论 -
并查集应用——生成随机迷宫
在读《数据结构与算法分析Java语言描述一书中》,在并查集章节的最后,作者给出了一个并查集的应用:生成随机迷宫此处作者给了思路,但是没有给出任何代码,所以自己实现了出来,先上最终效果图:页面是用的thymeleaf,用表格实现,方块区域与墙壁都是一个单元格,后端准备好样式直接在页面显示。首先先造一个没有路的迷宫:相关代码:public class Item {//元素所在索引private Integer index;//元素宽度pri原创 2020-07-29 12:39:34 · 1142 阅读 · 0 评论 -
Java Heap Pollution
当Java 泛型和可变参数配合使用时IDE会给出该警告:***Type safety: Potential heap pollution via varargs parameter args***,字面意思潜在的堆污染,不太能理解什么意思,百度一下没有找到好的解释,遂查阅Java相关文档和stackoverflow, 再结合自己的思考得出了自己的看法。...原创 2020-07-19 17:36:02 · 1331 阅读 · 0 评论