JAVA数组基础

数组:相同类型数据的有序集合
1、数组:是引用类型的数据
2、new:关键字,在堆内开辟空间
成员变量(堆内存):有默认值
局部变量(栈内存):没有默认值,使用之前需要赋值
3、引用变量赋值
int[] arr1={1,2,3,4};
int[] arr2=arr1;//引用变量,把arr1的值赋给arr2,arr2和arr1指向的是堆内存的同一块空间

数组的特性:相同了偶像数据的有序集合
1、数组定义:int[] scoreArr=new int[10]
2、数组的引用数据类型,scoreArr是引用类型的变量,new关键字在堆内存开辟空间
3、如果访问数据元素?数组是有顺序的,下标(索引)顺序,索引编号从0开始到数据元素个数-1结束,最大索引数组长度-1
4、数组的元素类型必须和声明类型一致,数组里的元素类型是相同的,不能是混合类型
5、数组可以是基本数据类型也可也是引用数据类型比如String
6、数组的长度scoreArr.length;(数组名.length)
7、数组长度一旦声明就固定了
8、数组元素有默认值
int:0
double:0.0
char:\u000
String:null-》引用数据类型默认值都是null
数组内存图
在这里插入图片描述
数组初始化
1、静态初始化:数组的声明,分配空间,赋值在一条语句中
int[] scoreArr=new int[]{1,2,3,4};
int[] scoreArr1={1,2,3,4};
2、动态初始化:数组的声明,分配空间,赋值不在一条语句中
int[] scoreArr2;//声明一个数组变量
scoreArr2=new int[5];//分配空间
scoreArr2[0]=1;//给数组各元素赋值

