加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java中array.length()的内部代码是什么?

发布时间:2020-12-15 05:05:32 所属栏目:Java 来源:网络整理
导读:什么存储在数组的第10个位置 说 int[] array=new int[10]; 假设我们有值存储从array [0]到array [9],如果我不使用打印元素 array.length() 或者为(int a:array) 我该怎么办? 我的基本问题是JVM如何确定数组的结尾,是否在遇到解析数组的null或遇到垃圾值时
什么存储在数组的第10个位置

int[] array=new int[10];

假设我们有值存储从array [0]到array [9],如果我不使用打印元素

array.length()

或者为(int a:array)

我该怎么办?

我的基本问题是JVM如何确定数组的结尾,是否在遇到解析数组的null或遇到垃圾值时?什么是array.length()函数的内置代码?

解决方法

What is stored in 10th location of array say

my basic question is how will JVM determine end of array,is it when a null is encountered parsing array or when a garbage value is encountered? what is inbuilt code of array.length() function?

欢迎C/C++程序员:-)

对于数组,Java使用与C/C++不同的范例. C/C++使用终结符/ sentinel a.k.a.“garbage”)值来表示数组的结尾.在Java中,数组更像是具有特殊“实例变量”的可变长度的对象,该变量长度表示数组中有多少个插槽.这个特殊的“实例变量”在数组的创建时设置,是只读的.可以通过说array.length来访问它.

Java希望代码知道何时停止在数组末尾,确保它们没有指定大于length的索引 – 但是,出于安全原因,JVM会检查对数组的每次访问,以防万一.如果JVM发现数组索引小于0或大于length – 1,则JVM会抛出IndexOutOfBoundsException.

What is stored in 10th location of array

由于我们总是可以检查长度,因此Java中数组末尾不需要标记.在数组中的最后一项之后没有任何特殊内容(它可能是其他变量的内存).

if I were to print elements without using array.length()

for(int a: array) {
    // code of loop body here
}

这段代码由编译器神奇地转换为:

for (int i = 0; i < array.length; i++) {
    int a = array[i];
    // code of loop body here
}

但是,用户代码无法访问i索引变量.此代码仍隐式使用array.length.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读