数组的概述

  1. 数组:是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理
  2. 数组的相关概念:数组名、元素、角标/下标/索引、数组的长度(数组中元素的个数)
  3. 数组的特点:
    • 数组是有序排列的
    • 数组本身是引用数据类型,但数组的元素可以是任何数据类型(基本数据类型、引用数据类型)
    • 数组在内存中开辟的是一块连续的空间
    • 数组的长度一旦确定,就不能修改
  4. 数组的分类:
    • 按维数分类:一维、二维、三维······
    • 按数据元素数据类型分类:基本数据类型元素的数组、引用数据类型的数组

一维数组的使用:

  1. 数组的声明和初始化

    • 静态初始化:数组的声明和初始化赋值同时进行

      int[] ids;
      ids = new int[]{1,2,3,4};

    • 动态初始化:数组的声明和初始化赋值分开进行

      String[] names = new String[5];

​ 一旦初始化完成,数组的长度就确定下来了

  1. 如何调用数组的指定位置的元素

    数组的角标是从0开始到数组的长度-1结束。

    names[0]——表示第一个元素

  2. 如何让获取数组的长度

    使用数组的属性:lengh

    eg:names.length

  3. 如何遍历数组的元素

    借助循环结构

    for(int i=0;i<names.length;i++) {
    System.out.println(names[i]);
    }
  4. 数组元素的默认初始化值

    • 数组元素是整型:0
    • 数组元素是浮点型:0.0
    • 数组元素是boolean型:false
    • 数组元素是char型:0或'\u0000',而非'0'
    • 数组元素是引用数据类型:null
  5. 数组的内存解析

二维数组的使用

二维数组:一维数组的元素是另一个一维数组

  1. 二维数组的声明和初始化

    静态初始化:

    int[][] arr1 = new int[][]{{1,2,3},{6,8},{3,6,8,9}};

    动态初始化:

    ​ ①String[][] arr2 = new String[4][3];

    ​ ②String[][] arr3 = new String[4][];

    其他也正确的写法

    ​ ①String[] arr4[]String arr[][]【[]的位置放在类型或变量后面都可以,一维数组同】

    ​ ②int[][] arr1 = {{1,2,3},{6,8},{3,6,8,9}}; 【类型推断】

  2. 如何调用二维数组的指定位置的元素

    System.out.println(arr1[2][0]);//3
    
    System.out.println(arr2[3][1]);//null
    
    //arr3[2] = new String[4];
    System.out.println(arr3[2][3]);//报错,需先赋值
  3. 如何让获取二维数组的长度

    属性:length

  4. 如何遍历二维数组的元素

    嵌套循环

    for(int i=0;i<arr.length;i++){
    for(int j=0;j<arr[i].length;j++){
    System.out.println(arr[i][j]);
    }
    }
  5. 二维数组元素的默认初始化值

    ​ 规定:二维数组分为外层数组元素,内层数组元素 int[][] arr = new int[3][4]

    ​ 外层数组元素,arr[0],arr[1] 内层数组元素,arr[0][0],arr[1][2]

    ①外层数组元素的默认初始化值为地址值;内层数组元素的默认初始值,同一维数组,与数据类型有关

    ②特殊的,针对String[][] arr3 = new String[4][];定义方式,外层的默认初始值:null;内层数组元素不能调用,否则报错。

  6. 二维数组的内存解析

