[关闭]
@chenxuxiong 2016-05-27T06:40:55.000000Z 字数 2947 阅读 668

static,final,transient

JAVA基础


一、static

static 可以用来修饰变量、方法、代码块、类,静态导包。

二、final

final 是不可更改的意思, 它可以用来修饰非抽象类, 非抽象成员方法和变量。

三、transient

Java 的 Serializable 提供了一种持久化对象实例的机制。当一个对象发生持久化时, 可能会有一些特殊的数据成员,

当我们不希望用 Serializable机制来保存的某个变量时。为了在一个特定对象的一个或多个域上关闭持久化, 可以在这个域前加上关键字 transient。
transient 是 Java 的关键字,

示例:

  1. package test;
  2. import java.io.Serializable;
  3. public class Admin implements Serializable{
  4. private static final long serialVersionUID = 1L;
  5. private String name;
  6. private transient String nickname;
  7. public String getName() {
  8. return name;
  9. }
  10. public void setName(String name) {
  11. this.name = name;
  12. }
  13. public String getNickname() {
  14. return nickname;
  15. }
  16. public void setNickname(String nickname) {
  17. this.nickname = nickname;
  18. }
  19. }
  1. package test;
  2. /**
  3. * <!--
  4. * Author : fancy
  5. * Email : fancydeepin@yeah.net
  6. * Date : 2013-02-07
  7. * --!>
  8. */
  9. import java.io.FileInputStream;
  10. import java.io.FileOutputStream;
  11. import java.io.ObjectInputStream;
  12. import java.io.ObjectOutputStream;
  13. public class AdminTest {
  14. public static void main(String[] args) throws Exception{
  15. Admin admin = new Admin();
  16. admin.setName("店小三");
  17. admin.setNickname("小菜一叠");
  18. writeObject(admin);
  19. System.out.println("<------------- 序列化之前 ------------->");
  20. System.out.println("姓名: " + admin.getName());
  21. System.out.println("昵称: " + admin.getNickname());
  22. admin = (Admin)readObject();
  23. System.out.println("<------------- 反序列化后 ------------->");
  24. System.out.println("姓名: " + admin.getName());
  25. System.out.println("昵称: " + admin.getNickname());
  26. /**
  27. * 控制台执行输出结果:
  28. *
  29. * <------------- 序列化之前 ------------->
  30. * 姓名: 店小三
  31. * 昵称: 小菜一叠
  32. * <------------- 反序列化后 ------------->
  33. * 姓名: 店小三
  34. * 昵称: null
  35. */
  36. }
  37. //序列化
  38. public static void writeObject(Object obj) throws Exception{
  39. ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("admin.ser"));
  40. oos.writeObject(obj);
  41. }
  42. //反序列化
  43. public static Object readObject() throws Exception{
  44. ObjectInputStream ois = new ObjectInputStream(new FileInputStream("admin.ser"));
  45. return ois.readObject();
  46. }
  47. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注