import java.io.FileOutputStream;import java.io.OutputStream;import java.beans.XMLEncoder;//...SerializableObject object = new SerializableObject();OutputStream outputStream = new FileOutputStream("serializableObject.xml");XMLEncoder xmlEncoder= new XMLEncoder(outputStream);xmlEncoder.writeObject(object);
これらのオブジェクトをObjectOutputStreamやXMLEncoderによりファイルなどに出力する。import java.io.FileOutputStream;import java.io.OutputStream;import java.io.ObjectOutputStream;//...SerializableObject object = new SerializableObject();OutputStream outputStream = new FileOutputStream("serializableObject.obj");ObjectOutputStream objectOutputStream= new ObjectOutputStream(outputStream);objectOutputStream.writeObject(object);
private static final long serialVersionUID = 3487495895819393L;のように、ストリーム固有識別子を宣言することにより、クラスの実装が変わった場合でも、同一のストリーム固有識別子を持つクラスは、互換性があることを意味する。ストリーム固有識別子を明示的に宣言していない時は、バイトストリームのシグニチャー（SHA-1）から自動生成される。
import java.io.Externalizable;import java.io.ObjectOutput;import java.io.ObjectInput;public class SerializableObject implements Externalizable {   private String name; //writeExternal(ObjectOutput)で指定されているため保存されるフィールド。   private int id; //無視される。   private int hashCode; //writeExternal(ObjectOutput)で指定されているため保存されるフィールド。   //Externalizableで定義されているメソッドを[[オーバーライド]]。   //保存したいフィールドを指定する。   @Override public void writeExternal(ObjectOutput out) {     out.writeChars(this.name);     out.writeInt(this.hashCode);   }    //復元したいフィールドを指定する。   @Override public void readExternal(ObjectInput in) {     this.name = in.readLine();     this.hashCode = in.readInt();   }    //シリアライズしたいクラスの実装}
import java.io.Serializable;public class SerializableObject implements Serializable {  private String name; //シリアライズのとき保存される。  static String staticField; //クラス変数は無視される。  private transient int hashCode; //transientキーワードが付いたフィールドは無視される。  //シリアライズしたいクラスの実装...}
Java言語では直列化したいクラスにSerializableまたはExternalizableインタフェースを実装することで、そのクラスのオブジェクトは直列化できるクラスを作ることができる。これらのインタフェースのうち、Serializableはマーカーインタフェースと呼ばれる、メソッド宣言がないものである。Serializableを実装しているクラスのフィールドは、transient, static指定が無い限り、自動的にシリアライズによる保存対象にされる。Externalizableを実装しているクラスでは、writeExternal(ObjectOutput) , readExternal(ObjectInput)メソッドをオーバーライドして手動で保存したいフィールドを指定する必要がある。
Javaのシリアライズは直列化（第二の意味）で用いられる。このシリアライズは、デザインパターンのひとつMemento パターンによる状態のスナップショット取得のほかJava RMIでネットワーク越しの外部メソッド呼び出しを行うときなどに使われている。シリアライズは、SFなどに登場する転送装置に喩えられることがある。物質を一旦量子に変換してから遠隔地に転送し再び物質に戻すというテレポーテーションがシリアライズに似ていることからそう喩えられた。これはまさに、他のネットワーク上にあるシリアライズされたオブジェクトをファイルとしてリモートから転送してからデシリアライズして外部メソッドを自分のネットワーク上で呼び出すために利用されるJava RMIの動作原理にも似ている。
明治から昭和戦中においては、信長は「勤皇家」としての性格が強調された。明治の初年には京都市に信長を祀った建勲神社が建立された。また、国定教科書では、上洛の目的が天皇の権威の復興を目的としたことや、天皇の権威の復興の為に式年遷宮を復活させたことなどの実績が強調された。そのため、信長の皇位簒奪説が強調されるようになったのは、昭和戦後からである。戦国時代後期、織田信長は足利義昭を将軍として上洛を行ったが、程なく信長と義昭の間に対立が生じ、その結果義昭は追放され室町幕府は滅亡した。また信長は、時の正親町天皇とは当初協調路線をとっていたが、しだいに自らを神格化するような行動を取り、さらには朝廷が決定する暦の制定にまで口をはさむようになった。朝廷は、まず信長を右大臣とし、更には太政大臣、関白、征夷大将軍のいかなる官位をも授けると打診したが、信長はそれを辞退。その一方で京都で馬ぞろえ（軍事パレード）を行い、朝廷を威嚇したとされる。この様な行動から、信長は天皇を廃して自身が日本の王になろうとしたのではないかという説がある。そのため、朝廷を敬う明智光秀によって本能寺の変で殺されたとされる。いわゆる「朝廷陰謀説」である。しかし近年では、天皇を招くための「仮の御所」と思われる遺跡が安土城内部で発見されていることや、信長自身も浅井長政、朝倉義景との戦いや石山合戦では天皇に仲裁を求めたりしていることから、信長には天皇を廃する意思がなかった、あるいは不可能ではなかったかと言われている。ただしこの仮御所の存在は、自らの為との説もある。