貌似前面一篇的存储空间的测试木有弄上来。。。这里在把代码附上吧:
package cn.java1118;
public class TestMemory {
public static void main(String[] args) {
System.out.println("刚开始时----虚拟机上空闲的内存量为:"+Runtime.getRuntime().freeMemory());
System.out.println("刚开始时----虚拟机上内存总量为:"+Runtime.getRuntime().totalMemory());
System.out.println("刚开始时----虚拟机试图使用的最大内存量为:"+Runtime.getRuntime().maxMemory());
//调用完一个hashmap之后
MyHashMap04<String, String> map = new MyHashMap04<String, String>();
for(int i=0;i<1000000;i++){
map.add(""+i, ""+i*100);
}
System.out.println("调用了hashmap之后----虚拟机上空闲的内存量为:"+Runtime.getRuntime().freeMemory());
System.out.println("调用了hashmap之后----虚拟机上内存总量为:"+Runtime.getRuntime().totalMemory());
System.out.println("调用了hashmap之后----虚拟机试图使用的最大内存量为:"+Runtime.getRuntime().maxMemory());
//开辟同样大的数组空间之后
// String[] aaa = new String[1000000];
// for (int i = 0; i < 1000000; i++) {
// aaa[i] = new String("aaa");
// }
// System.out.println("调用数组之后----虚拟机上空闲的内存量为:"+Runtime.getRuntime().freeMemory());
// System.out.println("调用数组之后----虚拟机上内存总量为:"+Runtime.getRuntime().totalMemory());
// System.out.println("调用数组之后----虚拟机试图使用的最大内存量为:"+Runtime.getRuntime().maxMemory());
}
}
刚开始时----虚拟机上空闲的内存量为:4868664
刚开始时----虚拟机上内存总量为:5177344
刚开始时----虚拟机试图使用的最大内存量为:832438272
调用数组之后----虚拟机上空闲的内存量为:16260656
调用数组之后----虚拟机上内存总量为:44433408
调用数组之后----虚拟机试图使用的最大内存量为:832438272
刚开始时----虚拟机上空闲的内存量为:4905008
刚开始时----虚拟机上内存总量为:5177344
刚开始时----虚拟机试图使用的最大内存量为:832438272
调用了hashmap之后----虚拟机上空闲的内存量为:69518912
调用了hashmap之后----虚拟机上内存总量为:169803776
调用了hashmap之后----虚拟机试图使用的最大内存量为:832438272
这是我测试了几次的效果。。。每次测试的时候都是使用hashmap比数组所余下的空间要大一些,为了试验的准确性,我是顺者测,逆着测,重启eclipse测,开机重启测。。。各种测啊。。。结果都差不多。。。终于搞定了!!!!!
但我发现了,我的代码还得大大修改。。。暂时先这样吧。。。
<!--EndFragment-->
分享到:
相关推荐
综上所述,`java-hash.7z` 工具包可能包含用于Java环境下的各种哈希计算工具和示例,帮助开发者进行数据校验、安全存储、性能优化等工作。通过理解和应用这些哈希计算技术,可以提升软件的安全性和效率。
通过上述分析,我们可以看到Blizzard的Hash表实现不仅体现了对散列技术的深刻理解,而且还展示了如何利用多个散列值来进一步提高Hash表的性能和准确性。这种技术尤其适用于处理大量数据的情况,能够显著减少冲突的...
在Java编程中,Map接口是用于存储键值对的数据结构,而Java提供了多种Map的实现,包括TreeMap、HashMap和ConcurrentSkipListMap。本文主要比较了这三种Map的性能,尤其是在插入和查找操作上的效率。 1. **TreeMap**...
哈希表,又称为散列表,是一种数据结构,它通过使用散列函数将键(Key)映射到数组的特定位置来实现快速访问。在Java中,哈希表的实现主要依赖于`java.util.HashMap`类,它是基于哈希表的Map接口实现。在这个Java版...
- **选择高效的算法和数据结构**:例如,使用哈希表而不是链表进行查找操作。 - **避免不必要的计算**:如文档中提到的,优化算法的关键部分,特别是那些占总运行时间较大比例的部分。 - **利用缓存技术**:通过...
本课件“数据结构 课件java版本”是基于Java编程语言来讲解这一主题的,旨在帮助学生和开发者深入理解数据结构的基本概念,并掌握用Java实现这些数据结构的方法。 在Java中,数据结构主要分为以下几类: 1. **数组...
Ketama一致性哈希算法由Last.fm的工程师开发,其设计目标是优化分布式哈希表的性能,特别是在处理大量小键值对时。它通过引入虚拟节点的概念,提高了哈希空间的分布均匀性,减少了因节点变动导致的数据迁移。 1. **...
哈希表(Hash Table)是一种通过哈希函数快速定位数据的数据结构,实现了键值对的快速查找。Java中的哈希表主要由`java.util.HashMap`和`java.util.Hashtable`类代表,具有O(1)的平均查找时间复杂度。 六、高级排序...
UTHASH 是一个开源的 C 语言库,提供了一种简单且高效的哈希表实现,用于在 C 代码中快速查找和管理数据结构。这个库的主要功能是提供一个宏定义的集合,可以方便地将结构体转化为哈希表,进而进行添加、删除、查找...
在给定的“Java-codes.rar_HASHJAVA_huffman”压缩包中,包含了多个与Java编程相关的示例代码,主要涉及哈夫曼编码(Huffman Coding)、快速排序(Quicksort)、哈希表(Hash)以及一种名为“q_sort”的排序算法。...
通过以上分析,我们可以看出,PersistentIdealHashTree的Java实现不仅涉及到数据结构的设计和优化,还需要考虑并发编程中的线程安全问题。理解并掌握这种数据结构的实现原理,对于提升Java程序员在大数据处理和并发...
在Java编程语言中,哈希表(Hash Table)是一种常用的数据结构,它的实现通常通过`Hashtable`类。这个数据结构提供了快速的插入、删除和查找操作,其平均时间复杂度为O(1)。`Hashtable`是Java集合框架的一部分,位于...
哈希表,也被称为Hash Map,是计算机科学中一种高效的数据结构,用于存储键值对。它通过一种称为哈希函数的过程将键映射到数组的特定位置,从而实现快速的查找、插入和删除操作。在哈希表中,查找时间通常接近常数...
在本压缩包“Java算法题,数据结构分析和实现.zip”中,主要涵盖了与Java编程相关的算法题目以及数据结构的深入分析和实现。数据结构是计算机科学中的核心概念,它研究如何有效地组织和存储数据,以便高效地进行访问...
redis使用常见问题及性能优化思路 redis高可用及高并发实战 缓存击穿、缓存雪崩预防策略 Redis批量查询优化 Redis高性能集群之Twemproxy of Redis 数据存储 MongoDB NOSQL简介及MongoDB支持的数据类型分析 ...
8. 数据结构的选择:在选择数据结构时,需要考虑到ハシ表、树形结构、图结构等不同的数据结构的优缺点,并选择合适的数据结构来实现哈希算法。 9. 安全性问题:在实现哈希算法时,需要考虑到安全性问题,例如选择...
在Java中实现一致性哈希,可以使用JDK自带的`java.util.HashMap`或者第三方库如Google的Guava库中的`com.google.common.hash.Hashing`类来计算哈希值。然后,为了实现环形结构,可以自定义一个`Node`类表示节点,并...
5. Hash表查找效率: 最好的情况下,哈希表的查找复杂度为O(1),这是理想情况下的常数时间复杂度,因为哈希函数能直接定位到数据。 --- 第二部分软件工程知识点: 1. 软件能力成熟度模型(CMM): CMM有5个成熟...
一致性哈希算法是一种分布式哈希表(Distributed Hash Table, DHT)的解决方案,它主要应用于分布式缓存、负载均衡等领域。在Java中,一致性哈希算法能够解决节点动态增减时,数据映射关系的稳定性和高效性问题。...