每个实例(intance)放在EEPROM或者RAM里。这依赖于对象(object)的内容
1. 如果对象的内容在卡中从一个session到另一个session都保持不变,它的内容和引用都会保存在EEPROM中,只要它从属的applet 没有被删除。
2. 如果内容会改变,发生下面的事件时会被清零:
CLEAR_ON_RESET
CLEAR_ON_DESELECT
临时内容会存放在RAM中,但它们的引用会放在EEPROM中
内容也保存在EEPROM中的:
所有基本数据类型(byte,short)的全局变量;
实例变量/Instance variables(全局变量/global variables)
在 对象安装时 创建。
局部变量/Local variables:只能在函数内部 或者 代码块 内部访问
可以使用 静态变量时 ,不要用实例变量
但静态变量是类变量, 可能会引起一些安全问题(可能被其他applet访问)
使用new创建出来对象
可以使用 局部的基本类型(byte, short)
但不要使用 局部的 byte[] 和 object
低版本的Java Card没有垃圾回收
常量 加上 static final 关键字
用基本数据类型,而不要对其进行二次封装,因为会带来更多内存消耗
在applet的构造方法里,就把所有的对象都建立好,这样在安装时就能确定自己需要多少资源。
用switch-case代替 if-else
使用复合算术语句而不是单独的赋值