本文目錄一覽:
Java中的句柄是什麼意思?
句柄是系統分配給你操作文件的許可權,你操作所有的文件都需要用到系統分配給你的句柄.比如說
FileInputStream
fin=new
FileInputStream(“c:\123.txt”);
fin就是你申請後,系統分配給你c:\123.txt的句柄.你通過FIN來調用這個文件.
請問java中的句柄,對象,實例有什麼區別呢?
在java中對象是一個很抽象的概念!對象是以它的實例的形式存在的。
聲明了一個類型的變數也就是聲明了一個該類型的對象。但是這個對象只是一個抽象的概念,並不會在內
存中存在,只有實例化這個對象之後,才會在內存中分配空間。
可以這麼理解 :聲明了一個int a 但並沒有初始化它,它就不會具有值。只有a=0這樣初試化a之後,a才
具有0這個值。
實例化對象時就會產生一個指向該對象的這個實例的句柄。
以此為例:
class value{
int i;
}
public class EqualsMethod{
public static void main(string[] args){
value v1=new value();
value v2=new value();
vl.i=v2.i=100;
}
}
在class EqualsMethod 中value v1=new value();
value v2=new value();
這2行首先value v1 value v2
聲明了v1,v2 2個value類型的對象。
然後用new運算符實例化了v1,v2兩個對象。
而v1,v2這兩個標識符,代表的分別是兩個指向對象實例的句柄。
然而當v1.i時我使用的v1這個標識符,並不是對象,我們無法直接操縱對象實例
v1是指向這個對象的句柄,v2也是一樣。我們通過句柄訪問對象實例。
所以在這裡v1,v2是句柄,它們所指向的對象我們是看不見的。
求採納,謝謝
Java的句柄是什麼意思?
句柄是系統分配給你操作文件的許可權,你操作所有的文件都需要用到系統分配給你的句柄.比如說
FileInputStream
fin=new
FileInputStream(“c:\123.txt”);
fin就是你申請後,系統分配給你c:\123.txt的句柄.你通過FIN來調用這個文件.
java如何獲得其它程序句柄
windows下獲取當前進程的話可以用dos命令tasklist
Runtime r=Runtime.getRuntime();
Process p=r.exec(“cmd /C tasklist”);
BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream(),”gbk”));//windows的默認系統中文編碼是gbk所以從cmd控制台的信息已gbk來解碼
String line=null;
while((line=reader.readLine())!=null)
System.out.println(line);
java能獲得窗口句柄嗎
JFrame jf = new JFrame(“窗口句柄”);
這個 jf 對象就是 你所說的窗口句柄,因為java把指針屏蔽了,所以沒有什麼值地址的東西,如果你 要像C裡面哪裡傳地址的話
java就這樣
JFrame jf1 = new JFrame(“窗口句柄”);
JFrame jf2 = jf1;
這個jf2 就是 jf1的引用,你改變jf2就改變了jf1
同樣的 函數裡面返回時,只要你不再new一個,
比如
JFrame jf1 = new JFrame(“窗口句柄”);
public JFrame getJFrameHander(){
return jf1;
}
你在另外的代碼里調用這個函數
比如
{
JFrame jf2 = getJFrameHander();
}
這個jf2就擁有了 jf1的引用,應該就是你所說的句柄
不知道我說的是不是你想知道的那樣
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/159971.html