Java数组03:三种初始化及内存分析、04:下标越界及小结

Java实验4-1【数组下标越界异常处理】 文章目录前言一、任务介绍1.任务描述2.运行结果3.任务目标4.实现思路二、程序实现1.代码2.实验结果(输出结果)三、总结 前言 一、任务介绍 1.任务描述 编写程序,捕获并处理数组越界异常。 1、定义长度为10的数组,并赋初始值。 2、数组下标从0到10循环遍历数组,输出数组元素的值。 3、使用异常处理语句检测上述输出语句,控制程序正常退出 (1)然后在捕获处理时调用toString方法,实现以下运行效果。 (2)当满足产生异常对象条件时,结合throw抛出一个具体的由异常信息构建的ArrayInde 阅读详情

Java数组03:三种初始化及内存分析

内存分析

  • Java内存分析:
    • 堆:
      • 存放new的对象和数组
      • 可以被所有的线程共享,不会存放别的对象引用
    • 栈:
      • 存放基本变量类型(会包含这个基本类型的具体数值)
      • 引用对象的变量(会存放这个引用在堆里面的具体地址)
    • 方法区:
      • 可以被所有的线程共享
      • 包含了所有的class和static变量

在这里插入图片描述

三种初始化

  • 静态初始化
int[] a = {1,2,3};
Man[] mans = {new Man(1,1), new Man(2,2)};
  • 动态初始化
int[] a = new int[2];
a[0]=1;
a[1]=2;
  • 数组的默认初始化
    • 数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。
package com.epfox.array;

public class ArrayDemo02 {
    public static void main(String[] args) {
        //静态初始化: 创建 + 赋值
        int[] a = {1,2,3,4,5,6,7,8};
        System.out.println(a[0]);

        //动态初始化: 包含默认初始化
        int[] b = new int[10];
        b[0] = 10;
        System.out.println(b[0]);
        System.out.println(b[1]);
        System.out.println(b[2]);
        System.out.println(b[3]);
    }
}

Java数组04:下标越界及小结

数组的四个基本特点

  • 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
  • 其元素必须是相同类型,不允许出现混合类型。
  • 数组中的元素可以是任何数据类型,包括基本类型和引用类型。
  • 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。

数组边界

  • 下标的合法区间:[0, length-1], 如果越界就会报错;

    public static void main(String[] args){
        int[] a = new int[2];
        System.out.println(a[2]);
    }
    
  • ArrayIndexOutOfBoundsException:数组下标越界异常!

  • 小结:

    • 数组是相同数据类型(数据类型可以为任意类型)的有序集合
    • 数组也是对象。数组元素相当于对象的成员变量
    • 数组长度是确定的,不可变的。如果越界,则报:ArrayIndexOutOfBounds
Java数组篇[2]:数组的初始化 在Java编程中,数组是一种基础且强大的数据结构,用于存储固定数量的同类型元素。在上一篇文章中,我们讨论了数组的定义和声明。本文将继续深入探讨Java数组的初始化过程,包括静态初始化和动态初始化两种方式。本文将介绍Java数组的初始化方法,包括静态初始化(直接在声明时赋值)和动态初始化(使用循环或系统方法)。通过示例代码,展示如何根据不同的需求选择合适的初始化方式。数组初始化是为数组分配内存并赋予初始值的过程。Java提供了两种主要的初始化方式:静态初始化和动态初始化。 阅读详情

相关推荐

利用GPAC生成MP4文件

GPAC主要针对学生和内容创作者,代表了一个跨平台的多媒体框架,开发人员可以使用它在 LGPL 许可下制作开源媒体。GPAC多媒体框架兼容范围广泛的流行文件类型,从常见格式(如 AVI、MPEG 和 MOV)到复杂格式(如 MPEG-4 系统或 VRML/X3D)和 360 电影。

深之JohnChen的专栏 1771

java数组详解

这一句,系统在堆区开辟一块空间存的是10,11,12,假设首地址是0x24681012,然后将arr指向这片空间,此时就要注意了,这之后,arr的内容不再是0x12345678,而是新的0x24681012.所以后面打印时,打印的是10,11,12.然后fun1执行结束,栈区里面的arr出栈,也就是局部变量销毁,同时堆区里面的0x12345678这片空间释放。我们把整个过程顺一遍,首先在系统的堆区开辟两片连续内存空间,一片存1,2,3,4,5,一片存6,7,8,9,10。在内存中是一段连续的空间。

baixian110的博客 579

COMSOL 6.4安装全攻略:安装包获取、许可证配置与避坑指南

