java之数组模块

news2024/11/20 21:32:04

数组定义格式

1.1数组概述

  • 一次性声明大量的用于存储数据的变量

  • 要存储的数据通常都是同类型数据,例如:考试成绩

1.2什么是数组

数组(array)是一种用于存储多个相同类型数据的存储模型

1.3数组的定义格式

  • 格式一:数据类型[] 变量名

  • 范例: int[] arr

  • 定义了一个int类型的数组,数组名是arr

  • 格式二:数据类型 变量名[]

  • 范例:int arr[]

  • 定义了一个Int类型的变量,变量名是arr数组

数组初始化之动态初始化

2.1数组初始化概述

java中的数组必须先初始化,然后才能使用

所谓初始化,就是为数组中的数组元素分配内存空间,并为每个数组元素赋值

2.2数组初始化方式

  • 动态初始化

  • 静态初始化

2.3动态初始化

动态初始化:初始化只指定数组长度,由系统为数组分配初始值

  • 格式:数据类型[] 变量名=new 数据类型[数组长度]

  • 范例: int[] arr = new int[3];

public class ScannerDemo {
    public static void main(String[] args) {
        int[] arr=new int[3];
        /*
        左边:
        int:说明数组中的元素类型是int类型
        []:说明这是一个数组
        arr:这是数组的名称

        右边:
        new:为数组申请内存空间
        int:说明数组中的元素类型是int类型
        []:说明这是一个数组
        3:数组长度,其实就是数组中的元素个数
        * */
        }
    }

数组元素访问

3.1数组元素访问

  • 数组变量访问方式

  • 格式:数组名

  • 数组内部保存的数据的访问方式

  • 格式:数组名[索引]

  • 索引是数组中数据的编号方式

  • 作用:索引用于访问数组中的数据使用,数组名[索引]等同于变量,是一种特殊的变量名

  • 特征1:索引从0开始

  • 特征2:索引是连续的

  • 特征3:索引逐一增加,每次加1

public class ScannerDemo {
    public static void main(String[] args) {
        int[] arr=new int[3];
        /*
        左边:
        int:说明数组中的元素类型是int类型
        []:说明这是一个数组
        arr:这是数组的名称

        右边:
        new:为数组申请内存空间
        int:说明数组中的元素类型是int类型
        []:说明这是一个数组
        3:数组长度,其实就是数组中的元素个数
        * */
//        输出数组名
        System.out.println(arr);
        //输出数组中的元素
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        }
    }

内存分配

4.1Java中内存分配

Java程序在运行时,需要在内存中分配内存空间,为了提高运算效率,就对空间进行了不同区域的划分

因为每一片区域都有特定的处理数据方式和内存管理方式

  • 栈内存:存储局部变量

定义在方法中的变量,例如:arr

使用完毕,立即消失

  • 堆内存:存储

数组在初始化时,会为存储空间添加默认值

整数:0

浮点数:0.0

布尔:false

字符:空字符

引用数据类型:null

每一个new出来的东西都有一个地址值

使用完毕,会在垃圾回收器空闲时被回收

4.2数组内存图(单个数组)

4.3数组内存图(多个数组)

4.4数组内存图(多个数组指向相同)

数组初始化之静态初始化

5.1数组初始化之静态初始化

静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度

  • 格式:数据类型[] 变量名=new 数据类型[]{数据1,数据2,数据3,...};

  • 范例:int[] arr=new int[]{1,2,3};

  • 简化格式:数据类型[] 变量名={数据1,数据2,数据3,......};

  • 范例:int[] arr={1,2,3};

public class ScannerDemo {
    public static void main(String[] args) {
//定义数组
        int[] arr={1,2,3};
//输出数组名
        System.out.println(arr);
//输出数组中的元素
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
    }
}

数组操作的两个常见小问题

6.1数组操作的两个常见小问题

  • 索引越界

ArrayIndexOutOfBoundsException

访问了数组中不存在的索引对应的元素,造成索引越界问题

  • 空指针异常

访问的数组已经不再指向堆内存的数据,造成空指针异常

  • null:空值,引用数据类型的默认值,表示不指向任何有效对象

NullPointerException

数组常见操作

7.1遍历

public class ScannerDemo {
    public static void main(String[] args) {
        int[] arr={11,22,33,44,55};
        for (int x=0;x<5;x++){
            System.out.println(arr[x]);
        }

    }
}

7.2获取数组元素数量

  • 格式:数组名.length

  • 范例:arr.length

