红颜莎娜

稍微简化一下,您可以认为它是一种特殊情况,而不是普通类(有点像基元,但不是)。字符串和所有集合都是类,因此获取大小,长度或类似内容的方法。我猜设计的原因是性能。如果他们今天创建了它,他们可能想出了一些类似数组支持的集合类。如果有人感兴趣,下面是一小段代码,以说明所生成代码中两者之间的区别,首先是源代码: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()相关推荐

  1. java中数组的length_java中数组有没有length()方法?string没有lenght()方法?

    展开全部 java中数组是没有length()方法的,只有length属性,数组array.length返回62616964757a686964616fe4b893e5b19e313333663064 ...

  2. java 数组 length 减少_java中数组有没有length()方法?string没有lenght()方法?

    java中数组有没有length()方法,求数组的长度可以使用数组的length属性. int length=arr.length;//求数组的长度 ------------------------- ...

  3. java中length和length()方法的区别

    在Java中, length方法用于获取数组的长度. int[] arr = new int[10]; System.out.println(arr.length); 而length()用于获取Str ...

  4. Java中length、length()、size()区别

    记某一次刷题: 计算下字符串的长度,哦哦简单嘛,然后一写 int len=str.length; 咦?怎么报错了,那再加上**()括号**试试把 int len=str.length(); 编译通过了 ...

  5. Java中的.length与.length()

    目录 一. .length 1. .length究竟有多长? 2. 为什么会有.length呢? 3. 二维数组的创建方法 4. 数组是对象 二. .length() 1. .length()怎么用呢 ...

  6. Java中关于length和length()的问题小结

    Java中数组有没有 length()方法?String 有没有 length()方法? 数组没有 length()方法, 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员 ...

  7. java定义一个盒子类box_定义一个Box(盒子)类,在该类定义中包括数据成员: length(长),width(宽)和height(...

    定义一个Box(盒子)类,在该类定义中包括数据成员: length(长),width(宽)和height( 定义一个Box(盒子)类,在该类定义中包括数据成员: length(长),width(宽)和 ...

  8. c++获取数组长度_灵魂拷问:Java如何获取数组和字符串的长度?length还是length()?...

    限时 1 秒钟给出答案,来来来,听我口令:"Java 如何获取数组和字符串的长度?length 还是 length()?" 在逛 programcreek 的时候,我发现了上面这个 ...

  9. 灵魂拷问:Java如何获取数组和字符串的长度?length还是length()?

    限时 1 秒钟给出答案,来来来,听我口令:"Java 如何获取数组和字符串的长度?length 还是 length()?" 在逛 programcreek 的时候,我发现了上面这个 ...

最新文章

  1. ST为飞行时间传感器增加了多目标测距
  2. 把数据保存到cook_JavaScript数据存储 Cookie篇
  3. @Mock与@InjectMocks的区别
  4. # 和 ## 的区别
  5. C++中父类的虚函数必需要实现吗?
  6. char型变量能不能存储一个中文汉字重写和重载的规则
  7. iOS.数据持久化.PersistenceLayer.属性列表
  8. Java热搜问题大整理
  9. BZOJ1059 [ZJOI2007]矩阵游戏
  10. HTTP 状态码502 深度解析
  11. 如何计算近似纳什均衡_博弈 | 精炼贝叶斯纳什均衡
  12. 读 《周爱民--大道之简》 笔记
  13. 关于Echarts南丁格尔玫瑰图的部分解释
  14. 利用图示法判别AR,MA,ARMA,ARIMA模型平稳性
  15. 公司里面常说的“BP”,“BU”到底是什么意思?
  16. 正交子空间投影的学习笔记
  17. oracle查看日期是第几周,oracle查看日期是第几周-Oracle
  18. 软件工程之面向对象分析与设计
  19. CSS——网页版心和布局流程
  20. MySQL 表中 MUL代表什么含义

热门文章

  1. composer-安装插件包
  2. mysqldump 定时备份数据(全量)
  3. 说说 JavaScript 计时器的工作原理
  4. 什么是域名服务器(DNS)
  5. 关于如何在BCB中使用CodeGuard
  6. 全局曝光和卷帘曝光的区别
  7. google Chrome 浏览器源码地址地址!
  8. 理解zookeeper选举机制
  9. Linus Torvalds谈ECC内存的重要性 痛斥英特尔正在扼杀它
  10. windows 禁用ipv6服务_Win10如何关闭IPV6?Win10禁用IPv6的方法