0
以下對象刪除管理,你看應用程序的一部分,說明Java卡3平臺的經典版有關對象刪除管理:在javacards
void updateBuffer(byte requiredSize)
{
try
{
if(buffer != null && buffer.length == requiredSize)
{
//we already have a buffer of required size
return;
}
JCSystem.beginTransaction();
byte[] oldBuffer = buffer;
buffer = new byte[requiredSize];
if (oldBuffer != null)
JCSystem.requestObjectDeletion();
JCSystem.commitTransaction();
}
catch(Exception e)
{
JCSystem.abortTransaction();
}
}
的問題是:
當我打電話JCSystem.requestObjectDeletion();
在if
表達式中,它如何識別哪一個緩衝區或oldBuffer對象必須刪除?
只是爲了確定我得到的觀點:你的意思是:在'byte [] oldBuffer = buffer'行''我創建一個變量名_oldBuffer_引用_Buffer_。在下一行'buffer = new byte [requiredSize];'我改變了_Buffer_的引用,因此_oldBuffer_變成了一個沒有任何引用的變量。所以在下一行中,if的條件爲真(即'oldBuffer = null'),並且ObjectDeletion刪除它。對? – Jean 2015-02-14 07:28:32
是的,沒錯。 – 2015-02-14 13:39:47