public class ScannerDemo {
    public static void main(String[] args) {
        int[] arr={11,22,33,44,55};
        for (int x=0;x<arr.length;x++){
            System.out.println(arr[x]);
        }

    }
}
  • 遍历通用格式

int[] arr={......};
for (int x=0;x<arr.length;x++){
arr[x]
}

7.3获取最值

public class ScannerDemo {
    public static void main(String[] args) {
        //定义数组
        int[] arr={12,45,98,73,60};
        
        //定义一个变量,用于保存最大值
        //取数组中的第一个数据作为变量的初始值
        int max= arr[0];
        
        //与数组中剩余的数据逐个比对,每次比对将最大值保存到变量中
        for (int x=1;x<arr.length;x++){
            if (arr[x]>max){
                max=arr[x];
            }
        }
        //循环结束后打印变量的值
        System.out.println("max:"+max);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/194273.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

h5实现相机

什么是取景器 取景器是什么&#xff1f;取景器是相机的一个专业术语&#xff0c;在前端就是扫描拍照 取景器的实现原理 请求手机的一个媒体类型的视频轨道&#xff0c;利用一个div或者图片作为上层蒙层&#xff0c;然后在利用canvas绘制视频中某一帧的画面绘制为图片。 前期…

HTML基础知识

一个网站由两部分组成&#xff1a;前端和后端。前端主流语言目前是HTML、CSS、JS等。HTML只是描述了页面的内容&#xff08;骨架&#xff09;&#xff0c;CSS才是描述了页面的样式。HTML结构HTML标签HTML代码是由“标签”构成的&#xff0c;HTML描述了页面上有什么东西&#xf…

数字化转型导师坚鹏:银行数字化转型为什么需要融合王阳明心学

在BLM银行数字化转型方法论中&#xff0c;我之所以融合BLM模型与王阳明心学&#xff0c;作为一个工科背景并拥有多年软硬件产品研发经验的人来说&#xff0c;深刻地知道很多人利用了科技的力量做了大量的恶事&#xff0c;而不是善事&#xff0c;如黑客大量盗取、泄漏、贩卖客户…

ESLint 的一些理解

ESLint ESLint 是在 ECMAScript/JavaScript 代码中识别和报告模式匹配的工具&#xff0c;它的目标是保证代码的一致性和避免错误。 为什么要使用ESLint 有的可以帮我们避免错误&#xff1b;有的可以帮我们写出最佳实践的代码&#xff1b;有的可以帮我们规范变量的使用方式&a…

Docker入门之使用Dockerfile 构建镜像(七)

文章目录1. 前言2. Docker file 核心要点2.1 注意事项2.2 Docker file 执行流程2.3 Docker Image、Docker file、Docker Container区别2.4 Dockerfile常用保留字指令2.4.1 FROM2.4.2 MAINTAINER2.4.3 RUN2.4.4 EXPOSE2.4.5 WORKDIR2.4.6 USER2.4.7 ENV2.4.8 ADD2.4.9 COPY2.4.1…

ansible 简单使用

运行过程 1.加载自己的配置文件&#xff0c;默认/etc/ansible/ansible.cfg&#xff1b; 2.查找对应的主机配置文件&#xff0c;找到要执行的主机或者组&#xff1b; 3.加载自己对应的模块文件&#xff0c;如 command&#xff1b; 4.通过ansible将模块或命令生成对应的临时py文…

OpenMMLab 实战营打卡 - 第 一 课

OpenMMLab 实战营打卡 - 第 一 课 复习下总忘的基础知识 卷积的通道数变化 前一层特征纬度&#xff08;通道数&#xff09;决定核的通道数 当前层输出的特征纬度&#xff0c;由核的数量决定 图像尺寸变化 padding 公式&#xff1a;H′H−K12pH^{\prime}H-K12 pH′H−K12p…

电源技术中的安森美 单通道电压电平转换器件FXLP34P5X 适合便携式应用方案

电源技术中的安森美 单通道电压电平转换器件FXLP34P5X 适合便携式应用方案 &#xff1a;输入转换器电源电压为VCC1&#xff0c;输出转换器电源电压为VCC。 该器件使用1.0V至3.6V的VCC值运行&#xff0c;主要用于要求超低功耗的便携式应用。内部电路由最小量的缓冲器级组成&…

普通大学生自学 JAVA 怎样才能进大厂?

前言 可以看一下现在大厂对于Java方面的要求 阿里 百度 腾讯 从上面可以看出&#xff0c;无论是阿里、百度亦或是腾讯对于Java方面的要求是比较高的&#xff0c;可以说要求的是一个全面&#xff0c;所以想要进入大厂&#xff0c;不能操之过急&#xff0c;需要先从基础做起&am…

php报错SERVER SENT CHARSET (255) UNKNOWN

配置文件PHP.ini修改打开; extension_dir "ext"&#xff0c;修改成; extension_dir "./" ; On windows: extension_dir "自己php的存放路径\ext"2.打开extensionmsql.dll; For example, on Windows: ;extensionmsql.dll3.修改配置&#xff08…

五、Linux 用户管理常用命令

一、用户管理命令 - useradd 命令名称&#xff1a;useradd 命令所在路径&#xff1a;/usr/sbin/useradd 执行权限&#xff1a;root 功能描述&#xff1a;添加新用户 语法&#xff1a;useradd 用户名 二、用户管理命令 - userdel 命令名称&#xff1a;userdel 命令所在路…

创业青年张继群

中央广播电视总台 -专访-张继群简介&#xff1a; 张继群&#xff0c;1995年10月生&#xff0c;男&#xff0c;临沂大学硕士研究生在读&#xff0c;现临沂城投思索信息技术有限公司智慧城市事业部员工&#xff0c;作为农业专班成员主要从事网络安全、大数据等新一代信息技术的科…

nuxt3:postcss-pxtorem

一、理解postcsshttps://www.postcss.com.cn/1.1、PostCSS是一个用 JavaScript 工具和插件转换 CSS 代码的工具。1.2、增强代码可读性&#xff1a;利用从 Can I Use 网站获取的数据为 CSS 规则添加特定厂商的前缀。 Autoprefixer 自动获取浏览器的流行度和能够支持的属性&#…

如何录制电脑屏幕和声音?分享3个实用的方法,赶紧收藏

使用电脑录屏工具&#xff0c;可以帮助我们轻松录制电脑屏幕。有时候我们不仅仅需要录制电脑上的画面&#xff0c;还需要在录制画面的同时录入声音。那您知道如何录制电脑屏幕和声音吗&#xff1f;如何在录屏的时候录制电脑内部声音或者电脑外部声音&#xff1f;现在小编就给大…

操作系统—王道考研之计算机系统概述

by:星辰 课程视频链接:https://www.bilibili.com/video/BV1YE411D7nH 第 1 章 计算机系统概述 1.1 操作系统的基本概念 1.1.1 操作系统的概念、功能和目标 系统资源的管理者、提供接口、作为扩充机器、虚拟机 1.1.1.1 熟悉的操作系统举例 1.1.1.2 操作系统的层次结构 1.1.1…

5分钟了解 KubeGems 1.23 GA

KubeGems 是一款开源的企业级多租户容器云平台。围绕云原生社区&#xff0c;KubeGems 提供了多 Kubernetes 集群接入能力&#xff0c;并具备丰富的组件管理和资源成本分析功能&#xff0c;能够帮助企业快速的构建和打造一个本地化、功能强大且低成本的云管理平台。 KubeGems 发…

C 语言判断

判断结构要求程序员指定一个或多个要评估或测试的条件&#xff0c;以及条件为真时要执行的语句&#xff08;必需的&#xff09;和条件为假时要执行的语句&#xff08;可选的&#xff09;。C 语言把任何非零和非空的值假定为 true&#xff0c;把零或 null 假定为 false。下面是大…

爱情呼叫转移-深度广度遍历(中)

广度遍历和深度遍历可以结合吗&#xff1f; 可以的&#xff0c;例如经典的《爱情转移》 《爱情转移》是电影《爱情呼叫转移》的主题曲&#xff0c;《爱情呼叫转移》讲述了一个男人穿梭在12个女人之间的情感流浪&#xff0c;讨论的是夫妻相处之道。我当时还在想他到底爱谁。 …

java 设计原则

提示&#xff1a; 设计模式 文章目录一、软件设计原则1.开闭原则2.依赖倒置原则3.单一职责原则4.接口隔离原则5.迪米特法则6.里氏替换原则7.合成复用原则一、软件设计原则 1.开闭原则 开闭原则&#xff08;Open-Closed Principle, OCP&#xff09;是指一个软件实体如类、模块…

Java:如何避免Java内存泄漏

Java的核心优势之一就是利用JVM(Java虚拟机)&#xff0c;JVM是一种开箱即用的内存管理。你只管创建对象&#xff0c;Java的垃圾回收器帮你分配以及回收内存。然而&#xff0c;实际的情况并没有那么简单&#xff0c;因为内存泄漏在Java应用程序中还是时有发生的。为了避免内存泄…