• 数组01(未完)


    数组

    数组的定义

    • 数组是相同类型数据的有序集合

    • 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成(按输入先后顺序)

    • 每一个数据称作一个数组元素,每个数组元素都可以通过一个下标来访问它们

    数组的声明和创建

    必须先声明数组变量,才能在程序中使用数组,声明语法:

    int[] nums;//首选方法,用这个就行

    int nums2[];//知道就好

    创建语法:

    nums = new int[10];//在这个数组里可以存放10个int类型的数字

    先声明再创建,就是正常的数组产生方法。

    这个数组里,每个数都有自己的下标,我们通过每个数的下标来访问,其中第一个数的下标为0,也就是说上面nums这个数组下标为0~9,共10个数。

     

    给数组中元素赋值

    nums[0] = 1;
    nums[1] = 2;
    nums[2] = 3;

    这里我们只给三个数赋了值,其他没赋值的都是默认值,int类型默认值为0,String类型默认值为null

    取值

    通过下标取值:

    System.out.println(nums[2]);

     

    设计一个计算所有元素的和

    这里用一个for循环来做

    public static void main(String[] args) {
           int[] nums = new int[10];//声明+创建数组
           nums[0] = 1;
           nums[1] = 2;
           nums[2] = 3;
           nums[3] = 4;

           int sum = 0;
           for (int i = 0; i < nums.length ; i++) {
               sum+=nums[i];//sum = sum + nums[i] 累加计算总和
          }
           System.out.println(sum);
      }

    我们可以通过 数组名.length 这个指令来获取数组长度

    上面这里把声明和创建放在一起,是常用的方法,拆开是便于学习,不要忘了写长度和[]。

     

    内存分析

    堆:存放new的对象的数组;可以被所有的线程共享,不会存放别的对象引用(当我们只声明数组时,数组会先在堆中产生,而栈里暂时没有)

    栈:存放基本变量类型(会包含这个基本类型的具体数值);引用对象的变量(会存放这个引用在堆里面的具体地址)(只有在我们创建了数组,也就是给数组具体是长度后,栈内就产生了数组,或者称为数组占用了栈的内存)

    方法区:可以被所有的线程共享;包含了所有的class和static变量

     

    三种初始化

    1. 静态初始化:

      int[] a = {1,2,3};
      Man[] mans = {new Man(1,1),new Man(2,2)}

      这里就是直接创建和赋值,下面的是类里创建,还没学到

    2. 动态初始化,也就是上面最开始我们学习的声明和创建

    3. 数组的默认初始化

      数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。

     

    四个基本特点

    1. 其长度是确定的。数组一旦被创建,它的大小不可以改变。

    2. 其中元素必须是相同类型的,不允许出现混合类型

    3. 数组中的元素可以是任何数据类型,包括基本类型和引用类型

    4. 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是保存在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的

     

    数组边界

    下标的合法区间:[1,length-1],如果越界就会报错

    ArrayIndexOutOfBoundsException:数组下标越界异常

    出现这个异常就要看看是不是哪里数组的下标越界了

  • 相关阅读:
    ASP.Net请求处理机制初步探索之旅
    WebService如何调试及测试工具
    winform窗体间传值
    C# 窗体间传值方法大汇总
    c#写windows服务
    C# 公关类(全)
    简单的yoman generator
    Service Worker + Push API + Notification API实现桌面消息推送
    Service Worker
    HTML5桌面通知Notification
  • 原文地址:https://www.cnblogs.com/jimmykane/p/12602648.html
Copyright © 2020-2023  润新知