wordpress 网站搬家,宠物网站开发文档,租国外服务器一个月多少钱,建设银行网站电脑版红颜莎娜稍微简化一下#xff0c;您可以认为它是一种特殊情况#xff0c;而不是普通类(有点像基元#xff0c;但不是)。字符串和所有集合都是类#xff0c;因此获取大小#xff0c;长度或类似内容的方法。我猜设计的原因是性能。如果他们今天创建了它#xff0c;他们可能…红颜莎娜稍微简化一下您可以认为它是一种特殊情况而不是普通类(有点像基元但不是)。字符串和所有集合都是类因此获取大小长度或类似内容的方法。我猜设计的原因是性能。如果他们今天创建了它他们可能想出了一些类似数组支持的集合类。如果有人感兴趣下面是一小段代码以说明所生成代码中两者之间的区别首先是源代码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(或类似的东西)而不是像一个类却表现得并不快的语言构造将完全丧失性能。他们当然可以将属性掩盖为方法调用并在编译器中进行处理但是我认为在不是真正类的东西上使用方法会更加令人困惑。