摘要: 首先,必须强调一点:String Pool不是在堆区,也不是在栈区,而是存在于方法区(Method Area)解析:String Pool是常量池(Constant Pool)中的一块。我们知道,常量就是不可以再改变的值,给它建一个池子很明显是为了加快程序运行的速度;在一个程序中,常量和变量是相对存在的;变量因为可变性所以一般存在于栈中,而常量去作为一个特殊群体被存在在常量池中。常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。--- (很明显在方法区)它包括了关于类、方法、接口等中的常量,也包括字符串常量(这个就是Sring Pool啦 阅读全文
posted @ 2013-11-23 17:20 LifeStudio 阅读(2116) 评论(0) 推荐(0) 编辑
摘要: 使用,必须要知道其原理,在课堂上学过散列函数的用法及其原理。但一直不知道怎么实践。 后来,在实际项目中,需要做一个流量分析预处理程序。每5分钟会接收到现网抓来的数据包并解析,每个文本文件大概200M左右,数据量颇多。要求根据用户ID和协议ID为key,计算其流量平均值。 起初的想法是按行加载每一条数据并放入ArrayList中,然后写个算法比较每一个数据的用户ID和协议ID,如果一样则累加其流量。测试中发现其效率极低,为此第一反应是改进算法。怎么做才更高效呢?后来想到了课堂中学到的散列函数,于是写了个MD5散列函数将用户ID和协议ID为key进行散列,若得到的结果相同则累加其流量,循环... 阅读全文
posted @ 2013-11-23 15:01 LifeStudio 阅读(1331) 评论(0) 推荐(0) 编辑