前言
本指南主要是基于《Gemalto_JavaCard_DevelGuide.pdf》进行整理
Applet开发指南
本章节主要介绍了在使用卡片内存资源时的一些指导原则。下面的列表并不详尽,为了优化Applet,你可能需要进行不同的测试:
不要使用:
1:Unicode 字符
2:32-bit和64bit的整数
3:Float和double整数
4:线程
5:多维数目
- 只创建一个Class’ ???
- 在构造器中创建所有对象
- 整理代码,删除不必要的方法、变量、和操作
- 消除代码中的冗余
- 使用基本类型。避免从基本类型创建对象。开发一个类来封装基本类型可以提供比基本类型本身更多的功能,但是它会占用卡片空间??
- 使用常量,通过关键字static和final实现,这样效率更高
- 避免使用局部对象和数组。创建局部对象和数组会耗用卡片资源,如果当前Java Card不支持垃圾回收,那么占用的资源永远不会被释放
- 尽可能的重用局部变量。变量越多消耗的卡片资源也越多
- 使用变量来存储数组元素。访问数组元素通常需要比访问局部变量更多的字节码。如果一个数组元素在相同的方法中从不同的位置被多次访问,则在第一次访问时将数组值保存在一个局部变量中,然后在后续访问中使用该变量
- 通过使用临时对象来存储中间结果或频繁更新的数据来节约卡上执行时间,更新RAM比更新EEPROM快1000倍。
- 使用switch替换掉if-else语句,通常前者速度更快
- 使用复合算术语句,而不是单独的赋值。原因是单独的赋值需要额外的指令来首先存储所有中间值,然后将它们加载回去进行下一次计算。