Java连载151-JUnit简介以及HashMap初步分析
2021/12/16 14:11:53
本文主要是介绍Java连载151-JUnit简介以及HashMap初步分析,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、配置JUnit环境
-
JUnit是一个集成测试单元框架,我们先下载软件包,来配置环境
package com.bjpowernode.java_learning; public class D149_TestJunit { String message = "hello world"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testPrintMessage() { assertEquals(message, messageUtil.printMessage()); } } class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(TestJUnit.class); for (Failure failure: result.getFailures()) { System.out.println(failure.toString()); } System.out.println(result.wasSuccessful()); } }
序号 | 方法 | 描述 |
---|---|---|
1 | void assertEquals(boolean expected, boolean actual) | 检查两个变量或者等式是否平衡 |
2 | void assertFalse(boolean condition) | 检查条件是假的 |
3 | void assertNotNull(Object object) | 检查对象不是空的 |
4 | void assertNull(Object object) | 检查对象是空的 |
5 | void assertTrue(boolean condition) | 检查条件为真 |
6 | void fail() | 在没有报告的情况下使测试不通过 |
二、HashMap详解
1.发展历程
-
在JDK7的时候,HashMap是采用“数组+链表”的数据结构进行存储,使用链表是为了能够解决hash值重复的时候,存储节点的方案。
-
在JDK8之后,HashMap是采用“数组+链表+红黑树”的数据结构,使用红黑树进行查找的时候能够提高效率,它的搜索时间复杂度是O(log(n)),而链表的搜索时间复杂度是O(n),在默写状况下链表会转化成红黑树
2.链表转换成红黑的条件
-
链表的长度超过8且HashMap中的节点超过64个
-
如果链表长度超过8,但是节点还没有超过64,会先对数组进行扩容
3.关键代码
// 链表长度大于8的时候转换代码为 if (binCount >= TREEIFY_THRESHOLD - 1) treeifyBin(tab, hash);
-
table长度为64的时候体现在 treeifyBin 方法中的这段代码
int n, index; Node<K,V> e; if (tab == null || (n = tab.length) < MIN_TREEIFY_CAPACITY) resize();
4.为什么转换红黑树的阈值是8
-
根据源码的解释,是根据概率统计中的泊松分布进行制定的规则,在数量达到8的时候,概率已经小到0.00000006,数量更多的时候,概率就更小了,因此选取了8这个阈值。
扫VX 领Java资料,前端,测试,python等等资料都有
这篇关于Java连载151-JUnit简介以及HashMap初步分析的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)