[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/java-rookie/Note/master/Java_Transient/README.md [Back]  [Original]

#### JavaTransient
JavaJavatransienttransient~~~

#### 1. transient
SerilizablejavaSerilizable

transient

java transientSerilizabletransient

**code:**

	import java.io.FileInputStream;
	import java.io.FileNotFoundException;
	import java.io.FileOutputStream;
	import java.io.IOException;
	import java.io.ObjectInputStream;
	import java.io.ObjectOutputStream;
	import java.io.Serializable;
	
	/**
	 * @description transient
	 *        
	 */
	public class TransientTest {
	    
	    public static void main(String[] args) {
	        
	        User user = new User();
	        user.setUsername("Alexia");
	        user.setPasswd("123456");
	        
	        System.out.println("read before Serializable: ");
	        System.out.println("username: " + user.getUsername());
	        System.err.println("password: " + user.getPasswd());
	        
	        try {
	            ObjectOutputStream os = new ObjectOutputStream(
	                    new FileOutputStream("C:/user.txt"));
	            os.writeObject(user); // User
	            os.flush();
	            os.close();
	        } catch (FileNotFoundException e) {
	            e.printStackTrace();
	        } catch (IOException e) {
	            e.printStackTrace();
	        }
	        try {
	            ObjectInputStream is = new ObjectInputStream(new FileInputStream(
	                    "C:/user.txt"));
	            user = (User) is.readObject(); // User
	            is.close();
	            
	            System.out.println("\nread after Serializable: ");
	            System.out.println("username: " + user.getUsername());
	            System.err.println("password: " + user.getPasswd());
	            
	        } catch (FileNotFoundException e) {
	            e.printStackTrace();
	        } catch (IOException e) {
	            e.printStackTrace();
	        } catch (ClassNotFoundException e) {
	            e.printStackTrace();
	        }
	    }
	}
	
	class User implements Serializable {
	    private static final long serialVersionUID = 8294180014912103005L;  
	    
	    private String username;
	    private transient String passwd;
	    
	    public String getUsername() {
	        return username;
	    }
	    
	    public void setUsername(String username) {
	        this.username = username;
	    }
	    
	    public String getPasswd() {
	        return passwd;
	    }
	    
	    public void setPasswd(String passwd) {
	        this.passwd = passwd;
	    }
	
	}



	read before Serializable: 
	username: Alexia
	password: 123456
	
	read after Serializable: 
	username: Alexia
	password: null

null

#### 2. transient

1transient

2transienttransientSerializable

3transienttransient

UserusernamestaticstaticusernameAlexiatransientstaticusernameJVMstaticJVM

	import java.io.FileInputStream;
	import java.io.FileNotFoundException;
	import java.io.FileOutputStream;
	import java.io.IOException;
	import java.io.ObjectInputStream;
	import java.io.ObjectOutputStream;
	import java.io.Serializable;
	
	/**
	 * @description transient
	 *        
	 */
	public class TransientTest {
	    
	    public static void main(String[] args) {
	        
	        User user = new User();
	        user.setUsername("Alexia");
	        user.setPasswd("123456");
	        
	        System.out.println("read before Serializable: ");
	        System.out.println("username: " + user.getUsername());
	        System.err.println("password: " + user.getPasswd());
	        
	        try {
	            ObjectOutputStream os = new ObjectOutputStream(
	                    new FileOutputStream("C:/user.txt"));
	            os.writeObject(user); // User
	            os.flush();
	            os.close();
	        } catch (FileNotFoundException e) {
	            e.printStackTrace();
	        } catch (IOException e) {
	            e.printStackTrace();
	        }
	        try {
	            // username
	            User.username = "jmwang";
	            
	            ObjectInputStream is = new ObjectInputStream(new FileInputStream(
	                    "C:/user.txt"));
	            user = (User) is.readObject(); // User
	            is.close();
	            
	            System.out.println("\nread after Serializable: ");
	            System.out.println("username: " + user.getUsername());
	            System.err.println("password: " + user.getPasswd());
	            
	        } catch (FileNotFoundException e) {
	            e.printStackTrace();
	        } catch (IOException e) {
	            e.printStackTrace();
	        } catch (ClassNotFoundException e) {
	            e.printStackTrace();
	        }
	    }
	}
	
	class User implements Serializable {
	    private static final long serialVersionUID = 8294180014912103005L;  
	    
	    public static String username;
	    private transient String passwd;
	    
	    public String getUsername() {
	        return username;
	    }
	    
	    public void setUsername(String username) {
	        this.username = username;
	    }
	    
	    public String getPasswd() {
	        return passwd;
	    }
	    
	    public void setPasswd(String passwd) {
	        this.passwd = passwd;
	    }
	
	}



	read before Serializable: 
	username: Alexia
	password: 123456
	
	read after Serializable: 
	username: jmwang
	password: null

staticusernameJVMstaticjmwangAlexia

#### 3. transienttransient



	import java.io.Externalizable;
	import java.io.File;
	import java.io.FileInputStream;
	import java.io.FileOutputStream;
	import java.io.IOException;
	import java.io.ObjectInput;
	import java.io.ObjectInputStream;
	import java.io.ObjectOutput;
	import java.io.ObjectOutputStream;
	
	/**
	 * @descripiton Externalizable
	 */
	public class ExternalizableTest implements Externalizable {
	
	    private transient String content = "transient";
	
	    @Override
	    public void writeExternal(ObjectOutput out) throws IOException {
	        out.writeObject(content);
	    }
	
	    @Override
	    public void readExternal(ObjectInput in) throws IOException,
	            ClassNotFoundException {
	        content = (String) in.readObject();
	    }
	
	    public static void main(String[] args) throws Exception {
	        
	        ExternalizableTest et = new ExternalizableTest();
	        ObjectOutput out = new ObjectOutputStream(new FileOutputStream(
	                new File("test")));
	        out.writeObject(et);
	
	        ObjectInput in = new ObjectInputStream(new FileInputStream(new File(
	                "test")));
	        et = (ExternalizableTest) in.readObject();
	        System.out.println(et.content);
	
	        out.close();
	        in.close();
	    }
	}

content
	
	transient

transient

JavaSerializableExternalizablewriteExternaltransientcontentnull

#### java.io.Serializable
Java APIjava.io.Serializable

     public interface Serializable {

     }

java.io.Serializable

Java""Serializablebytebyte

OutputStreamObjectOutputStreamwriteObject()OutputStream

writeObject() readObject() out.defaultWriteObject  Object  writeObject  DataOutput  ObjectOutputStream 

InputStreamObjectInputStreamreadObject()ObjectreferencereadObject()  in.defaultReadObject  defaultReadObject() writeObject  DataOutput  ObjectOutputStream 

****

* private
* 
* NotSerializableExceptiontransient


**1**

Object StatesJava,

**2**

a

b

cRMI


**3**
Heapstateinstance ariable

	 Foo myFoo = new Foo();
	 myFoo .setWidth(37);
	 myFoo.setHeight(70);

MyFoowidthHeight3770foo.serJVM

	FileOutputStream fs = new FileOutputStream("foo.ser");
	ObjectOutputStream os = new ObjectOutputStream(fs);
	os.writeObject(myFoo);

**4**
	
	FileOutputStream fs = new FileOutputStream("foo.ser");
	ObjectOutputStream os = new ObjectOutputStream(fs);
	os.writeObject(myObject1);
	os.writeObject(myObject2);
	os.writeObject(myObject3);
	os.close();

**6**

aSerializable

b

c,

* privatepublicfieldrmi private

* socketthread



Web Proxy Viewer  |  New URL  |  Original Page