`

java数组中length到底是什么

阅读更多
原文地址: http://topic.csdn.net/u/20070606/15/b77a37ea-5b5b-49d1-8ab4-5968467a4a99.html

果子的研究能力真是很强啊!里面几位前辈的底层能力更是值得敬佩。

问题:
在所有数组中有唯一的一个属性——length,那么这个属性是在Java的哪一个类中的呢?这些数组的这个属性是从哪来的?不明白。



答案:
数组是Java特殊处理过的,
int   i   =   args.length;

可以通过javap   看到指令为
aload_0
arraylength
istore_1
return


可见Java专门为Array定义了取得长度的指令了

------------------------------------------------------------------------------
数组的length即不是方法,也不是字段。
在一个数组对象上调用length,会被Java编译器编译成一条arraylength指令(Java   binary   code)。
而访问字段的语句会被编译成getfield或getstatic指令,调用方法的语句则会被编译成invokestatic,invokevirtual或invokespecial等指令。


Java字节码中有许多单独针对数组的指令,它们在其它任何非数组类型的对象上调用都是毫无意义的。
由此可见,它们本就不一样,不能等同起来直接进行对比。

------------------------------------------------------------------------------
1。length不是array的方法或者属性
这个很好证明:new个数组出来   getDeclaredFields()是0
2。java对数组的操作是指令级的。
分享到:
评论
1 楼 yayg 2010-06-04  
谢谢,解决了我的疑问。

相关推荐

    Java数组练习题(带答案).doc

    Java数组是Java编程语言中的基本数据结构之一,用于存储固定数量的同类型元素。了解和熟练掌握数组的使用是学习Java的重要环节。本篇练习题涵盖了数组的基本概念、操作和异常处理,下面是针对题目中涉及知识点的详细...

    Java数组与内存控制

    ### Java数组与内存控制 #### 一、Java数组在内存分配方面的知识 ##### 1.1 数组初始化 - **声明数组的时候如何分配内存:** - 在Java中,数组的声明并不直接分配内存,而仅仅是创建了一个数组引用变量。例如: ...

    JAVA 数组中方法(笔记)

    ### JAVA 数组中方法(笔记) #### 一、数组的概念 **数组**是计算机科学中最基本的数据结构之一,用于存储相同类型数据的有序集合。在Java中,数组是一种引用类型,它可以用来存储固定数量的同类型元素。数组的每...

    5-Java数组与方法

    在Java编程语言中,数组是一种特殊的数据结构,用于存储同类型元素的集合。它们提供了一种方式来组织和管理大量数据,使得我们可以高效地访问和操作这些数据。本章将深入探讨数组的基本概念、定义以及如何在实际编程...

    java数组排序

    在Java编程语言中,数组排序是一项基础且重要的任务。它涉及到不同的算法,这些算法通过比较和交换元素来达到数组元素的有序状态。本篇将详细探讨几种常见的排序算法及其在Java中的实现。 首先,让我们从最简单的...

    java数组

    Java数组是程序设计中不可或缺的基础概念,它是一种数据结构,允许我们存储同类型的多个元素。在Java中,数组是对象,具有固定的大小,一旦创建,其长度就不能改变。本篇文章将深入探讨Java数组的各个方面,包括创建...

    Java数组中的查找

    ### Java数组中的查找:基础知识与实现细节 在Java编程中,数组是一种常用的数据结构,用于存储固定大小的同类型元素序列。对数组进行查找是基本且频繁的操作之一,特别是对于初学者而言,掌握如何在数组中查找特定...

    java数组函数(摘自JAVA编程思想)

    通过`com.bruceeckel.util`包中的工具类,我们可以更加高效和便捷地处理Java数组,提高代码的可读性和维护性。学习和熟练掌握这些数组函数,对于提升Java编程能力是非常有帮助的。在实际开发中,我们应该充分利用...

    java数组_java_java数组_

    Java数组是Java编程语言中的基本数据结构之一,它允许我们存储多个同类型的元素在一个单一的变量中。数组的使用在程序设计中至关重要,因为它提供了一种高效、有序的方式来管理和访问数据。下面将深入探讨Java数组的...

    Java数组,Java数组,多线程编程

    Java数组是程序设计中的基本构建块,它允许程序员存储多个相同类型的数据在一个单一的结构中。在Java中,数组是一种对象,它们具有固定的大小,并且一旦创建,就不能更改其长度。数组提供了通过索引来访问其元素的...

    java 数组求和计算

    以上内容涵盖了Java数组求和计算的基本知识以及相关的扩展话题。理解并掌握这些知识点对于进行有效的Java编程至关重要。在实际应用中,根据具体需求,可能还需要考虑性能优化、异常处理等方面的问题。

    java 数组的合并

    在Java编程语言中,数组是一种基础且重要的数据结构,用于存储同类型的元素序列。当我们需要将两个或多个数组合并成一个大的数组时,就需要用到数组的合并技术。本篇文章将详细探讨Java中如何实现数组的合并。 首先...

    Java数组相关的例子代码

    本篇将深入探讨Java数组的相关知识点,并通过实际的例子代码来加深理解。 1. **数组的声明与初始化** 在Java中,我们可以声明一个数组并同时初始化它。例如,创建一个包含5个整数的数组: ```java int[] ...

    java 数组 PPT

    Java数组是Java编程语言中基本的数据结构之一,它允许存储同一类型的多个元素。在本PPT中,我们将深入探讨Java数组的概念、创建、初始化、访问和操作数组的各种方法。 一、数组的概念 数组是一种线性数据结构,它将...

    Java数组倒置.rar

    总的来说,Java数组倒置是编程基础中的一部分,掌握不同方法可以帮助开发者根据具体场景选择最合适的实现。无论是简单的双指针法,还是利用集合工具类,甚至Java 8的流API,都体现了Java语言的灵活性和多样性。理解...

    第03讲 JAVA数组.ppt

    【Java数组】是Java编程语言中基础且重要的数据结构,它允许存储固定数量的相同类型的数据。数组在Java中属于引用类型,也就是说数组本身是一个对象,数组中的每个元素相当于这个对象的成员变量。数组可以包含任何...

    Java数组传递及可变参数操作实例详解

    Java数组传递及可变参数操作实例详解 Java 数组传递是指在方法之间传递数组对象的引用,而不是传递数组对象本身。这意味着,方法中对数组的修改将会影响原数组。在 Java 中,所有对象都是通过引用进行操作的,而...

    java数组基础与典型应用

    ### Java数组基础与典型应用详解 #### 一、数组的概念及基本使用 数组是Java中最基本的数据结构之一,用于存储固定大小的同类型元素集合。它允许程序员在单个变量中存储多个相同类型的数据项,这极大地提高了数据...

    Java 数组练习

    Java数组是编程基础中的核心概念,它是一种存储固定数量同类型元素的数据结构。在这个"Java 数组练习"中,我们主要关注的是如何在Java中创建、初始化、操作和理解数组。下面将详细介绍Java数组的相关知识点。 1. **...

Global site tag (gtag.js) - Google Analytics