JAVA初学笔记&宋红康JAVA基础篇(其六)

本文深入解析数组的基本概念,包括其定义、特征、分类及使用方法。从初始化、声明到调用,全面覆盖数组的各个方面,并对比C++中数组的不同初始化方式,探讨内存分配与回收的机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组

由多个相同类型数据按一定顺序排列的集合,并用一个名字命名,并且通过编号的方式对这些数据进行统一管理

  1. 特征

    • 数组名

    • 下标(或索引),内数据有序排列

    • 元素

    • 数组的长度

  2. 分类

    • 维数:一维数组、二位数组等
    • 数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组
  3. 使用

    //初始化
    /*
    里面元素是整型(int):0
    里面元素是浮点型(float/double):0.0
    里面元素是char型:0或者'\u0000',不是'0'!
    里面元素是boolean型:False
    里面元素是引用数据类型(例如String):Null
    */
    //声明
    int[] ids;
    //静态初始化
    ids = new int[]{1,2,3,4};
    //动态初始化
    String[] names = new String[5];
    
    //错误示范
    int[] arr1 = new int[];  // 没有定义数组大小
    int[5] arr2 = new int[5];  // 重复
    int[] arr3 = new int[3]{1,2,3};  // 数组‘超载’
    
    //调用
    arr3[0];
    
    //获取数组长度
    arr_names,length;
    
    //遍历
    for(int i = 0; i<arr_names,length;i++){
        System.out.println(arr_names[i]);
    }
    
  4. C++的引申

    int a[10]和int a=new int[10]]的区别*

    • int a[10]使用简单,系统会自动进行内存分配与回收。

    • int* a = new int[10]需要判断内存是否分配成功,需要搭配delete[] a进行手动释放。

    • 如果要分配大量空间,例如1w,只能用 int* a=new 。

      因为int a[] 这种方式,内存是存放在栈上。int* a = new 内存是放在堆上

      栈是连续内存/堆是非连续内存

      可分配空间少/可分配空间大

      注意:这里指的是单个new,多个new出来的就不是连续内存了

    • 两者相比,后者有动态分配内存的优势。

  5. 内存结构说明

    看到网上有文章讲的比视频还详细

    JVM内存结构简单认识

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值