多物理场仿真是现代工程与科研中不可或缺的技术手段,其核心原理在于将电磁、结构、流体、传热等不同物理过程的耦合效应置于统一环境中求解,从而真实模拟复杂系统行为。这类仿真平台能大幅提升产品研发与设计验证效率,广泛应用于电子散热、声学分析、电力设备等领域。在部署最新版本仿真软件时,安装与许可证配置往往成为影响工作效率的关键环节。本文系统梳理COMSOL 6.4在Windows平台的安装全流程,涵盖安装包获取、系统依赖准备、许可证配置、常见报错排查等实用经验,帮助工程师与科研人员一次性完成环境搭建,把更多时间投入真

weixin_30000735的博客 1351

【Java编程】编程基础--数组结构1

数据可以存放在变量里,每一个变量有,还有它的。如果我们需要保存一些相同类型、相似含义、相同生存空间的数据,我们可以用数组来保存这些数据。数组是长度的数据结构,用来存放指定的类型的数据。一个数组里可以有很多个数据,所有的数据的类型都是相同的。一维数组相当于高中数学中的数列,二维数组中相当于线性代数中的矩阵。

qq_41934715的博客 394

LTspice基础教程-009.LTspice波形测量

<<==上一篇:LTspice基础教程-008.LTspice PWL设置 >>==下一篇:LTspice基础教程-010. 首篇博客文末提供所有相关资源百度网盘分享链接

gaoyong_wang的博客 4万+

Python实战:逐笔高频因子构建与回测全流程解析

本文详细解析了使用Python构建与回测逐笔高频因子的全流程。从逐笔数据的价值与清洗入手,通过实战代码演示了‘大买成交金额占比’因子的计算逻辑,并重点阐述了因子正交化处理的重要性以剔除风格影响。最后,提供了一个经典的分位数回测框架来验证因子有效性,并分享了数据质量、计算效率与过拟合等核心避坑指南。

grass的博客 391

JAVA数组

数据类型[] 数组名 = new 数据类型[]{数据1,数据2,...,数据n};或者 数据类型 数组名[] = new 数据类型[]{数据1,数据2,...,数据n};(4) 整数类型的数组元素默认值0,浮点数类型的数组元素默认值0.0 char类型数组的数组元素默认值是空格,boolean类型数组的数组元素默认值false,引用数据类型的数组元素默认值为null。还有更简洁的方式:数据类型[] 数组名={数据1,数据2,....数据n}例如int[] nums1={1,2,3,4};

qq_46534049的博客 446

GEE:关于遥感生态指数(RSEI)的若干疑问

本文记录了若干关于在 Google Earth Engine (GEE)平台上,计算基于主成分分析(PCA)的遥感生态指数(RSEI)的问题。并记录了解决这些问题的一些答案。问题包括,主成分分析的特征值的正负,主成分的占比,去云后空值像素的处理方法,异常值处理方法,如何看载荷等。

养乐多的博客 3417

Java-数组常见算法代码总结

