java中就是用"句柄"来 *** 纵对象的
在java中 任何东西都可以看作是对象 因此,我们可采用一种统一的语法,任何地方均可照搬不误。但要注意,尽管将一切都“看作”对象,但 *** 纵的标识符实际是指向一个对象的“句柄”(Handle)。在其他Java参考书里,还可看到有的人将其称作一个“引用”,甚至一个“指针”。可将这一情形想象成用遥控板(句柄) *** 纵电视机(对象)。只要握住这个遥控板,就相当于掌握了与电视机连接的通道。但一旦需要“换频道”或者“关小声音”,我们实际 *** 纵的是遥控板(句柄),再由遥控板自己 *** 纵电视机(对象)。如果要在房间里四处走走,并想保持对电视机的控制,那么手上拿着的是遥控板,而非电视机。
此外,即使没有电视机,遥控板亦可独立存在。也就是说,只是由于拥有一个句柄,并不表示必须有一个对象同它连接。
句柄是系统分配给你 *** 作文件的权限,你 *** 作所有的文件都需要用到系统分配给你的句柄.比如说FileInputStream
fin=new
FileInputStream("c:\123.txt")
fin就是你申请后,系统分配给你c:\123.txt的句柄.你通过FIN来调用这个文件.
这是肯定的,ES是吃内存的,肯定会占用句柄数的,但是你说的这种情况模糊不清,我也不太了解,如果ES合理的话,不会出现这种问题,你可以查看一下是哪个进程占用了句柄,不就一目了然了?命令:
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more
得到两列数据,第一列是句柄数,第二列是id
ps aef|grep id
然后,一目了然
请采纳,谢谢
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)