当前位置: 首页 > news >正文

JavaSE核心知识点01基础语法01-04(数组)

🤟致敬读者

  • 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉

📘博主相关

  • 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息

文章目录

  • JavaSE核心知识点01基础语法01-04(数组)
    • 1. 定义数组
      • 1.1 **声明数组**
      • 1.2 **初始化数组**
    • 2. 使用数组
      • 2.1 **访问数组元素**
      • 2.2 **修改数组元素**
      • 2.3 **遍历数组**
    • 3. 注意事项


📃文章前言

  • 🔷文章均为学习工作中整理的笔记。
  • 🔶如有错误请指正,共同学习进步。

JavaSE核心知识点01基础语法01-04(数组)

在Java中,数组是一种基本的数据结构,用于存储固定大小的同类型元素序列。
数组一旦被创建,其大小就是固定的。
数组在Java中是通过类实现的,但你也可以直接使用数组类型。
下面是一些关于如何在Java中定义和使用数组的基本步骤和示例。

1. 定义数组

1.1 声明数组

首先,你需要声明一个数组变量。你可以在声明时指定数组的类型和名称。例如:

// 声明一个整型数组
int[] numbers; 
// 声明一个字符串数组
String[] names; 

1.2 初始化数组

在声明数组后,你需要初始化它。有几种方式可以初始化数组:

静态初始化:在声明数组的同时指定初始值。

// 静态初始化整型数组
int[] numbers = {1, 2, 3, 4, 5}; 
// 静态初始化字符串数组
String[] names = {"Alice", "Bob", "Charlie"}; 

动态初始化:先声明数组,然后指定大小,再逐个元素赋值。

// 动态初始化整型数组,大小为5,初始值为0
int[] numbers = new int[5]; 
// 动态初始化字符串数组,大小为3,初始值为null
String[] names = new String[3]; 

2. 使用数组

2.1 访问数组元素

你可以通过索引(从0开始)来访问数组中的元素。例如:

// 访问第一个元素
int firstNumber = numbers[0]; 
// 访问第一个元素
String firstName = names[0]; 

2.2 修改数组元素

你可以通过索引修改数组中的元素。例如:

// 将第一个元素的值改为10
numbers[0] = 10; 
// 将第一个元素的值改为"David"
names[0] = "David"; 

2.3 遍历数组

你可以使用for循环来遍历数组中的所有元素。例如:

for (int i = 0; i < numbers.length; i++) {// 打印每个元素的值System.out.println(numbers[i]); 
}

或者使用增强型for循环(也称为for-each循环):

for (int number : numbers) {// 打印每个元素的值System.out.println(number); 
}

对于字符串数组:

for (String name : names) {// 打印每个元素的值System.out.println(name); 
}

3. 注意事项

  • 越界访问:
    尝试访问数组不存在的索引(例如numbers[5]对于大小为5的数组)会导致ArrayIndexOutOfBoundsException。

  • 空引用:
    如果你声明了一个数组但没有初始化(例如String[] names;而没有names = new String[3];),尝试访问它将会导致NullPointerException。确保在使用前初始化数组。

  • 大小不可变:
    一旦创建,数组的大小就不能改变。如果你需要动态大小的数据结构,可以考虑使用ArrayList等集合框架类。

以上就是在Java中定义和使用数组的基本方法。通过这些步骤,你可以有效地在Java程序中处理和操作数据集合。


📜文末寄语

  • 🟠关注我,获取更多内容。
  • 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
  • 🟢《全栈知识库》技术交流和分享社区,集结全栈各领域开发者,期待你的加入。
  • 🔵​加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
  • 🟣点击下方名片获取更多内容🍭🍭🍭👇

http://www.xdnf.cn/news/309655.html

相关文章:

  • RPM打包格式spec文件设计原理与关键特性说明
  • Python cv2滤波与模糊处理:从原理到实战
  • Matlab/Simulink的一些功能用法笔记(4)
  • AI教你学VUE——Deepseek版
  • 从入门到登峰-嵌入式Tracker定位算法全景之旅 Part 8 |产品化与运维:批量标定、误差监控、OTA 升级与安全防护
  • CSS Border 三角形阴影与多重边框的制作
  • Beetle 树莓派RP2350 - 桌面时钟摆件
  • 内存种类详解
  • tinyrenderer笔记(Shadow Mapping)
  • 方案精读:2024版基于华为IPD与质量管理体系融合的研发质量管理【附全文阅读】
  • AOAAO:算术优化算法与Aquila Optimizer的混合算法
  • langchain4j整合springboot
  • OpenCV的floodFill(漫水填充)分割
  • 静态NAT
  • C++23 新利器:深入解析栈踪迹库 (P0881R7)
  • HTTP协议网络读卡器通讯报文
  • 无法解析导入“pybulletgym”
  • C# System.Text.Json实现高效JSON序列化与反序列化
  • 基于Java多线程实现简单图片下载
  • SLAM算法工程师面经大全:2025年面试真题解析与实战指南
  • 美信监控易:全栈式自主可控的底层架构优势
  • 使用 Poco C++ 库构建轻量级 HTTP 服务器
  • LeetCode 1128. 等价多米诺骨牌对的数量 题解
  • 【了解】通感算一体化网络
  • 深入理解 Web 架构:从基础到实践
  • 【大模型面试每日一题】Day 10:混合精度训练如何加速大模型训练?可能出现什么问题?如何解决?
  • 数据库复习
  • 面试常问系列(一)-神经网络参数初始化-之自注意力机制为什么除以根号d而不是2*根号d或者3*根号d
  • 最新版Google浏览器加载ActiveX控件之VLC五一节特别版
  • Marin说PCB之1000-BASE-T1的PCB设计总结--04