⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chap19.html

📁 Inside the java virtualMachine,深入研究java虚拟机
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<P>    void instanceMethod() {</P>
<P>    }</P>
<P>&nbsp;</P>
<P>    final void finalInstanceMethod() {</P>
<P>    }</P>
<P>&nbsp;</P>
<P>    public void interfaceMethod() {</P>
<P>    }</P>
<P>}</P>
</FONT><FONT SIZE="2"><P>&nbsp;</P></P>
<P></FONT><FONT FACE="Courier New">// On CD-ROM in file invoke/ex4/Subclass.java
<P>class Subclass extends ItsABirdItsAPlaneItsSuperclass {</P>
<P>&nbsp;</P>
<P>    Subclass() {</P>
<P>        this(0);                      // invokespecial (of an &lt;init</FONT>)</P>
<P>    }</P>
<P>&nbsp;</P>
<P>    Subclass(int i) {</P>
<P>        super(i);                     // invokespecial (of an &lt;init</FONT>)</P>
<P>    }</P>
<P>&nbsp;</P>
<P>    private void privateMethod() {</P>
<P>    }</P>
<P>&nbsp;</P>
<P>    void instanceMethod() {</P>
<P>    }</P>
<P>&nbsp;</P>
<P>    final void anotherFinalInstanceMethod() {</P>
<P>    }</P>
<P>&nbsp;</P>
<P>    void exampleInstanceMethod() {</P>
<P>&nbsp;</P>
<P>        instanceMethod();             // invokevirtual</P>
<P>        super.instanceMethod();       // invokespecial</P>
<P>&nbsp;</P>
<P>        privateMethod();              // invokespecial</P>
<P>&nbsp;</P>
<P>        finalInstanceMethod();        // invokevirtual</P>
<P>        anotherFinalInstanceMethod(); // invokevirtual</P>
<P>&nbsp;</P>
<P>        interfaceMethod();            // invokevirtual</P>
<P>&nbsp;</P>
<P>        classMethod();                // invokestatic</P>
<P>    }</P>
<P>}</P>
</FONT><FONT SIZE="2"><P>&nbsp;</P></P>
<P></FONT><FONT FACE="Courier New">// On CD-ROM in file invoke/ex4/UnrelatedClass.java
<P>class UnrelatedClass {</P>
<P>&nbsp;</P>
<P>    public static void main(String args[]) {</P>
<P>&nbsp;</P>
<P>        Subclass sc = new Subclass(); // invokespecial (of an &lt;init</FONT>)</P>
<P>        Subclass.classMethod();       // invokestatic</P>
<P>        sc.classMethod();             // invokestatic</P>
<P>        sc.instanceMethod();          // invokevirtual</P>
<P>        sc.finalInstanceMethod();     // invokevirtual</P>
<P>        sc.interfaceMethod();         // invokevirtual</P>
<P>&nbsp;</P>
<P>        InYourFace iyf = sc;</P>
<P>        iyf.interfaceMethod();        // invokeinterface</P>
<P>    }</P>
<P>}</P>
</FONT><FONT SIZE="2"><P>&nbsp;</P></FONT><FONT FACE="Courier New">end</FONT></P></PRE>
<P>Here are the bytecodes generated by <FONT FACE="Courier New">javac</FONT> for each of these classes (The compiler generates no bytecodes for the <FONT FACE="Courier New">InYourFace</FONT> interface.):</P>
<PRE><P><FONT FACE="Courier New">begin</FONT></P>
<FONT SIZE="2"><P></FONT><FONT FACE="Courier New">// Methods of class ItsABirdItsAPlaneItsSuperclass
<P>&nbsp;</P>
<P>// Method &lt;init</FONT>(int)</P>
<P> 0 aload_0</P>
<P> 1 invokespecial #4 &lt;Method &lt;init</FONT>() of class java.lang.Object</FONT></P>
<P> 4 return</P>
<P>&nbsp;</P>
<P>// Method void classMethod()</P>
<P> 0 return</P>
<P>&nbsp;</P>
<P>// Method void instanceMethod()</P>
<P> 0 return</P>
<P>&nbsp;</P>
<P>// Method void finalInstanceMethod()</P>
<P> 0 return</P>
<P>&nbsp;</P>
<P>// Method void interfaceMethod()</P>
<P> 0 return</P>
<P>&nbsp;</P>
<P>// ------------------------------------</P>
<P>// Methods of class Subclass </P>
<P>&nbsp;</P>
<P>// Method &lt;init</FONT>()</P>
<P> 0 aload_0</P>
<P> 1 iconst_0</P>
<P> 2 invokespecial #4 &lt;Method &lt;init</FONT>(int) of class Subclass</FONT></P>
<P> 5 return</P>
<P>&nbsp;</P>
<P>// Method &lt;init</FONT>(int)</P>
<P> 0 aload_0</P>
<P> 1 iload_1</P>
<P> 2 invokespecial #3 &lt;Method &lt;init</FONT>(int) of class</P>
<P>        ItsABirdItsAPlaneItsSuperclass</FONT></P>
<P> 5 return</P>
<P>&nbsp;</P>
<P>// Method void privateMethod()</P>
<P> 0 return</P>
<P>&nbsp;</P>
<P>// Method void instanceMethod()</P>
<P> 0 return</P>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -