首页 > 其他分享 >数组基础

数组基础

时间:2024-03-17 13:56:01浏览次数:17  
标签:初始化 arr int 基础 初始值 数据类型 数组

数组

定义

  • 数组是一种容器,能存储同类型的多个值。

    Tip

    • 存储数据时,需要考虑隐式转换的问题

    • 例如:int( boolean byte short int double )其中double不能转换成boolean。

    • 建议具体数值与数据类型保持一致。


静态初始化

  • 初始化:在内存中为数组容器开辟空间,并将数据存入容器的过程。
  • 完整格式:数据类型[] 数组名 = new 数据类型[ ]{ };
  • 简化格式:数据类型[] 数组名 = { };//常用

地址值

  • 数组在内存中的位置

  • 查询地址值的格式 :System.out.println(数组名);

    • double[] arr = {11,12,13,14,15};

    • System.out.println(arr);

    • 运行结果:[D@776ec8df

    • [ : 表示数组 D : 数据类型 @ : 间隔符 776ec8df : 真正的地址值,是十六进制。


元素访问

  • 利用索引对数组中的元素进行访问

  • 使用时,把数组中的元素赋给变量。

    int[] arr = {1,2,3}
    int number = arr[i];
    
  • 把数据存入数组中

  • 格式:数组名[索引] = 具体数值/变量(会覆盖原来的数字,即原来的数字不存在。)


数组遍历

  • 遍历是取出数据的过程

  • 如何获取所有元素?答:利用循环。

    • 开始条件:0
    • 结束条件:数组长度-1(最大索引-1)
  • int[] arr = {2,15,25,45,22,45,11,78,94,66}
    for(int i = 0;i<arr.length;i++){ // i <= arr.length-1
        System.out.println(arr[i]);
    }
    
  • 拓展

    • 由idea提供快捷方式 arr.fori

动态初始化

定义

  • 手动指定长度,由系统分配初始值。

格式

  • 数据类型[] 数组名 = new 数据类型[数组长度]
  • 例如: int[] arr = new int[3];

默认初始值

  • 整数类型:默认初始值0
  • 小数类型:默认初始值0.0
  • 布尔类型:默认初始值false
  • 字符类型:默认初始值'/u0000' 即空格
  • 引用数据类型:默认初始值null

提示

  • 需要手动给元素添加数值

动态初始化与静态初始化的区别

  • 静态初始化:手动制定数组元素,系统根据数组个数计算出数组长度。
  • 那么在要明确操作的具体数据时,使用静态初始化。
  • 动态初始化:手动指定数组的长度,由系统分配初始值。
  • 那么只明确数组个数,而不知道具体数值时,使用动态初始化。

数组的内存图

黑马程序员 JAVA上 P62 数组的内存图

JAVA内存分配的概念


栈与堆

  • 只要是new出来的一定是在堆里面开辟了一个小空间(这个小空间有地址值)
  • 多次new,那么堆里面有多个小空间,每个小空间中都会有各自的数据。

总结

  • 当两个数组指向同一个小空间时,其中一个数组对空间的值进行改变,那么其他数组再次访问时,数值是修改后的结果。

标签:初始化,arr,int,基础,初始值,数据类型,数组
From: https://www.cnblogs.com/jjhdbk/p/18078487

相关文章

  • 挖藏宝藏数组
    1 数组的概念数组是一组相同类型元素的集合,分为一维数组和多维数组,而多维数组中最常见的是二维数组。数组中存放的是1个或者多个数据,但是数组元素个数不能为0。 数组中存放的多个数据,类型是相同的。2 一维数组的创建和初始化2.1数组的创建一维数组创建的基本语法......
  • Unity3D 基础 05 场景加载
    Unity3D基础系列(第五期)场景配置首先,在资源文件夹里创建一个LoadScene场景,摆放一些物体,用来做初始场景。然后创建一个Stage文件夹,并创建两个场景Stage1、Stage2。两个Stage场景也可以简单布置一下,方便区分。接着,打开BuildSettings,把需要加载的场景添加到配置......
  • 防火墙基础
    目录一、基本内容1、防火墙2、分类3、防火墙常见的功能4、防火墙策略二、防火墙发展史1、包过滤防火墙2、应用代理防火墙3、状态监测防火墙4、web应用防火墙(WAF)5、多合一网关防火墙6、下一代防火墙(NGFW)三、Windowsdefender防火墙1、常用命令(图形化界面不再赘述......
  • kmp算法next数组详解
             kmp算法是一项特别重要的算法,它的难点主要在于next数组的求解。##首先next[i]表示字符串下标i前子字符串(s[0~i-1])的最长相同前后缀的值。以字符串s="ababbacaba"为例子分析。前缀:aababaababababbababba ababbac ababbaca ababbacab后缀:aba......
  • lc2104 子数组的范围和
    给定数组nums[n],子数组的范围指子数组中最大元素与最小元素的差值,返回nums中所有子数组的范围之和。子数组是数组的连续非空序列。1<=n<=1000;-1e9<=nums[i]<=1e9分别考虑每个元素作为最小和最大值的情况,统计作为最小值的次数,作为最大值的次数,这个可以用单调栈求出,然后统计各位......
  • Java基础 --- 面向对象
    面向对象面向对象介绍介绍面向:拿、找对象:能干活的东西面向对象编程:拿东西过来坐对应的事情设计对象并使用类和对象类(设计图):是对象共同特征的描述;对象:是真实存在的具体东西在Java中,必须先设计类,才能获得对象。如何定义类publicclass类名{1.成员变量(代......
  • Spring基础
    beans.xml配置文件<!--不建议使用--><!--<beanid="user"class="com.jiang.pojo.user">--><!--<constructor-argindex="0"value="岳不群"/>--><!--</bean>--><!-......
  • 第7讲:数组和函数实践:扫雷游戏
    第7讲:数组和函数实践:扫雷游戏1.扫雷游戏分析和设计1.1扫雷游戏的功能说明1.2游戏的分析和设计1.2.1数据结构的分析1.2.2文件结构设计2.扫雷游戏的代码实现3.扫雷游戏的扩展1.扫雷游戏分析和设计1.1扫雷游戏的功能说明•使用控制台实现经典的扫雷游戏•......
  • 大都市meg(线段树/树状数组+LCA)
    题目描述在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员BlueMary也开始骑着摩托车传递邮件了。不过,她经常回忆起以前在乡间漫步的情景。昔日,乡下有依次编号为1..n的n个小村庄,某些村庄之间有一些双向的土路。从每个村庄都恰好有一条路径到达村庄1(即比特堡)。并且......
  • Linux的基础
    linux的基础命令linux命令的基本形式:command【-options】【parameter】command:命令command:参数(可选,非必填)options:选项(可选,非必填)Ls:以平铺的形式列出当前目录下的所有内容。ls【-a,-l,-h】【parameter】(可选,非必填)。-a:表示all,即列出全部文件(包含隐藏的文件/文件夹)。-l:......