jvm七:数组创建本质
生活随笔
收集整理的這篇文章主要介紹了
jvm七:数组创建本质
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package com.atChina.jvm;/*
* 對于數組實例來說,其類型是由JVM在運行期動態生成的,表示為[Lcom.atChina.jvm.Father4
* 這種方式,動態生成的類型,其父類型就是Object
*
* 對于數組來說,JavaDoc經常將構成數組的元素稱為Component,實際上就是將數組降低一個維度的類型
*
* 助記符:
* anewarray:表示創建一個引用類型(如類,接口,數組)的數組,并將其引用值壓入棧頂
* newarray:表示創建一個指定的基本類型(如int, float,char等)的數組,并將其引用值壓入棧頂
*/
public class Test4 {public static void main(String[] args) {Father4[] f = new Father4[2];System.out.println(f.getClass());System.out.println(f.getClass().getSuperclass());int[] ins = new int[3];System.out.println(ins.getClass());System.out.println(ins.getClass().getSuperclass());}
}
class Father4{static{System.out.println("桃園結義");}
}
?
使用 javap -c 類路徑.類名 反編譯下類
javap -c com.atChina.jvm.Test4 Compiled from "Test4.java" public class com.atChina.jvm.Test4 extends java.lang.Object{ public com.atChina.jvm.Test4();Code:0: aload_01: invokespecial #1; //Method java/lang/Object."<init>":()V4: returnpublic static void main(java.lang.String[]);Code:0: iconst_21: anewarray #2; //class com/atChina/jvm/Father44: astore_15: getstatic #3; //Field java/lang/System.out:Ljava/io/PrintStream;8: aload_19: invokevirtual #4; //Method java/lang/Object.getClass:()Ljava/lang/Class;12: invokevirtual #5; //Method java/io/PrintStream.println:(Ljava/lang/Object;)V15: getstatic #3; //Field java/lang/System.out:Ljava/io/PrintStream;18: aload_119: invokevirtual #4; //Method java/lang/Object.getClass:()Ljava/lang/Class;22: invokevirtual #6; //Method java/lang/Class.getSuperclass:()Ljava/lang/Class;25: invokevirtual #5; //Method java/io/PrintStream.println:(Ljava/lang/Object;)V28: iconst_329: newarray int31: astore_232: getstatic #3; //Field java/lang/System.out:Ljava/io/PrintStream;35: aload_236: invokevirtual #4; //Method java/lang/Object.getClass:()Ljava/lang/Class;39: invokevirtual #5; //Method java/io/PrintStream.println:(Ljava/lang/Object;)V42: getstatic #3; //Field java/lang/System.out:Ljava/io/PrintStream;45: aload_246: invokevirtual #4; //Method java/lang/Object.getClass:()Ljava/lang/Class;49: invokevirtual #6; //Method java/lang/Class.getSuperclass:()Ljava/lang/Class;52: invokevirtual #5; //Method java/io/PrintStream.println:(Ljava/lang/Object;)V55: return}?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的jvm七:数组创建本质的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jvm六:主动使用(1.new一个对象,
- 下一篇: jvm八:接口初始化规则