栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java连载151-JUnit简介以及HashMap初步分析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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());
	}
}

序号方法描述
1void assertEquals(boolean expected, boolean actual)检查两个变量或者等式是否平衡
2void assertFalse(boolean condition)检查条件是假的
3void assertNotNull(Object object)检查对象不是空的
4void assertNull(Object object)检查对象是空的
5void assertTrue(boolean condition)检查条件为真
6void 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 e;
        if (tab == null || (n = tab.length) < MIN_TREEIFY_CAPACITY)
            resize();

4.为什么转换红黑树的阈值是8
  • 根据源码的解释,是根据概率统计中的泊松分布进行制定的规则,在数量达到8的时候,概率已经小到0.00000006,数量更多的时候,概率就更小了,因此选取了8这个阈值。
三、源码:
  • github路径:https://github.com/ruigege66/Java/blob/master/newJava/src/com/newJava/D151_HashMapAnalysis.java
  • CSDN:https://blog.csdn.net/weixin_44630050
  • 博客园:https://www.cnblogs.com/ruigege0000/
  • 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/666847.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号