Java FAQ:cast

Java FAQ:S014-Q02

public class C2008052200 {
    public static void main(String[] args) {
        double dx = 1.2;
        int    ix;

        ix = (int)dx;
        System.out.println(ix);
    }
}

コンパイルした後、javap -c を実行

Compiled from C2008052200.java
public class C2008052200 extends java.lang.Object {
    public C2008052200();
    public static void main(java.lang.String[]);
}

Method C2008052200()
   0 aload_0
   1 invokespecial #1 <Method java.lang.Object()>
   4 return

Method void main(java.lang.String[])
   0 ldc2_w #2 <Double 1.2>
   3 dstore_1
   4 dload_1
   5 d2i
   6 istore_3
   7 getstatic #4 <Field java.io.PrintStream out>
  10 iload_3
  11 invokevirtual #5 <Method void println(int)>
  14 return
public class C2008052201 {
    public static void main(String[] args) {
        Object o = "foo";
        String s = (String)o;

    }
}

コンパイルした後、javap -c を実行

Compiled from C2008052201.java
public class C2008052201 extends java.lang.Object {
    public C2008052201();
    public static void main(java.lang.String[]);
}

Method C2008052201()
   0 aload_0
   1 invokespecial #1 <Method java.lang.Object()>
   4 return

Method void main(java.lang.String[])
   0 ldc #2 <String "foo">
   2 astore_1
   3 aload_1
   4 checkcast #3 <Class java.lang.String>
   7 astore_2
   8 return