2015-05-29 48 views

回答

0

即使在取出卡的電源之後,存儲在EEPROM中的數據也不會被刪除。與RAM相比,從EEPROM寫入和讀取速度較慢。而且,您可以執行的可能的EEPROM寫入次數有限,並且達到此限制可能會導致該卡無法再使用。這被稱爲EEPROM磨損。所以只有在絕對需要時才使用EEPROM。

存儲在RAM中的數據將在清除電源或取消選擇小程序時被清除(所有位均設爲0)。這通常用於臨時數據,在卡失去電力後你可以承受失去的臨時數據。與EEPROM不同,您可以執行的RAM寫入次數沒有限制。

1

最直接的方法之一:當我們開發javacard小程序時,我們將爲變量申請內存。由new()函數創建的變量將存儲在EEPROM中,如

byte[] tempBuffer; 
tempBuffer = new byte[32]; 

通過JCSystem。 MakeTransientByteArray()函數將被存儲在RAM中,如

byte[] tempBuffer; 
tempBuffer = JCSystem.makeTransientByteArray((short)256, CSystem.CLEAR_ON_DESELECT); // using either JCSystem.CLEAR_ON_RESET or JCSystem.CLEAR_ON_DESELECT 
+0

對於任何'new'的調用都是如此嗎?什麼是局部變量(在方法體內聲明)?它們是否也在EEPROM存儲器中創建? –

相關問題