String[] names= {"1奢香夫人","2最炫民族风","3套马的汉子","4荷塘月色","5月亮之上","6全是爱"};k++) { //循环代码运行结果:[2最炫民族风, 3套马的汉子, 4荷塘月色, 5月亮之上, 6全是爱, 1奢香夫人]

2401_82742105的博客 1678

[Dify] 多步对话流程的实现技巧:构建连贯自然的多轮交互系统

摘要:本文探讨了AI系统中实现多轮对话的核心技术与应用方法。文章首先分析了多步对话的典型场景(如机票预订、财务报告生成)及其价值,提出了Dify平台实现该功能的三大机制:变量系统、条件控制和状态管理。随后详细介绍了顺序型、条件型和确认型三种基本对话模式,并通过"会议预约助手"案例展示了实际应用流程。文章还提供了提示词设计、变量引用等实用建议,并强调多轮对话成功的关键在于清晰的结构设计而非单纯依赖模型能力,最终实现自然流畅的人机交互体验。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 1343

物联网通信中NB-IoT、Cat.1、LTE-M该如何选择?

首先我们要确定我们产品的关键需求,例如:我们的设备是否对数据传输速率有较高的要求,有较高要求我们就需要选择较高传输速率的Cat.1来开发我们的产品。同时关于产品性能方面,我们对功耗、延迟、可靠性也会有所要求,例如我们的产品为移动端产品,不方便布线以及安装电源,那我们就会采用电池供电的方式,所以在选择时可以优先考虑低功耗产品,最终结合其他需求选择出合适的协议。首先,我们需求的产品是不同的,我们需要根据产品需求或项目需求来进行选择,NB-IoT、Cat.1、Cat.M都有属于自己的优势。

a1809032425的博客 1216

数组:三种初始化及内存分析 、下标越界及小结、数组的使用 2021-11-23

Day19 数组 三种初始化及内存分析 java内存分析: 堆:存放new的对象和数组,可以被所有线程共享,不会存放别的对象引用 栈:存放基本变量类型,引用对象的变量(会存放这个引用在堆里面的具体地址) 方法区:可以被所有的线程共享、包含了所有的class和static变量 package com.wuxin.array; public class ArrayDemo01 { //变量的类型 变量的名字 =变量的值; public static void main(String[] args) {

m0_56661579的博客 237

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Java数组01-02-03:什么是数组-数组的声明和创建-三种初始化及内存分析

Java数组01:什么是数组 数组的定义 数组是相同类型数据的有序集合。 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。 相同类型:都是数字或者都是字符串等; 其中,每一个数据成为一个数组元素,每个数组元素可以通过一个下标来访问它们 数组的下标是从0开始;如下, 1 2 3 4 5 6 0 1 2 3 4 5 Java数组02:数组的声明和创建 首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法: int[] i

T_Fei的博客 287

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java基础(六):数组全面解析

🔥 深度解析Java数组内存机制+高效操作秘籍,从底层原理到Arrays工具类实战,彻底掌握数组设计与性能优化!

从基础到源码解析的学习记录 3463

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

JAVA学习16-java数组的创建,内存分析,初始化,特点,边界,使用学习

JAVA-数组 数组的定义 数组是相同类型数据的有序集合. 组描述的是相同类型的若干个数据,按照-定的先后次序排列组合而成。 其中,每一个数据称作一个数组元素 每个数组元素可以通过一个下标来访问它们 数组声明创建 ◆首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法: dataType[] arrayRefVar;首选的方法 dataType arrayRefVar[];效果相同,但不是首选方法 1◆Java语言使用new操作符来创建数组,语法如下: dataT

weixin_45863084的博客 189

java的数组

当一个数组中大部分元素都是0,或者为同一值的数组时,可以使用稀疏数组来保存该数据。记录数组一共有几行几列,有多少个不同值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模如下图:左边是原始数组,右边是稀疏数组// 1. 创建一个二维数组 11*11 0:没有棋子 奇数:黑棋 偶数:白棋// 初始化棋盘System.out.println("打印原棋盘:");System.out.println("打印稀疏数组:");

2301_79431873的博客 1091

java数组

定义:相同类型数据的有序集合,在内存中开辟连续空间存储数据。特点长度固定:数组一旦创建,长度不可改变。类型统一:所有元素类型必须相同。有序性:元素通过索引(下标)访问,索引从 0 开始。用途:存储批量数据,便于遍历和操作。

2402_87610050的博客 342

【狂神说java学习笔记】七:java数组(数组的声明、创建、初始化及使用)

本文整理了狂神说Java课程的数组语法笔记,包括数组的定义、声明创建、初始化、内存分析、使用方法和注意事项。

weixin_41637679的博客 284

狂神-Java数组

数字的定义数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方式是:记录数组一共有几行几列,有多少个不同值把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模如下图:左边是原始数组,右边是稀疏数组。

hua507992282的博客 1137

狂神说Java——数组(04)

目录1、数组概述数组的定义2、数组声明创建内存分析三种初始化下标越界及小结数组的四个特点数组越界3、数组使用for-Each循环数组作为方法的参数&数组作返回值4、多维数组5、Arrays类6、冒泡排序7、稀疏数组 1、数组概述 数组的定义 数组是相同类型数据的有序集合。 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问他们。 2、数组声明创建 数组的三种声明方法 1.类型[] 变量名=new 类型[数组长

qq_52514750的博客 210

Java数组

Java、数组、冒泡排序、稀疏数组、Arrays类

qq_63141861的博客 967

Day11-02 P51 Java数组01什么是数组 P52数组的声明和创建 P53三种初始化及内存分析 P54下标越界及小结 P55Java数组05:数组的使用

Day11-02 P51 Java数组01什么是数组 P52数组的声明和创建 P53三种初始化及内存分析 P54下标越界及小结 P55Java数组05:数组的使用

jackyzhang202212的博客 425

【狂神说Java笔记】Java数组

【狂神说Java笔记】Java数组

qq_41047516的博客 355

Java04 -数组的学习

数据类型 [] 数组名比如:int [] array。

weixin_67739446的博客 949

【Java】数组:动态初始化 、静态初始化

【Java】数组:动态初始化 、静态初始化 ----------------------------------------------------------------------------------------------------------------------- 数组的定义: 是一种容器,可以同时存放多个数据值。 数组的特点: 数组是一种引用数据类型 数组当中的多个数据,类型必须统一 数组的长度在程序运行期间不可改变 数组的初始化: 在内存当中创建一个数组,并且向其中赋予一些默认值。

m0_47617892的博客 2059
上一篇: Java数组01:什么是数组、02:数组声明创建
下一篇: Java数组05: 数组的使用
maby_
博客等级 码龄19年 15粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值