java x.length_Java中的length和length()
紅顏莎娜
稍微簡化一下,您可以認為它是一種特殊情況,而不是普通類(有點像基元,但不是)。字符串和所有集合都是類,因此獲取大小,長度或類似內容的方法。我猜設計的原因是性能。如果他們今天創建了它,他們可能想出了一些類似數組支持的集合類。如果有人感興趣,下面是一小段代碼,以說明所生成代碼中兩者之間的區別,首先是源代碼:public class LengthTest {? public static void main(String[] args) {? ? int[] array = {12,1,4};? ? String string = "Hoo";? ? System.out.println(array.length);? ? System.out.println(string.length());? }}截斷javap -c在類上運行的字節代碼中不太重要的部分,最后兩行將得到以下結果:20: getstatic? ?#3; //Field java/lang/System.out:Ljava/io/PrintStream;23: aload_124: arraylength25: invokevirtual? ?#4; //Method java/io/PrintStream.println:(I)V28: getstatic? ?#3; //Field java/lang/System.out:Ljava/io/PrintStream;31: aload_232: invokevirtual? ?#5; //Method java/lang/String.length:()I35: invokevirtual? ?#4; //Method java/io/PrintStream.println:(I)V在第一種情況下(20-25),代碼僅向JVM請求數組的大小(在JNI中,這將是對GetArrayLength()的調用),而在String情況下(28-35),它需要執行以下操作:方法調用以獲取長度。在1990年代中期,如果沒有良好的JIT和功能,僅使用java.util.Vector(或類似的東西),而不是像一個類卻表現得并不快的語言構造,將完全喪失性能。他們當然可以將屬性掩蓋為方法調用并在編譯器中進行處理,但是我認為在不是真正類的東西上使用方法會更加令人困惑。
總結
以上是生活随笔為你收集整理的java x.length_Java中的length和length()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java封装省市区三级json格式,微信
- 下一篇: java自动的废料收集_Java 垃圾收