精华内容
下载资源
问答
  • java 数组下标越界异常(ArrayIndexOutOfBoundsException) java 数组下标越界异常(ArrayIndexOutOfBoundsException)
  • 数组下标为什么从0开始:a.初步理解:b.加深理解: 1.数组的由来: // 变量声明 int a = 1; int b = 2; int c = 3; int d = 4; ... int n = 20; // 一个int类型4个字节,一个字节占8位 a.字面引申: ...

    1.数组的由来:

    // 变量声明
    int a = 1;
    int b = 2;
    int c = 3;
    int d = 4;
    ...
    int n = 20;
    
    // 一个int类型4个字节,一个字节占8位
    

    a.字面引申:

    看到上面的这些int数据,都是int类型,有人就想,既然都是一种类型,为什么不能把他们放在一起?用一个变量接收就行了,每一次还要取一个名字(a,b,c,d…),特别麻烦!!

    b.通俗解释:

    课间操的时候,广播员让某某班赶紧下来,而不是一个一个叫学生名字,让学生下来集合!
    班级里,每个学生都有座位号:
    一个年级多个班:int-a班,long-b班
    在这里插入图片描述

    int[]  a= {1,2,3,4,5,6,7,8,9,10}
    long[]  b = {11,12,13,14,15,16,17,18,19,20}
    

    每个班级就像一个数组;
    而且每个班的座位就只有那么些个!!

    数组的特点:

    1.同类型元素
    2.固定大小(座位有限)

    位置有限,那么ArrayList当然得顺应民意出来咯,毕竟数组的长度有限没那么容易,解决问题也是不怎么方便!!

    理解不可扩容:因为在创建数组的时候,你说你要3个位置,那么计算机给你3个位置,第四个位置可能被别人申请走了,计算机不可能说,你申请3个位置,他给你多预留2个位置给你,以防你扩容用。想法是美好的,要是预留的位置你不用,那不是浪费了??

    2.数组下标为什么从0开始:

    int[] a = new int[5];
    

    a.初步理解:

    a.上面的int数组申请5片连续的空间地址,就像盗墓的机关门一样,连续的!
    b.盗墓的机关门,先看见第一个门,然后才能见到另一扇门,数组的空间和机关门类似,如图:
    在这里插入图片描述

    c.第一扇门,为了记住门,不迷路,于是你给门上弄了一个1001的门牌号:1001门开了
    d.闯过1001,你的脚踏入下一道门,为了记住自己走过多少道门,只有每走一扇门,就在第一道门上累加:

    第几扇门		       地址  索引  最终地址
    第二扇门记做int[1]1001 + 1 = 1002
    类推:
    第三扇门记做int[2]1001 + 2 = 1003
    第四扇门记做int[3]1001 + 3 = 1004
    第五扇门记做int[4]1001 + 4 = 1005
    
    回头看:
    第一扇门记做int[0]1001 + 0 = 1001
    

    发现规律:数组知道第一个位置地址后,后面的地址可以根据规律计算

    b.加深理解:

    int[0] = 100;
    int[2] = 200;
    
    //int 占4个字节
    

    假设数组中第一扇门的地址记做2001那么因为int占4字节,需要往下数3个位置 + 1001的位置储存100这个值
    那么:2001 、2002、003、2004这四个地址用来存储100
    在这里插入图片描述

    1. 这样计算储存地址的时候,很方便!!!
      计算公式:储存起始地址 = 原始地址 + 索引*字节
      
      假设存放的是:int类型,原始int[0]的地址 = 1001
      现在要存放100这个值,那么计算机就会计算得知:1001 + 0*4 = 1001;
      从1001位置开始(包含1001),4个位置,存的就是 100
      
    2. 不用在门上一个一个的标记

    数组内存分配之堆栈:https://blog.csdn.net/lcl19970203/article/details/54428358

    展开全文
  • java数组下标越界的问题

    万次阅读 2015-07-28 00:10:29
    java数组下标越界的问题: 最近一直出现这类问题:数组下标越界 举例说明: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10 at day07.PaiXu.get3max(RankDemo2.java:15) at day07....

    java数组下标越界的问题:

    最近一直出现这类问题:数组下标越界

    举例说明:

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
    	at day07.PaiXu.get3max(RankDemo2.java:15)
    	at day07.RankDemo2.main(RankDemo2.java:54)
    意思是错在第十五行
    
     出现此类问题的原因有多方面。总结一下我所理解的,数组的长度决定了它所能装载的数据的量。还
    有就是数组计数是从零开始的
    例如:当Srring arr[]==new String[6];如果要往里输入名字的话就只能输入六个。多了就是下标越界。
    另外数组一般都是与for循环结合起来用,所以用的的时候要注意一下它的循环条件。
    
    

    展开全文
  • java关于数组下标越界

    千次阅读 2019-05-04 20:11:40
    本篇记录的就是因为数组的定长性引起的下标越界问题。 首先,我们定义一个数组。 int a =new int [5];这表示我们定义了一个Int 型,长度为5的数组。 在eclipse中,可以用数组名.length得到数组的长度。需要注意的时...

     数组是用来存储数据的。数组是定长的连续的内存片段。因为数组的定长性,我们可以对数组进行多种操作。本篇记录的就是因为数组的定长性引起的下标越界问题。
     首先,我们定义一个数组。 int a =new int [5];这表示我们定义了一个Int 型,长度为5的数组。
    在eclipse中,可以用数组名.length得到数组的长度。需要注意的时,每一个数组,其第一个下标时从0开始的。
    也就是0,1,2,3,4。而不是1,2,3,4,5.对于我们初学者,大多数下标越界都发生在以1作为开头。
    举个例子,在eclipse中输入如下代码:

     public static void main(String[] args) {     
        int [] a= new int [5];
         a[0]=0;
         a[1]=1;
         a[2]=2;
         a[3]=3;
         a[4]=4;
         a[5]=5;
       System.out.println(a[5]);
    }
    


    此时运行代码,会报错。 java.lang.Array
     Index out of bounds exception.这是因为a[5]=5,
    我们定义的数组没有这一项。数组长度为5,是从小标0开始而不是1.改正只需要删除越界的代码即可。在今后我们初学者学习过程中,
    遇到数组问题,应该严格写上注释,知道自己在干什么。求数组的长度一定要用“数组名.length”来写。不要靠自己的计算。
    始终记住数组是定长的连续内存片段。下标从0开始到“数组名.length-1”结束。
    --------------------- 
    作者:tr0824 
    来源:CSDN 
    原文:https://blog.csdn.net/tr0824/article/details/79118195 
    版权声明:本文为博主原创文章,转载请附上博文链接!

     

     

     

     

    展开全文
  • 如果不是那下标到底是什么呢? linkedlist是双向循环链表,有下标吗?如果没有为什么能用get set方法获取对应位置的值?
  • 一维数组 根据下标和循环进行赋值 public class Demo { public static void main(String[] args) { int[] num=new int[5];//提升性能 int length=num.length; for(int i=0;i<length;i++) { num[i]=i...

    一维数组 根据下标和循环进行赋值

    public class Demo {
    
    	public static void main(String[] args) {
    		int[] num=new int[5];//提升性能
    		int length=num.length;
    		for(int i=0;i<length;i++) {
    			num[i]=i+90;
    			System.out.println(num[i]);
    		}		
    	}
    }

    结果如下

    展开全文
  • Java数组下标

    2020-12-04 21:43:08
    题目: 实现: public class ArraySubscript { public static void main(String[] args) { int[] nums={2,7,11,15}; int target=26; for (int i = 0,j = 1; i <= nums.length-2;... if(target==nums[i]+nums[j])...
  • Java语言,数组下标的范围是否可以从-1开始呢,我想修改范围
  • 模仿栈的操作 用数组下标模仿栈 的JAVA源代码
  • package practice;... // 顺序遍历数组arr中的元素 int arr[] = { 8, 5, 14, 5, 15, 5, 16 }; System.out.print("数组arr中的元素:"); for (int i = 0; i < arr.length; i++) { System.out.print(a
  • public class Test{ public static void main(String[]args){ ...doc显示Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:0 at Test.main(Test.java:3) 这是照着书上打的怎么还有错啊
  • JAVA数组下标和(19.3.26)

    千次阅读 2019-03-26 21:21:29
    *** 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。** 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 例如:...
  • 新手小白学JAVA 数组 数组工具类 二维数组

    万次阅读 多人点赞 2021-04-02 08:28:55
    数组下标是从0开始的,下标的最大值是数组的长度减1 1.2 创建数组 数组的创建方式一般分为动态初始化和静态初始化 动态初始化 int[] a = new int[5]; 静态初始化 int[] b = new int[]{1,2,3,4,5}; int[] c = {1,2,3...
  • 数组与集合的应用之数组操作(数组下标界限)
  • 转载于:https://www.cnblogs.com/jichuang/p/6515829.html
  • C++/JAVA数组下标为什么从0开始

    千次阅读 2017-12-05 10:38:52
    在我们日常的学习过程中,我们了解到在C++/JAVA中,数组下标是从0开始的。对于新手来说,遍历的数组的时候还真是容易出错。但是为什么要这样规定,这样规定有什么好处? 其实根据我们前辈的思想,这样规定的主要...
  • 详解数组下标

    千次阅读 2020-08-03 10:11:07
    提到数组,我想你肯定不陌生,甚至还会自信地说,它很简单啊。是的,在每一种编程语言中,基本都会有数组这种数据类型。不过,它不仅仅是一种编程语言中的数据类型,还是一种最基础的数据结构。尽管数组看起来非常...
  • 也不是所有的高级程序语言都是如此,比如python数组下标就支持负数。 原因一:历史原因语言出现顺序从早到晚c、java、javascript。 c语言数组下标是从0开始->java也是->javascript也是。 降低额外的学习和理解...
  • 获取数组元素下标

    千次阅读 2019-08-28 09:42:13
    /* * 获取某个元素下标 ...* arrays : 传入的数组 * * obj : 需要获取下标的元素 * */ function contains(arrays, obj) { var i = arrays.length; while (i--) { if (arrays[i] === obj) { r...
  • 数组下标为什么从0开始 ** (**不得不说的话:**这大概是我见到的在刚接触Java阶段的最简单易懂的解释了,当然随着我们学习的深入,这个问题其实还会有更细致更专业的解释。) 为什么数组下标是从0开始,而不是...
  • java 数组

    2020-02-15 20:40:33
    java 数组1. 数组的定义2.数组下标 1. 数组的定义 数据类型[ ] 数组名 = new 数据类型[容量]; 赋值左侧 数据类型: 告知编译器,当前数组中能够保存的数据类型到底是什么?并且在确定数据类之后,整个数组 中保存...
  • java数组

    千次阅读 2019-07-18 20:59:36
    java数组 数组是什么呢? 数组是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来唯一确定数组中的元素。根据数组的维度,可以将其分为一...
  • 数组中常见的异常: 1.下角标越界:ArrayIndexOutOfBoundsException 原因 :因为使用的索引值没有在合理范围(0~数组的长度-1)之内 2.空指针异常:NullPointerException 原因 :只要调用属性和方法的...
  • 数组特性 数组的一大特性:随机访问,这个在实际开发中大家也经常使用到。 数组地址 如何理解随机访问?假设有个数组int a[10],它的起始地址值为0x1000(address),那么当你访问第n个数据时(即a[n]),实际上是...
  • 数组下标越界与内存溢出

    万次阅读 2015-12-15 14:04:02
    在引用数组元素时,使用的下标超过了该数组下标的应有范围,但应注意的是: C/C++不对数组做边界检查。 可以重写数组的每一端,并写入一些其他变量的数组或者甚至是写入程序的代码。不检查下标是否越界可以有效提高...
  • 关于数组下标越界

    千次阅读 2018-01-21 09:54:59
    本篇记录的就是因为数组的定长性引起的下标越界问题。  首先,我们定义一个数组。 int a =new int [5];这表示我们定义了一个Int 型,长度为5的数组。 在eclipse中,可以用数组名.length得到数组的长度。需要注意...
  • 数组下标,为什么从0开始?

    万次阅读 2018-10-18 09:13:52
    为什么数组下标是从0开始,而不是从1开始呢?从1开始不是更符合人们的习惯么。 这个问题,稍后回答,先聊聊数组的基本特性。 数组(Array)一种线性表数据结构,用一组连续的内存空间,存储一组相同类型的数据 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 203,966
精华内容 81,586
关键字:

java数组的最大下标

java 订阅