【JAVA优化编程】内存管理之——(7)瞬间值

7  瞬间值

    相信你在做远程方法调用(RMI)类应用开发时遇到过使用瞬间值(transient)变量与实现java.lang.Serializable接口的问题,之所以要使对象实现java.lang.Serializable接口,是因为这样就可以把该对象从远程环境以对象流的方式将对象传递到相应的调用环境中,但是有时这些被传递的对象的一些属性数据并不需要被传递,因为这些数据成员对于应用需求而言是无关紧要的,那么这些数据变量就可以将其声明为瞬间值变量,而被声明成瞬间值的变量就不会被传递,这样就可以节约调用端运行环境的内存资源,尤其是这个瞬间值变量所携带的数据量越大时(例如数据量较大的数组),其效用就越大。但是如果该属性在类中是相对重要的,并且调用方需要得到确切的值,此时你是不能将其声明为瞬间值属性的,否则调用方将无法得到这个属性值。

    因此采用瞬间值的方法确实可以节约在远程方法调用(RMI)应用中调用方的内存资源并且可以节约不必要的网络开销,加快传输速度,提高系统性能,但是采用瞬间值的方法时要尽量慎重,避免误用而导致应用无法正常工作,而达不到预期的效果。关于java.lang.Serializable接口的知识我们将会在后续章节中做详细深入的讲解,这里就不在赘述了。

你可能感兴趣的:(工作,网络应用)