Java学习——数组的基础知识的更多相关文章

  1. Java学习之旅基础知识篇:数据类型及流程控制

    经过开篇对Java运行机制及相关环境搭建,本篇主要讨论Java程序开发的基础知识点,我简单的梳理一下.在讲解数据类型之前,我顺便提及一下Java注释:单行注释.多行注释以及文档注释,这里重点强调文档注 ...

  2. Java学习1——计算机基础知识

    本文包含了一些计算机基础知识:计算机组成:Windows常用快捷键:DOS常用命令:计算机语言发展史.

  3. Java学习之旅基础知识篇:数组及引用类型内存分配

    在上一篇中,我们已经了解了数组,它是一种引用类型,本篇将详细介绍数组的内存分配等知识点.数组用来存储同一种数据类型的数据,一旦初始化完成,即所占的空间就已固定下来,即使某个元素被清空,但其所在空间仍然 ...

  4. Java学习之旅基础知识篇:面向对象之封装、继承及多态

    Java是一种面向对象设计的高级语言,支持继承.封装和多态三大基本特征,首先我们从面向对象两大概念:类和对象(也称为实例)谈起.来看看最基本的类定义语法: /*命名规则: *类名(首字母大写,多个单词 ...

  5. java学习笔记之基础知识

    1.class不加修饰符默认default,只在当前包里能用. 2.构造函数前面的修饰符的作用类似class的,限制引用的权限. 3.java对象的创建其实就是类的实例化,类的实例化就是在堆上copy ...

  6. 《Java核心技术·卷Ⅰ:基础知识(原版10》学习笔记 第5章 继承

    <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 目录 <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 5.1 类.超类和子类 5.1 ...

  7. MyBatis:学习笔记(1)——基础知识

    MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...

  8. Java学习笔记之---基础语法

    Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...

  9. JAVA学习笔记—review基本知识[反射与异常]

    JAVA学习笔记—review基本知识[反射与异常] 1.异常: 1.1异常的分类: Java会将所有的异常封装成对象,其根本父类为Throwable. Throwable有两个子类:Error 和E ...

随机推荐

  1. BM 学习笔记

    两个 BM 哟 1.Bostan-Mori 常系数其次线性递推. 实际上这个算法是用来计算 \([x^n]\frac {F(x)}{G(x)}\) 的... 我们考虑一个神奇的多项式:\(F(x)F( ...

  2. GeneralUpdate20220323里程碑版本发布

    大家好我是juster,GeneralUpdate的开源项目作者.这次将发布GeneralUpdate里程碑版本,该版本发生了巨大改变历时4个月的时间终于要和大家见面了.开源不易希望大家能多多支持.可 ...

  3. chili

    靶机准备 首先将靶机ova文件导入 网络模式改为NAT 扫描ip netdiscover -r 192.168.164.0/24 kali:192.168.164.137 渗透测试 扫描端口 nmap ...

  4. java打入jar包

    首先在项目下创建一个文件夹,保存我们的jar包. 在项目名上右击,依次点击[New]-->[Floder],打开新建文件夹窗口 输入文件夹名称[lib],点击[ok].我们通常在lib文件夹中存 ...

  5. springboot-@EventListener简单用法

    @EventListener简单描述 简化我们编写监听类的步骤,不需要再继承ApplicationListener接口去实现onApplicationEvent了. 例子: @Component pu ...

  6. kafka partiton迁移方法与原理

    在kafka中增加新的节点后,数据是不会自动迁移到新的节点上的,需要我们手动将数据迁移(或者成为打散)到新的节点上 1 迁移方法 kafka为我们提供了用于数据迁移的脚本.我们可以用这些脚本完成数据的 ...

  7. @Component, @Controller, @Repository, @Service 有何区别?

    @Component :这将 java 类标记为 bean.它是任何 Spring 管理组件的通 用构造型.spring 的组件扫描机制现在可以将其拾取并将其拉入应用程序环境 中. @Controll ...

  8. java-第三方工具去做一些校验

    推荐大家使用第三方 jar 的工具类去做判空.比如:从 Map 中取一个 key 的值,可以用 MapUtils 这个类:对字符串判空使用 StringUtils 这个类:对集合进行判空使用 Coll ...

  9. Jpa设置默认值约束

    使用SpringDataJpa设置字段的默认值约束的2种方式 // 第一种方式是修改建表时的列定义属性 @Column(columnDefinition = "varchar(35) def ...

  10. Redis 回收进程如何工作的?

    一个客户端运行了新的命令,添加了新的数据.Redi 检查内存使用情况,如 果大于 maxmemory 的限制, 则根据设定好的策略进行回收.一个新的命令被执 行,等等.所以我们不断地穿越内存限制的边界 ...