以下结论是在java card上用Java编写时候才会有效,如果是native的应用就不一样了。
1、临时对象的内容可以存储在RAM 中,但是永远不能在EEPROM。
2、不管是类变量还是局部变量都会放在'永久内存' EEPROM中, 只有当调用JCSystem.makeTransientByteArray 等makeTransient 方法产生的对象才会放在RAM中。
3、在事务(transaction)中只能对永久对象进行修改,对临时对象的修改永远不能撤销。
4、全局数组也是临时对象。 全局数组是JCRE所有的,他们在所有上下文中自由访问,无需上下文切换。
5、APDU的缓冲区 和 intall方法的参数bArray 是全局数组。 所以每当新的AID被选中时,JCRE有责任对APDU缓冲区进行清空。
本文详细阐述了在JavaCard环境中使用Java和Native应用时内存管理的差异,包括对象存储位置、事务操作限制以及全局数组的特性。重点强调了临时对象与永久对象之间的区别,以及如何在不同应用场景下优化资源使用。
14万+

被折叠的 条评论
为什么被折叠?



