[java] Why does Java have transient fields?