WeakHashMap原理疑点----望大佬一起探讨 [问题点数:20分]

Bbs1
本版专家分:0
结帖率 71.43%
Bbs1
本版专家分:0
Bbs2
本版专家分:340
weakhashmap使用原理
1、深入理解<em>weakhashmap</em>: 弱引用:解决了当key不正常使用时,CG能清理;而强引用 即普通类如stringbuffer,虚拟机会抛出内存溢出的error (程序不能运行),这证明了异常可以处理,而error不能被try catch处理,比较严重。 notes:不正常使用,即当map对象保存的a移除且为null,同时只有weakhash保存a时,此时<em>weakhashmap</em>自动放弃。
WeakHashMap 用法和原理
 在《Effective Java》一书中第六条,消除陈旧对象时,提到了weakHashMap,看了下还是适用的,即在我们使用短时间内就过期的缓存时最好使用weakHashMap,它包含了一个自动调用的方法expungeStaleEntries,这样就会在值被引用后直接执行这个隐含的方法,将不用的键清除掉。  测试了一下 package com.alibaba.itbu.job.billing...
一起探讨
#include rnrnusing namespace std;rnrnclass studentrnrnrnrnpublic:rn student(int height,char weight)rn rn cout<<
WeakHashMap
WeakHashMap map = new WeakHashMap();rnfor (int i = 0 ; i < 10000 ; i ++)rnrn map.put(new Integer(i) , new Integer(i));rnrnSystem.gc();rnSystem.out.println("isEmpty="+map.isEmpty()); // 1rnSystem.out.println(map); // 2rnSystem.out.println("size="+map.size()); // 3rnrn由于垃圾回收的不确定性,多次运行上述代码rn其间有出现这样的结果:rnisEmpty=falsernrnsize=0rnrn但是2处代码始终输出rnrn实在是不理解啊....
大佬们,望不吝赐教。
private void Form1_Load(object sender, EventArgs e)rn rn this.Text="动态控件使用示例";rn int num = 1;rn for ( int i=1;i;rn rn可以打开运行界面,但是点击生成的button时就会显示下面的东西。rn 发生了 System.IndexOutOfRangeExceptionrn HResult=0x80131508rn Message=索引超出了数组界限。rn Source=WindowsFormsApplication1rn
一起探讨数据库问题!!
在VB中如何用代码实现VB和SQL2000连接起来????
大家一起探讨下MYSQL中间件
目前我们公司一个项目遇到数据库I/O瓶颈,技术部讨论要部署一套中间件。rn了解了下 onexsoft 和 Mycat rn大家对这两个MYSQL中间件有什么看法 ?rn另:国内是否有专业团队或公司可以提供此类服务的 ?
一起探讨动态生成DataGrid
我的想法是:通过数据字典构造动态SELECT语句,实现数据的通用查询,基本的解决方法已经想好,可如何动态构造DataGrid呢?
几个小问题,一起探讨
1.如何实现提交文本换行? Replace(str,"\n"," ")不行呀rn2.如何上传到指定目录,如如何copy到upload目录?rn3.如何得到上传图片的高度和宽度?
opencv 与 DirectShow一起探讨
[align=right][/align]用Opencv读取不了MP4和WMV 所以使用DirectShow 讲视频转化为IplImagern用下面的程序可以每秒读一帧讲视频显示出来。。rnCFileDialog dlg(TRUE, _T("*.mp4"), NULL,OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_HIDEREADONLY,_T("video files (*.avi) |*.avi|All Files (*.*)|*.*||"),NULL);rnrnCString path ;rnrndlg.m_ofn.lpstrTitle= _T("OpenVedio");rnrnif (dlg.DoModal() == IDOK) rnrnpath = dlg.GetPathName(); rnelsernreturn;rnIplImage* m_pFrame = NULL; // Declare IPL/OpenCV image pointerrnrnHRESULT hr;rn// 定义IMediaDet接口实例rnCComPtr< IMediaDet > pDet;rnrnhr = pDet.CoCreateInstance(__uuidof(MediaDet));rnif (FAILED(hr))rnreturn;rnrn// 将影片文件名转换成BSTR类型rnCComBSTR openBSTR(path);rn// 设置IMediaDet接口的文件关联rnhr = pDet->put_Filename(openBSTR);rnif (FAILED(hr))rnreturn ;rnrn// 从影片中检索视频流和音频流rnlong lStreams;rnhr = pDet->get_OutputStreams(&lStreams);rnif (FAILED(hr))rnreturn ;rnrn// 取出影片的视频流,因为帧的信息是保存在视频流中的rnbool bFound = false;rnfor (int i=0; iput_CurrentStream(i);rnif (SUCCEEDED(hr))rnhr = pDet->get_StreamType(&major_type);rnif (FAILED(hr))rnbreak;rnif (major_type == MEDIATYPE_Video)rnrnbFound = true;rnbreak;rnrnrnif (!bFound)rnreturn ;rnrnlong width = 0, height = 0; // 存储位图的宽和高(单位:象素)rnAM_MEDIA_TYPE mt;rnhr = pDet->get_StreamMediaType(&mt);rnif (SUCCEEDED(hr))rnrnif ((mt.formattype == FORMAT_VideoInfo) && (mt.cbFormat >= sizeof(VIDEOINFOHEADER)))rnrn// 得到VIDEOINFOHEADER结构指针,VIDEOINFOHEADER结构包含一些与视频rn// 有关的信息,其中含有BITMAPINFORHEADER结构rnVIDEOINFOHEADER *pVih = (VIDEOINFOHEADER*)(mt.pbFormat);rnwidth = pVih->bmiHeader.biWidth;rnheight = pVih->bmiHeader.biHeight;rnif(height < 0 ) height *= -1;rnrnelsernhr = VFW_E_INVALIDMEDIATYPE;rnif(mt.cbFormat != 0)rnrnCoTaskMemFree((PVOID)mt.pbFormat); rnmt.cbFormat = 0;rnrnrnif (mt.pUnk != NULL)rnrnmt.pUnk->Release();rnmt.pUnk = NULL;rnrnrnrnif (FAILED(hr))rnreturn ;rnrnlong size;rndouble time = 0.0;rndouble totaltime;rnrndouble rate ;rnrn// 获取整个视频的时间长度rnpDet->get_StreamLength(&totaltime);rn//每秒多少帧rnpDet->get_FrameRate(&rate);rnrncvNamedWindow( "result", 1 );rnrn//totaltime = totaltime*rate;rnm_pFrame = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3);rn//每秒读一帧rnfor(time=0.0; time EnterBitmapGrabMode(time); rnif(FAILED(hr)) rn rnprintf( "Failed in EnterBitmapGrabMode! hr=0x%x\r\n", hr ); rnreturn ; rn rnrnrnCComPtr < ISampleGrabber > pGrabber = NULL;rnhr = pDet->GetSampleGrabber(&pGrabber);rnrnpGrabber->GetCurrentBuffer(&size, NULL);rnlong m_nBufferSize = size;rnpGrabber->GetCurrentBuffer(&m_nBufferSize, (long*)m_pFrame->imageData);rn*/rn///*rnhr = pDet->GetBitmapBits(time, &size, 0, width, height);rnrnif (FAILED(hr))rnreturn ;rnrnchar *pBuffer = new char[size];rnif (!pBuffer)rnreturn ;rnhr = pDet->GetBitmapBits(time, 0, pBuffer, width, height);rnif (FAILED(hr))rnreturn ;rnrnm_pFrame->imageData = pBuffer + sizeof(BITMAPINFOHEADER);rn//*/rncvFlip(m_pFrame);rn//detect_and_draw(m_pFrame);rncvShowImage( "result", m_pFrame );rncvWaitKey( 10 );rndelete[] pBuffer;rn//AfxMessageBox("t");rnrnrncvReleaseImage(&m_pFrame);rncvDestroyWindow("result");rnrn我用来读WMV是可以正常每秒显示一帧,但是为什么读MP4格式的视频的时候一直停在第一帧?高手帮忙.....急~~~~~
欢迎一起探讨智能计算!
最近看了一篇文章,觉得不错,有研究这方面的人吗?我想研究一下来做一个P2P软件!rnrnrn浅谈智能计算rnrn张 铃rn安徽大学人工智能研究所rnrn摘要:本文简单介绍近年来在人工智能界兴起的新的研究方向——智能计算的技术,以及介绍作者近年来在这方面的一些研究成果rnrn一. 引rn生命在长期进化过程中,积累了很多新奇的功能,人类很早就从中得到启发而改进自己的工具,如史书中记戴“见蓬转而做车辑”,传说鲁班被茅苇划破,而发明锯子……也许早先的发明,只是偶然的模仿和发现,后来人们已有意识地进行这方面的研究,这就是“仿生学”。仿生学顾名思义就是模仿生物的某些功能的学问。有名的例子很多,如模仿海豚皮而构造的“海豚皮游泳衣”、科学家研究鲸鱼的皮肤时,发现其上有沟漕的结构,于是有个科学家就依照鲸鱼皮构造,造成一个薄膜蒙在飞机的表面,据实验可节约能源3%,若全国的飞机都蒙上这样的表面,每年可节约几十亿。又如有科学家研究蜘蛛,发现蜘蛛的腿上没有肌肉,有脚的动物会走,主要是靠肌肉的收缩,现在蜘蛛没有肌肉为什么会走路?经研究蜘蛛不是靠肌肉的收缩进行走路的,而是靠其中的“液压”的结构进行走路,据此人们发明了液压步行机……总之,从自然界得到启迪, 模仿其结构进行发明创造.这就是仿生学. 这是我们向自然界学习的一个方面.另一方面,我们还可以从自然的规律中得到启迪,利用其<em>原理</em>进行设计(包括设计算法),这就是智能计算的思想.rnrn二. 什么是智能算法rn 什么是智能计算。智能计算,也有人称之为“软计算”,虽然至今没有一个统一的定义,但我们可以这样来概括它。rn智能计算就是借用自然界(生物界)规律的启迪,根据其<em>原理</em>,模仿设计求解问题的算法。rn 目前这方面的内容很多,如:人工神经网络技术、遗传算法、进化规划、模拟退火技术和群集智能技术等。rn 下面我们简单介绍这方面的一些内容和我们最近几年在这些方面研究的一些成果。rnrn三. 群体(群集)智能(Swarm Intelligence)rn rn什么是群集智能rn群居昆虫以集体的力量,进行觅食、御敌、筑巢的能力。这种群体所表现出来的“智能”,就称之为群体智能。如蜜蜂采蜜、筑巢、蚂蚁觅食、筑巢等。rn从群居昆虫互相合作进行工作中,得到启迪,研究其中的<em>原理</em>, 以此<em>原理</em>来设计新的求解问题的算法。下面介绍人们最早研究的蚂蚁算法rnrn3.1 蚂蚁算法rn蚂蚁觅食时,在它走过的路上,留下外激素,这些外激素就象留下路标一样,留给后来“蚁”一个路径的标志。后面的蚂蚁,就会沿着有外激素的路径行走(外激素越多引诱蚂蚁的能力就越强)。科学家们对此进行过试验:用人造的外激素在纸上画上一条路径,对蚂蚁
一起探讨 JavaScript 的对象
<em>一起</em><em>探讨</em> JavaScript 的对象 对象是多个属性的动态集合,它有一个链接着原型的隐藏属性(注:__proto__)。 一个属性拥有一个 key 和一个 value 。 属性的 key 属性的 key 是一个唯一的字符串。 访问属性有两种方式:点表示法和括号表示法。当使用点表示法,属性的 key 必须是有效的标识符。 let obj = { message : &quot;A mess...
初学者的苦恼---大家一起探讨探讨
<>看的我晕头转向, 晦涩的翻译加上复杂难以理解的知识, 我甚至怀疑这本书是不是值得我这么费劲地啃下去了.rn各位同初学, 你们感觉怎么样?rn各位老手们, 你们呢? 当初有没有这样的感受, 或者有更好的资料或途径吗?rn
有熟悉rip的吗?一起探讨探讨
my mail:yudi1226@163.netrn
java 弱哈希映射表WeakHashMap原理
弱哈希映射表的<em>原理</em>其实很好理解,首先我们要知道HashMap的<em>原理</em>。如果我们将一个对象a以及他的引用A作为一个key值关联某个Value值后put入HashMap中,那么这个a对象的引用不仅仅有A,而且有一个HashMap中持有的引用,一共两个引用。WeakHashMap的<em>原理</em>也相同,此时在WeakHashMap中的a也持有两个引用,一个是A,另一个是WeakHashMap的散列表持有的引用。那么现
WeakHashMap的使用场景
WeakHashMap在tomcat中当缓存的理解
《Java源码分析》:WeakHashMap
《Java源码分析》:WeakHashMap这篇博文就来看下WeakHashMap这个类的源码。博文的思路也是从继承结构、构造方法、常见的方法这些方面来分析WeakHashMap这个类的源码。说明:WeakHashMap也是一个“数组和链表”的结合体1、WeakHashMap的继承结构 public class WeakHashMap extends Abstract
WeakHashMap的学习笔记
1、WeakHashMap的简单介绍 WeakHashMap也是Map中的一种,它的特殊之处在于它其中的对象,可能会被GC自动回收,也就是数据会凭空消失,即使程序员没有调用remove()或者clean()方法,那么你就会有疑问了,这种数据会凭空消失,那为什么还要设计这种类?其实答案是WeakHashMap主要用于缓存的情况,缓存一般用于内存不够的情况下,设置缓存可以大大提高系统的效率,缓存的空间...
疑点处理导入疑点的信息
导入<em>疑点</em>的信息,从一张表里导入到另一张表的过程
WeakHashMap 源码分析
一、类图         二、源码分析        a.  WeakHashMap 的 Key 是弱引用的,也就是 Key 放在 map 结构中不阻止对其进行垃圾回收        b.  WeakHashMap 的 Value 是强引用,只有对应的 Key 被回收,才会回收        c.  Value 不应直接或间接引用 Key,否则会阻止对 Key 的回收,一种处理方法是插入...
WeakHashMap源码分析
基于jdk1.8源码实现的。 WeakHashMap也是一个“数组和链表”的结合体。 继承结构 public class WeakHashMap&lt;K,V&gt; extends AbstractMap&lt;K,V&gt; implements Map&lt;K,V&gt; 通过上面可以看到继承了AbstractMap类,实现了Map接口。 与HashMap的区别...
一起探讨控件数组的问题
有64个button,每一个的onclick事件处理的事情差不多,只是一个index号不同,请问在delphi里怎么做呢?我不想把一段代码粘贴63次。rn在vb里有index这个属性,据说delphi没有,怎么实现呢?rn大家<em>一起</em>讨论讨论巴。
请大家一起探讨一下
我想了解一下现在国内外比较先进的企业网络建设方案,请大家赐教。
有兴趣的朋友一起探讨下~~~
在域一机器上执行delete from [链接服务器名].库名.dbo.table_a where a in(select a from table_b) -----链接服务器名是域内的另一台机器(配置链接服务器绝对正确)rnrn出现以下错误: rn服务器: 消息 7346,级别 16,状态 2,行 1 rn未能从 OLE DB 提供程序 'SQLOLEDB' 中得到行的数据。 rn[OLE/DB provider returned message: 行句柄引用了一个已被删除的行或被标识为删除的行。] rnOLE DB 错误跟踪[OLE/DB Provider 'SQLOLEDB' IRowset::GetData returned 0x80040e23]。 rnrn将表table_b直接导到链接服务器上执行ok(错误消除.)rn何解?rn
大家一起探讨下这道题
14、在作为外部接口的结构体中,不要使用下列哪种数据类型:()rna)Int b)long c)float d)doublernrn不太清楚什么意思
一起探讨一个SQL语句
调优<em>原理</em>上有:rn用exist替换distinctrnrn语句select distinct A,B from a where C=?rnrn这个单表的语句能够将distinct替换吗
一起探讨什么是美
什么是美呢?美是能够引起人们愉悦、舒畅、振奋或使人感到和谐、圆满、轻松、快慰、满足或让人产生爱(或类似爱)的情感、欣赏感、心旷神怡感或有益于人类、有益于社会的客观事、物的一种特殊属性。 从最浅层次出发, 美,是一种感受。 巍巍青山、云蒸霞蔚是美; 春日落英、月明风清是美; 火树银花、琉璃碧瓦是美。 生活中, 美的事物有很多, 但丑的事物也不少: 马路边上堆放了一撮垃圾、
请进,一起探讨Java领域
在Java领域中,主要用于什么开发?一般公司要求什么样的Java人才?具备什么样的技术,才能在这个领域中立足?一般公司招Java人才,主要用于什么样的开发?还有Java适合应用程序的开发吗?
病毒代码大家一起探讨
大家可以试试的嘛,望高手多多指教。谢谢!
一起探讨java的开发群
新开个群(22913571)rn给工作朋友一个<em>一起</em><em>探讨</em>问题的家
Windows服务编写原理探讨
详细讲述如何建立一个自启动的windows服务,<em>原理</em>和代码都有
AlphaGo原理探讨
AlphaGo<em>原理</em><em>探讨</em>由于状态空间无法穷举,博弈类游戏AI都采用了(启发式)搜索算法,即从当前状态出发,尝试可靠的行动,达到终局或一定步数后停止,根据后续局面的优劣反馈,采取最优行动。为了评估行动是否可靠,引入策略函数Q(a|s)和评估函数V(s),策略函数Q即在当前状态(state)下能采取的行动(action),评估函数V对当前状态评分,AlphaGo采用卷积神经网络拟合这两个函数。AlphaG
探讨翻译软件的编写原理
欢迎大家参加,欢迎大家给出关于这方面资料的网址!~
手机伴侣的原理探讨
小弟最近看到,我们这里在卖手机伴侣,是在单卡手机里面可装上,实现双卡双待,表面是一个芯片连接的两个GSM,我在网上查资料,不过褒贬不一,有的说,是用程序修改的什么,有的说是呼叫转移。rn 不知道大哥们研究过没有,rn 顺便想问问双卡双待的<em>原理</em>是什么呢,怎么可变辨别卡呢》和这个手机伴侣一样吗?
DHT原理及功能探讨
本文介绍了DHT的<em>原理</em>,以及DHT的功能,介绍的很详细。有需要的,可以下载看看。
探讨下启动盘的制作原理
linux的系统启动引导盘是如何生成的??注意,问的不是如何制作引导盘,而是如何制作不通的boot.img。如redhat就有boot.img,bootnet.img,boothd.img。redflag不提供直接网络安装,那么,如果要实现网路安装,该怎么制作相应的bootxxx.img呢??
java foreach原理探讨
foreach的<em>原理</em>: 首先我们给出一个简单的例子public class Demo1 { public static void main(String[] args) { String[] i={"0","1","2","3","4","5","6"}; for(String j:i){ System.out.println(j); } } }再看看他的字节码  ja
探讨Unity3d跨平台原理
许久未在Csdn上写过东西了,打算好好把所学知识归集在此给大家交流。 今天要写的是u3d是如何实现跨平台,众所皆知U3d可以使用多种语言写脚本还可以混合使用。u3d使用的是mono这个跨平台框架
QQ原理探讨
OICQ的服务器端做了那些东东。要记那些信息。而客副端字间又正样享福通行的。
探讨短信软件开发原理
我想问一下短信开发的软件流程是怎么样的?他是C/S模式的。rn用的是Oracle9i数据库。要用到联通,电信等部门。rn我想问一下他们的工作<em>原理</em>是什么?rn怎样把一条短信发送到客户的手机上的。rn用Delphi开发的话需要那些方面的知识。rn请各位帮帮忙好吗 ?rn我的QQ:38436210rn有提议的加我啊,谢谢
OFDM原理探讨
学OFDM时,感觉自己好象懂了又好象不懂。我只是知道OFDM是将串行的数据变成并行的数据传输,至于具体的细节问题从没有认真考虑。后来因为毕业设计的需要,使得我需要弄明白OFDM的<em>原理</em>,我指的是其中的细节问题,这却花了我不少时间。我现在想把我自己对OFDM的理解写出来,这可能并没有什么创新,但我希望能够帮助那些刚接触OFDM的读者,这些读者可能像我当初那样,曲解了一些概念。
petshop的疑点
Assembly.Load(path).CreateInstance(className);rn这个到底有什么作用,用这些有什么优点,谢谢!
正则表达式疑点
基于--java 1. Matcher 的 useTransparentBounds(boolean b) 方法 --设置边界透明度,默认为false,例如单词边界 Pattern p = Pattern.compile("\\bvvv\\b"); Matcher m = p.matcher("aaavvv aaaaaaaaaa");
面试题的疑点
一。rn1.void Func(char str[100])rnrn printf("%d\n", sizeof(str));rnrn答案为4.这个答案为4的原因是不是一个字符串要占4个字节。rnrn二。改错题;rn2. int id[sizeof(unsigned long)];rn 这个对吗?为什么??rn
数据库设计的疑点
在进行数据库设计时,我想以B/S方式进行设计,可是对于后台的开发,思路总是有点不清楚,希望有过开发经验的朋友指导一下。特别是对于数据库管理员那一块有点乱。对于不同的管理员如何来管理???????????,
消息的疑点
书上这样说:rnWi n d o w s 的消息系统是由3 个部分组成的:rn• 消息队列。Wi n d o w s 能够为所有的应用程序维护一个消息队列。应用程序必须从消息队列中获取rn消息,然后分派给某个窗口。rn• 消息循环。通过这个循环机制应用程序从消息队列中检索消息,再把它分派给适当的窗口,然rn后继续从消息队列中检索下一条消息,再分派给适当的窗口,依次进行。rn• 窗口过程。每个窗口都有一个窗口过程来接收传递给窗口的消息,它的任务就是获取消息然后rn响应它。窗口过程是一个回调函数;处理了一个消息后,它通常要返回一个值给Wi n d o w s 。rnrn我想知道 应用程序从消息队列中检索消息 这一点:应用程序是怎样从消息队列中接收消息的;是被动的,还是主动的;如是主动的,那检索频率是怎样的(是通过时钟控制的吗?系统开销不是很大吗?)
点阵字库的疑点
在J2ME里面做手机游戏最痛苦的就是不同手机java虚拟机的字体大小不一样,导致,游戏内图片组件容纳不下原来的字。rn点阵字的<em>原理</em>,貌似是记录了每个字的组成像素点信息,这样,绘制出来的字就不会变化了,该是多大就是多大但是不明白的是:rn1,点阵字的信息怎么获得,java自己吗?假如有,怎么才能知道是自己需要的大小和风格rn2,为了游戏在不同手机上的移植性,有必要做一套点阵字库吗,要怎么做呢?
WeakHashMap遇到的问题
WeakHashMap&amp;lt;String, String&amp;gt; weakHashMap = new WeakHashMap&amp;lt;&amp;gt;(); weakHashMap.put(new String(&quot;qwe&quot;), &quot;qwe&quot;); System.out.println(weakHashMap.get(&quot;qwe&quot;)); Sy...
jdk源码分析之WeakHashMap
基本<em>原理</em>WeakHashMap特点是,当除了自身有对key的引用外,此key没有其他引用,那么WeakHashMap会在下次对WeakHashMap进行增删改查操作时及时丢弃该键值对,节约内存使用,此特性使得WeakHashMap非常适合构建缓存系统。 WeakHashMap是主要通过expungeStaleEntries函数的来实现移除其内部不用的entry从而达到的自动释放内存的目的。基本上只
jpa查询问题,望大佬解答下疑惑
为什么我用spring-data-jpa@query里面写sql查询出来的数据不是一个对象,而是查询的第一个字段的类型呢。
望各位大佬,帮我解决一下
最近自己在网上搭建了一个网站,也就是自己的Blog文章和个人介绍在上面,辛辛苦苦的搭建好了,过了一阵子后,再访问我的这个网站,浏览器就提示这是一个危险网站,这是为什么啊?我该怎么解决啊?
各位大佬,望闲暇时间指点一下
[img=https://img-bbs.csdn.net/upload/201803/20/1521530902_434383.png][/img]
if语句疑点
if (mainNode.css("background-image").indexOf("collapsed.gif") >= 0)rnrn请问为什么要=0呢?
TOMCAT部署疑点
我刚开始搞JSP,我想问一下,如果我工作目录设在D:\TEST,包和BEAN应该放在那边?
Table疑点
-
dynamic_cast疑点
#include rnusing namespace std;rnclass Arnrnpublic:rn int i;rn virtual void show()rn rn cout<<);rn return 0;rnrn程序输出结果是:Reference failed from A & to B &rn不解,为什么会转换失败呢?请各位仁兄指教
WeakHashMap的清除问题
代码如下:rn---------------------------------------------------------------------------------------------------rnimport java.util.*;rnrnpublic class Test14 rn public static void main(String[] args) rn Map map=new WeakHashMap();rn map.put("3", "future");rn map.put("2", "good");rn map.put(new String("1"), "LLL");rn rn System.out.println(map); //此处输出的是1=LLL, 2=good, 3=futurern System.gc();rn System.out.println(map); //而此处输出的是2=good, 3=futurern rnrnrnrn为什么改成"new String('1')"才能被清除?
求救:关于WeakHashMap的困惑
package statictest;rnimport java.util.*;rnclass Arn rn int a=3;rn String str="hello";rn rn public String toString() rn rn return str+String.valueOf(a);rn rnrnrnpublic class StaticTestrnrn public static void main(String[] args) throws Exceptionrn rn Map map=new WeakHashMap(); rn String a="a";rn String av="av";rn A ca=new A();rn map.put("ca", ca);rn map.put(a, av); rn System.out.println(map); rn System.gc(); rn a=null;rn ca=null; rn Thread.sleep(1000);rn System.gc(); rn System.gc(); rn System.out.println(map);rn rn /*运行结果:rn a=av, ca=hello3rn a=av, ca=hello3rn 两次一样*/rn rn Map map2=new WeakHashMap();rn map2.put("obj", new A());rn A xyz=(A)map2.get("obj");rn System.out.println(map2);rn xyz.a=10000;rn System.out.println(map2);rn /*运行结果:rn obj=hello3rn obj=hello10000rn 对象的成员变量可改变*/ rn rnrnrnrn疑惑1:rn为什么我把WeakHashMap的键设为了null,而且也调用了垃圾回收器,也让主线程休眠了一段时间,可是这个map还是不放掉这一对值?rn疑惑2:rnmap里的值存的一律是引用,可是为什么我将第一个map的键ca对应的值设为了null,可是它打印出来还是原来的值?而第二个map2里面我更改了它里面保存对象的成员值后,能反应出正确的结果?rn
JAVA基础(七)WeakHashMap
WeakHashMapWeakHashMap概述简单科普JVM中的引用强引用软引用弱引用虚引用WeakHashMap的数据结构源码分析属性clear()expungeStaleEntries()hash()resize()总结 WeakHashMap 概述 WeakHashMap和HashMap一样是一个散列表,并且键值都可以为null(key只能有一个null),它也同样有扩容机制,数据结构也基...
WeakHashMap存在的原因
垃圾回收器跟踪活动的对象,只要映射表对象(Map)是活动的,其中的所有桶也是活动的。因此,需要由程序员负责长期存活的映射表中删除那些无用的值。或者使用WeakHashMap完成这件事。当对键的唯一引用来自散列表条目时,这一数据结构将于垃圾回收器协同工作<em>一起</em>删除键/值对。下面是这种机制的内部运行情况。WeakHashMap使用弱引用(weak references)保存键。WeakReference对
基础数据机构之WeakHashMap源码分析
1.WeakHashMap 在HashMap实现上,在HashMap上增加Entry的SoftReference软引用功能   源码分析   Entry实体类继承WeakReference /** * The entries in this hash table extend WeakReference, using its main ref * field as
深入理解WeakHashmap
引自http://mikewang.blog.51cto.com/3826268/880775 WeakHashmap (一) 查看API文档,WeakHashmap要点如下: 1. 以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止...
强弱软虚引用 weakHashMap
强引用 这是最常见的引用关系,变量o对 new object()这个对象(下称对象xx)的进行引用,o持有对象的强引用,宁愿内存溢出也不清除强引用的内存 Object obj = new Object();//o 持有这个新new出来对象xx的强引用 //不需要之后 将obj置为null,这样对象xx就没有引用了,变为不可达,会在下次gc的时候回收掉 obj = null;//help GC ...
JDK1.8源码解读之WeakHashMap解读
WeakHashMap     继承:AbstractMap     实现:Map     1、key value皆可以为null     2、非线程安全的,线程安全可以使用Collections#synchronizedMap方式获得     3、本Map中被Weak的是key,value还是强引用的,在实现的源码中,调用get resize getTable方式时候通过expungeStale...
有没有志同道合的同志,一起探讨探讨一个有关硬盘的问题?
我最近看了一篇文章,讲了有关双磁头硬盘的问题,里面说到:两个磁头一个负责读,一个负责写,这样上网时,只允许只读磁头工作,这样可以防止黑客的攻击。rn看完后,我在想,能不能用软件的形式来实现,通过软件控制磁头在非写操作时的电流,特别是在上网时,可以防止别人对你的硬盘进行写操作,也可以防止网络病毒的入侵,如果需要下载文件,可以让其保存在一个虚拟盘或是内存上,断网后再通过一系列的安全检测后,将其存与硬盘之上。所需要的是这个软件必须有最高的优先权,最好是在开机之后就自动调用,所以需要将其存于BIOS内,这样就需要控制文件的大小,所以最好的语言还是汇编或是机器语。而且最好能在系统内能够找到这个文件的存在,以便可以随时关闭。rn不知道各位觉得我的想法怎么样?还是已经有人这么作过了?
高级应用话题(请资深专家一起探讨探讨
请资深专家<em>一起</em><em>探讨</em><em>探讨</em>:rnrn 1、在数据应用设计方面,如何考虑历史记录的查询?rnrn 如:有三个表,分别是单位表,部门表,人员表。rn 单位表,含单位编码,单位名称 字段rn 部门表,含单位编码,部门编码,部门名称 字段rn 人员表,含单位编码,部门编码,人员编码,人员名称 字段rnrn 一旦单位表,部门表 中 单位编码,部门编码,发生改变,即在单位、部门发生关停并转后,如何处理人员表中的人员记录,查询历史人员记录,如何处理单位、部门表中单位部门的历史记录查询问题。rnrn rnrn 2、表的ER关系和约束问题如何考虑?rnrn 在数据库教程中,表之间的ER关系,设计时都用主外键来实现。 rnrn 可是,在实际应用中,外键之类的确实不敢创建! 由于用户的水平基本偏低,万一把哪个单位给删了,建了外键的话,部门、人员的表岂不出问题了,有些数据库系统,会把部门、人员的表相关的数据全删了,有些数据库,则删不掉,提示一大堆错误!rnrn 主外键的是否创建如何权衡比较妥当?rnrnrn 3、如何做到应用和数据库平台的无关性?rnrn 许多应用软件,在不同的省份实施,不同的省份有自己的数据库选择规定。比如在新疆,该应用的数据库系统全省用SYBASE系统,在内蒙,用ORACLE系统,在山东用DB2系统... 我们在开发数据库应用时,如何实现这样的应用系统的数据库部分设计,有什么办法实现应用系统的数据库无关性?rnrn 请资深专家<em>一起</em><em>探讨</em><em>探讨</em>
大家开发过3D游戏吗?进来一起探讨探讨
今天第一次接触3D游戏框架,感觉和2D的有很大的区别啊。唉,搞了一天了,也没有搞懂!一个问题是关于圆锥体贴图的问题,我自己画了一个可以旋转的圆锥体,我想把每个面都贴上图片,可是没有成功,有人知道如何做吗?谢谢!
C#和Java中二维数组的区别(大家一起探讨探讨
C#和Java中二维数组的区别(大家<em>一起</em><em>探讨</em><em>探讨</em>)
.NET技术群(上海站):1910102 一起探讨探讨
.NET技术群(上海站):1910102 <em>一起</em><em>探讨</em><em>探讨</em>吧.NET技术群(上海站):1910102 <em>一起</em><em>探讨</em><em>探讨</em>吧.NET技术群(上海站):1910102 <em>一起</em><em>探讨</em><em>探讨</em>吧.NET技术群(上海站):1910102 <em>一起</em><em>探讨</em><em>探讨</em>吧.NET技术群(上海站):1910102 <em>一起</em><em>探讨</em><em>探讨</em>吧
有用过pvcs软件的朋友吗?一起探讨探讨~!
我们可以通过mail或者msn<em>探讨</em><em>探讨</em>。我得mail: angular_lucy@hotmail.com
AutoCAD的高效绘图原理探讨。。。。。。。。
从平面绘图的角度来看,cad的绘图效率很高,基本上也看不见任何闪烁,但GDI能达到这种高度马??我写的程序,即使用双缓冲DC,裁减区技术,但一旦将表层的鼠标十字架延长到整个平面,800*600的绘图区,实时快速拖动图元时,总是有点不够平滑,好像十字架也歪了,这是为什么????高手指点
微信红包原理业务探讨
rn 一套进军大厂的阶梯课程,涵盖Redis分布式高可用,蚂蚁金服面试题分布式锁,高可用HA架构分为11章50集rnrnrn 核心内容:rnrnrn 1)基于大厂开发流程分析并实现微信红包实战、布隆过滤器转盘功能实战、高可用秒杀实战 rnrnrn 2)分布式锁实战,基于分布式锁讲解Lua脚本和源码分析rnrnrn 3)大厂面试题之Redis缓存持久化策略,剖析Redis底层持久化和过期机制 rnrnrn 4)面试分享高频大厂面试题之分布式系统高并发和高可用以及分布式一致性HASH算法<em>原理</em>;rnrnrn rn
关于WeakHashMap机制的疑惑
最近想对一些频繁访问且实时性不敏感的数据进行一个缓存,原本是想用HashMap做的,后来发现有个叫WeakHashMap的东西,看介绍貌似更适合我这个场景,我希望达到的是这样的效果:rn需要取数据时向缓存管理器请求,当缓存管理器在缓存(HashMap或者WeakHashMap)中没有取到数据则从数据库读取数据放入缓存然后返回该数据。[b]然而,保存在缓存中的数据仍然接受GC的管理,即它可以被GC清除。[/b]rnrn但是我在网上查到的资料,对于WeakHashMap的实现方式有两种说法,不知道哪种才是对的:rn一、WeakHashMap中有expungeStaleEntries方法,在进行一些特定操作的时候,它会自动调用该方法,清除没被引用的数据。(我查看过它的源代码,确实调用了该方法,但是主要是看不懂这个方法里面做了什么)rn二、WeakHashMap里面使用的是弱引用,允许被GC清除。(可是我在源代码里面没有看到弱引用相关的代码啊)rnrn我想,如果是后者,我的目的可能就可以实现了。我的目的就是说,我只管往里面放数据,不管清除,当GC发生时会自动将不需要的数据清除。这里有一个重要的点:[b]并不是该对象一失去引用就立即[/b](或在下次调用时立即)[b]被清除[/b],(这样的话缓存就没有任何意义了)[b],而是内存不足时就像弱引用一样被GC清除[/b](GC的发生是程序无法预测的)
Java-Collection源码分析(九)——WeakHashMap
WeakHashMap 继承于AbstractMap,实现了Map接口。和HashMap一样,WeakHashMap也是一个哈希表,它存储的内容也是键值对(key-value)映射,而且键和值都可以是null。 WeakHashMap中的每个关键对象间接存储为弱引用的引用。因此,只有在地图的内部和外部的弱引用之后,密钥才会被垃圾回收器清除。 一、WeakHashMap的垃圾回收机制 1.1
java的WeakHashMap详细介绍
在上一篇文章中介绍了Java的四种对象引用,这篇文章介绍一个java中相关的具体应用WeakHashMap。       WeakHashMap是基于弱引用实现的哈希表,与HashMap在操作上基本相同,WeakHashMap最大的特点是对于哈希表中的每个Key,如果除了自身对Key有引用外,此Key没有其他引用,那么该Key对应的键值对会被表自动移除,这个行为取决于垃圾回收器的动作,只有在垃圾
Java的弱引用—WeakHashMap
在《Effective Java》中的p23页有涉及到WeakHashMap的相关知识,在这篇文章中做一个总结以及介绍一下相关知识。在这里我们分成三个部分来说明一下,这只是我自己参看JDK源码和上网搜索资料得到的结果,如有错误,欢迎指出,我不胜荣幸。WeakHashMap和HashMap有什么不同我们知道WeakHashMap是弱引用,而HashMap是强引用。 这就是说当我们给Java虚拟机分配
关于曲线拟合与最小二乘法原理探讨
本文从最小二乘法的基本<em>原理</em>出发,给出了多元正交函数拟合的实现方法,并结合实例给出了最常用的二次曲线拟合的程序流程图。
Windows服务编写原理探讨.pdf
Windows服务编写<em>原理</em>及<em>探讨</em>.pdf 讲述windows服务的<em>原理</em>。。
理想点法的原理探讨和推广
对多目标规划的理想点法的<em>探讨</em>.pdf 多目标规划的理想点法.pdf 多目标决策_理想点法_的推广.pdf
EasyPR的车牌定位原理探讨
请问下各位,在EasyPR的车牌定位中,sobelSecSearch和sobelSecSearchPart两个函数实现的功能有什么区别,为什么需要进行这两步操作,目的是什么?急求,谢谢!
广告拦截软件原理探讨
现在桌面软件广告泛滥,譬如QQ、360、暴风等等这些桌面软件经常启动时就弹窗广告、搜狗输入法更过分,经常运行过程中来广告,rn那如何进行这些桌面软件广告的拦截呢?rn知道3721是可以达到拦截广告的目的,只是他好像用的钩子,造成系统缓慢,比广告还烦!rn大家可以说说自己的想法,谢谢!rnrnrn如果是IE浏览器,对于广告的拦截又是如何呢(没有玩过BHO)?
探讨魔兽dota改建原理
最近装了win7 64位系统发现很多改建软件都不能用了。rnrn反正闲着突然有了去写个改建软件的冲动。rnrn我是个初学者,一开始就有了很多方面的难点,希望路过的大侠多多指点。rnrn注意大家不要推荐某某改建软件,我需要的不是改建软件,而是想知道其中的<em>原理</em>,并且实现它。rnrn提个意见也是感激不尽。rnrnrn系统:win7 64位(先不<em>探讨</em>兼容性问题,兼容性以后再说)rnrn编程语言:C#(或者其他非C++语言,我不熟悉C++,对我来说可读性差,<em>探讨</em>问题让人迷糊,网上很多代码都是C++)rnrn编程工具:vs2010rnrnrn问题一:rnrn改建软件是第三方软件,怎样让写出来的软件,单单只影响正在运行的魔兽游戏。rnrnrn问题二:rnrn大概<em>原理</em>是读取当前按下的建值,通过软件运算,把值强制转换成其他的键值。rnrnrn目前是这两个问题,希望提供api之类的。rn
请研究探讨随机数产生的原理
请研究<em>探讨</em>随机数产生的<em>原理</em>
Java集合之WeakHashMap详解
WeakHashMap是一种特殊的HashMap,那它特殊在哪里呢?WeakHashMap的键是弱引用对象,弱引用是实现WeakHashMap的关键所在,WeakHashMap特别适用于需要缓存的场景,当一个键对象被垃圾回收器回收时,那么相应的值对象的引用会从Map中删除。WeakHashMap能够节约存储空间,可用来缓存那些非必须存在的数据。由于WeakHashMap的键值是弱引用对象,所以,即...
弱散列映射表:WeakHashMap
啊啊啊 其实和WeakHashMap无关吧大概 先说说实现<em>原理</em>(大概 弱散列表内部通过弱引用来配合垃圾回收器回收不可达的对象,当键持有的对象只被弱引用引用时(◎﹏◎),GC将她回收 那么问题来了,当这个对象长时间不使用时,可不可以将她的属性保存在某个地方(类似序列化)并回收本体呢?即Key存在,value为null 当访问到这个对象的Key时,Key可不可在从某个地方
WeakHashMap实现原理及源码分析
和HashMap一样,WeakHashMap 也是一个散列表,它存储的内容也是键值对(key-value)映射,而且键和值都可以是null。不过WeakHashMap的键是“弱键”。在 WeakHashMap 中,当某个键不再正常使用时,会被从WeakHashMap中被自动移除。这个“弱键”的<em>原理</em>大致上就是,通过WeakReference和ReferenceQueue实现的。 WeakHashM
WeakHashMap基础使用
WeakHashMap的基础使用与HashMap类似,详细可以参考另一篇文章点击这里。但是区别在于WeakHashMap对key保留了弱引用,而HashMap对key保留了强引用(对于强弱引用可以参考这篇文章点击这里),所以只要HashMap在则key就一直在,而WeakHashMap中的key则可能会被垃圾回收: public class Main { public static v...
一个WeakHashMap的问题
1、假设map里已经放了一对数据了:rnkey1,value1rnrn2、然后有个线程取走了value1,持续强引用value1。rnrn3、没有任何引用指向key1。rnrn4、GC执行了rnrn问1:rn我的理解,由于key1可回收,因此key1,value1这对数据从map中移除。是否正确?rnrn问2:rn我的理解,由于value1一直被正常使用,GC应该只会回收key1对象,不会动value1的。是否正确?rn
Java集合框架:WeakHashMap
&amp;amp;emsp;&amp;amp;emsp;WeakHashMap实现了Map接口,是HashMap的一种实现,它比HashMap多了一个引用队列: ``` private final ReferenceQueue&amp;lt;Object&amp;gt; queue = new ReferenceQueue&amp;lt;&amp;gt;(); ``` &amp;amp;emsp;&amp;amp;emsp;博主认真比对过WeakHashMap和HashMap的源码,发现WeakHa
WeakHashMap的一些理解
WeakHashMap在GC的时候会清除未被强引用的键值,接下来便分析一下是如何做到的。首先看一下其内部Entry对象的结构,Entry继承了WeakReference,从Entry的构造函数可以知道,在put一个key-value时,key作为一个弱引用而存在,getKey()也是返回这个key的引用,这里可以看到unmaskNull的作用是对应于put了一个null的key,当put的key为...
学生成绩管理系统需求分析规格说明书(教学用例)下载
1、引言 1.1 编写目的 在编写“学生成绩管理系统”软件之前,对同类型产品的市场进行了前期调查,与多位软件设计者和使用者进行了探讨和分析,之后由软件项目小组向系统分析人员与软件设计人员提出了这份需求规格说明书。该需求说明书对学生成绩系统进行了全面细致的用户需求分析,明确所要开发的软件应具有的功能、性能与界面。该需求规格说明书供概要设计人员阅读。 1.2 项目背景 项目委托单位: 开发单位: 主管部门: 学生成绩管理系统软件V1.0是一个功能比较完整的数据管理软件,具有数据操作方便、高效、迅速等优点。该软件采用功能强大的数据库软件开发工具进行开发,可在应用范围较广的Wi 相关下载链接:[url=//download.csdn.net/download/zbozbozbo/3572347?utm_source=bbsseo]//download.csdn.net/download/zbozbozbo/3572347?utm_source=bbsseo[/url]
Cornerstone for Mac 2.7.10 破解版下载
不错的svn管理器,破解版2.7.10,免费提供 相关下载链接:[url=//download.csdn.net/download/sy431256wr/7111325?utm_source=bbsseo]//download.csdn.net/download/sy431256wr/7111325?utm_source=bbsseo[/url]
制作u安装系统的方法下载
很实用,大家可以参考一下哦开发就分开来的jbl女离开 相关下载链接:[url=//download.csdn.net/download/chen653181074/3333190?utm_source=bbsseo]//download.csdn.net/download/chen653181074/3333190?utm_source=bbsseo[/url]
我们是很有底线的