Java 키워드 Volatile & Transient

3370 단어 자바Blogsun
Volatile                ,                  。  ,          ,               。       ,                      。

Java       :        ,                 ,                                。

                 ,                         。

 volatile       VM:                  ,             。

    :                    volatile。         synchronized    ,      ,    。

    volatile    VM        ,         ,               。

java   Transient

  http://horst.sun.blog.163.com/blog/static/348849612007614494492/

   http://www.devx.com/tips/Tip/13726。

Java serialization               。       ,              ,    
 serialization      。                serialization,            transient。
transient Java      ,                   。            ,transient                ,   transient           。

  ,      Java serialization   :
public class LoggingInfo implements java.io.Serializable
{
    private Date loggingDate = new Date();
    private String uid;
    private transient String pwd;
   
    LoggingInfo(String user, String password)
    {
        uid = user;
        pwd = password;
    }
    public String toString()
    {
        String password=null;
        if(pwd == null)
        {
        password = "NOT SET";
        }
        else
        {
            password = pwd;
        }
        return "logon info: 
" + "user: " + uid + "
logging date : " + loggingDate.toString() + "
password: " + password; } } , (serialize) , 。 LoggingInfo logInfo = new LoggingInfo("MIKE", "MECHANICS"); System.out.println(logInfo.toString()); try { ObjectOutputStream o = new ObjectOutputStream( new FileOutputStream("logInfo.out")); o.writeObject(logInfo); o.close(); } catch(Exception e) {//deal with exception} To read the object back, we can write try { ObjectInputStream in =new ObjectInputStream( new FileInputStream("logInfo.out")); LoggingInfo logInfo = (LoggingInfo)in.readObject(); System.out.println(logInfo.toString()); } catch(Exception e) {//deal with exception} , (read——back (de-serializing)) password "NOT SET"。 pwd transient , 。 , transient 。 , transient , : public class GuestLoggingInfo implements java.io.Serializable { private Date loggingDate = new Date(); private String uid; private transient String pwd; GuestLoggingInfo() { uid = "guest"; pwd = "guest"; } public String toString() { //same as above } } , GuestLoggingInfo , , , password "NOT SET"。 , , , 。

좋은 웹페이지 즐겨찾기