3、默认初始化:int[] scoreArr4=new int[6];
数组的多种声明方法
int[] scoreArr5=new int[20];
int scoreArr6[]=new int[10];
int[][] scoreArr7;
int scoreArr8[][;
int[] scoreArr9[];

数组常见错误
1、int[] score10=new int[]{1,2,3,4};//不要写维数
2、int[10] scoreArr11=new int[10];//int[10] scoreArr错,声明数组不写维数

数组常见异常
(1)java.lang.ArrayIndexOutOfBoundsException: 6:数组越界异常。

(2)int[] scoreArr=null;//声明一个数组变量;
System.out.println(scoreArr.length);// java.lang.NullPointerException
空指针异常
*/


public class Main {
    public static void main(String[] args) {
        int score=98;
        int[] scoreArr = new int[]{1,2,3,4,5};
        int[] scoreArr1=null;
        for (int i = 0; i < scoreArr.length; i++) {
            System.out.print(scoreArr[i]+",");
        }
        System.out.println();
        // System.out.println(scoreArr[5]);//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 at (Main.java:12)
        System.out.println(scoreArr1.length);//Exception in thread "main" java.lang.NullPointerException at (Main.java:13)
        System.out.println(scoreArr.length);
    }
}

数组引用变量赋值内存图
在这里插入图片描述
数组遍历
for each
for-each循环:
(1)jdk1.5引入;
(2)优点:简单;
(3)缺点:不能进行与索引有关的操作;
(4)如果只需遍历数组,用for-each循环。

public class TestArray2{

   public static void main(String[] args){
  
	int[] scoreArr=new int[10];
	Scanner input=new Scanner(System.in);
	//通过循环给数组元素赋值;
	for(int i=0;i<10;i++){
	   System.out.print("请输入第"+(i+1)+"位同学的分数:");
	   scoreArr[i]=input.nextInt();
	}
    
	//1.for-each循环:
	System.out.print("for-each循环:");
	for(int score:scoreArr){
	    System.out.print(score+" ");
	}
	
            //2.普通for循环:
	for(int i=0;i<10;i++){
	   System.out.print(scoreArr[i]+" ");
	}

   }
}

for each内存图
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

读书笔记 - 虚拟化技术 - 0 QEMU/KVM概述与历史

《QEMU/KVM源码解析与应用》 - 王强 概述 虚拟化简介 虚拟化思想 David Wheeler&#xff1a;计算机科学中任何问题都可以通过增加一个中间层来解决。 虚拟化思想存在与计算机科学的各个领域。 主要思想&#xff1a;通过分层将底层的复杂&#xff0c;难用的资源虚拟抽象为简…

【Spring Boot React】Spring Boot和React教程 完整版

【Spring Boot & React】Spring Boot和React教程 在B站找到一个不错的SpringBoot和React的学习视频&#xff0c;作者是amigoscode 【Spring Boot & React】Spring Boot和React教程 2023年更新版【Spring Boot React】价值79.9美元&#xff0c;全栈开发&#xff0c;搭…

Ubuntu QT 交叉编译环境搭建

文章目录 下载安装qtCreatornot a valid identifier 的错误 安装g下载并安装交叉编译器下载交叉编译器安装交叉编译器 下载编译 ARM 的Qt平台源码配置arm的QT平台 下载安装qtCreator 去QT下载官网下载对应需要的QT软件。 这里下载5.12.96版本的 改变安装包权限&#xff0c;…

【问题实战】Jmeter中jtl格式转换图片后如何分开展示各个性能指标?

【问题实战】Jmeter中jtl格式转换图片后如何分开展示各个性能指标&#xff1f; 遇到的问题解决方法查看修改效果 遇到的问题 JMeter测试计划中只设置了一个性能监控器jpgc - PerfMon Metrics Collector&#xff1b;在这个监控器中设置几个性能监控指标&#xff0c;比如CPU、Di…

人脸识别face-api.js应用简介

前阵子学习了一下face-api.js &#xff0c;偶有心得&#xff0c;跟大家分享一下。 face-api.js的原始项目是https://github.com/justadudewhohacks/face-api.js &#xff0c;最后一个release是2020年3月22日的0.22.2版&#xff0c;组件较老&#xff0c;API文档很全&#xff0c;…

DS线性表之单链表的讲解和实现(2)

文章目录 前言一、链表的概念二、链表的分类三、链表的结构四、前置知识准备五、单链表的模拟实现定义头节点初始化单链表销毁单链表打印单链表申请节点头插数据尾插数据头删数据尾删数据查询数据在pos位置之后插入数据删除pos位置之后的数据 总结 前言 本篇的单链表完全来说是…

高性能计算应用优化实践之VASP

VASP简介 VASP是最常见的第一性原理计算软件之一。第一性原理计算是基于密度泛函理论&#xff0c;通过选择合适的交换关联赝势(GGA或LDA)&#xff0c;然后基于迭代方法自洽求解Kohn-Sham方程&#xff0c;直到所求出的新的电荷密度与输入的电荷密度在收敛判据范围内&#xff0c…

Python酷库之旅-第三方库Pandas(145)

目录 一、用法精讲 656、pandas.Timestamp.resolution属性 656-1、语法 656-2、参数 656-3、功能 656-4、返回值 656-5、说明 656-6、用法 656-6-1、数据准备 656-6-2、代码示例 656-6-3、结果输出 657、pandas.Timestamp.second属性 657-1、语法 657-2、参数 6…

JAVA开发中SpringMVC框架的使用及常见的404问题原因以及SpringMVC框架基于注解的开发实例

一、JAVA开发中SpringMVC框架的使用及常见的404问题原因 使用SpringMVC建立一个web项目&#xff0c;在IDEA中file->new->project建立一个空项目project。不用选择create from archetype从模板创建。然后在项目的pom.xml中添加公共的依赖包括org.springframework&#xff…

YOLO11改进|卷积篇|引入空间通道重组卷积ScConv

目录 一、【SCConv】卷积1.1【SCConv】卷积介绍1.2【SCConv】核心代码 二、添加【SCConv】卷积2.1STEP12.2STEP22.3STEP32.4STEP4 三、yaml文件与运行3.1yaml文件3.2运行成功截图 一、【SCConv】卷积 1.1【SCConv】卷积介绍 SCConv 模块提供了一种新的视角来看待CNNs的特征提取…

如何通过钢筋计来优化施工安全

在现代建筑工程中&#xff0c;施工安全一直是首要关注的问题。特别是在高层建筑、桥梁和地下工程等复杂结构中&#xff0c;确保钢筋的正确安装和稳定性能&#xff0c;直接关系到工程的整体安全性和耐久性。钢筋计作为一种专门用于测量和监测钢筋应力和应变的设备&#xff0c;其…

4.人员管理模块(开始预备工作)——帝可得管理系统

目录 前言一、需求分析1.页面原型2.创建SQL 二、使用若依框架生成前后端代码1.添加目录菜单2.添加数据字典3.配置代码生成信息4.下载代码并导入项目5.快速导入方法 三、 总结 前言 提示&#xff1a;本篇讲解人员管理模块的开发的预备工作&#xff0c;包括需求分析、生成代码、…

DockerCompose 启动 open-match

背景介绍 open-match是Google和unity联合开源的支持实时多人匹配的框架&#xff0c;已有多家游戏厂商在生产环境使用&#xff0c;官网 https://open-match.dev/site/ 。原本我们使用的是UOS上提供的匹配能力&#xff0c;但是UOS目前不支持自建的Dedicated servers 集群&#x…

grpc的python使用

RPC 什么是 RPC &#xff1f; RPC&#xff08;Remote Procedure Call&#xff09;远程过程调用&#xff0c;是一种计算机通信协议&#xff0c;允许一个程序&#xff08;客户端&#xff09;通过网络向另一个程序&#xff08;服务器&#xff09;请求服务&#xff0c;而无需了解…

【Matlab】Matlab 导入数据.csv或者.xlsx文件,然后使用这些数据来绘制图表

Matlab 导入数据.csv或者.xlsx文件&#xff0c;然后使用这些数据来绘制图表 初始数据 filename C:\Users\jia\Desktop\yadian\data\1Hz 2024_09_12 17_10_06.csv; 代码&#xff1a; clc;clear close all; % 读取Excel文件 filename C:\Users\jia\Desktop\yadian\data\1Hz …

【EXCEL数据处理】保姆级教程 000016案例 EXCEL的vlookup函数。

【EXCEL数据处理】000016案例 vlookup函数。 前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【EXCEL数据处理】保姆级教…

Flutter包管理(三)

1、作用 在APP的实际开发过程中往往会依赖很多包&#xff0c;而这些包之间存在着交叉依赖、版本依赖&#xff0c;由开发者自己管理手动管理会非常麻烦&#xff0c;每种开发生态或编程官方会提供一些包的管理工具&#xff0c;在Flutter中我们在pubspec.yaml文件中来管理第三方依…

机器学习/数据分析--用通俗语言讲解时间序列自回归(AR)模型,并用其预测天气,拟合度98%+

时间序列在回归预测的领域的重要性&#xff0c;不言而喻&#xff0c;在数学建模中使用及其频繁&#xff0c;但是你真的了解ARIMA、AR、MA么&#xff1f;ACF图你会看么&#xff1f;&#xff1f; 时间序列数据如何构造&#xff1f;&#xff1f;&#xff1f;&#xff0c;我打过不少…

GS-SLAM论文阅读笔记-MGSO

前言 MGSO首字母缩略词是直接稀疏里程计(DSO)&#xff0c;我们建立的光度SLAM系统和高斯飞溅(GS)的混合。这应该是第一个前端用DSO的高斯SLAM&#xff0c;不知道这个系统的组合能不能打得过ORB-SLAM3&#xff0c;以及对DSO会做出怎么样的改进以适应高斯地图&#xff0c;接下来…

Android一个APP里面最少有几个线程

Android一个APP里面最少有几个线程 参考 https://www.jianshu.com/p/92bff8d6282f https://www.jianshu.com/p/8a820d93c6aa 线程查看 Android一个进程里面最少包含5个线程&#xff0c;分别为&#xff1a; main线程(主线程&#xff09;FinalizerDaemon线程 终结者守护线程…