java数组学习

目录

1.数组概念

2.数组的定义

3.数组的静态初始化

4.地址值

5.数组元素访问

6.索引

7.数组的遍历

8.数组的动态初始化

9.数组两种初始化方式的区别

10.数组常见问题


1.数组概念

   数组是一种容器,可以同来存储同种数据类型的多个值。但是数组容器在存储数据的时候,需要结合隐式转换考虑。

  • 比如:

​   定义了一个int类型的数组。那么boolean、double类型的数据是不能存到这个数组中的,但是byte类型,short类型,int类型的数据是可以存到这个数组里面的。

  • 建议:

​ 容器的类,和存储的数据类型保持一致。

  • 举例:

​ 整数1 2 3 4 5 6 就可以使用int类型的数组来存储。

​ 小数1.1 1.2 1.3 1.4 就可以使用double类型的数组来存储。

 字符串"aaa"  "bbb"  "ccc" 就可以使用String类型的数组来存储。

 2.数组的定义

格式一:数据类型 [] 数组名

  • 比如:
int [] array

格式二:数据类型  数组名 []

  • 比如: 
int array []
  • 详解:

数据类型:限定了数组以后能存什么类型的数据。

方括号:表示定义的是一个数组。

数组名:就是一个名字而已,方便以后使用。

3.数组的静态初始化

  • 完整格式:

​   数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,元素4...};

  • 比如:
int[] arr = new int[]{11,22,33};
​double[] arr = new double[]{1.1,1.2,1.3};
  • 格式:

​   数据类型:限定了数组以后能存什么类型的数据。

​   方括号:表示定义的是一个数组。

​   数组名:其实就是名字而已,方便以后使用

​           arr   namesArr

​   new:就是给数组在内存中开辟了一个空间。

​   数据类型:限定了数组以后能存什么类型的数据。

​   前面和后面的数据类型一定要保持一致。

int[] arr = new double[]{11,22,33};//错误写法

方括号:表示定义的是一个数组。

​大括号:表示数组里面的元素。元素也就是存入到数组中的数据。

多个元素之间,一定要用逗号隔开。

  • 注意点:

等号前后的数据类型必须保持一致。

数组一旦创建之后,长度不能发生变化。

  • 简化格式:

数据类型[] 数组名 = {元素1,元素2,元素3,元素4...};

int[] array = {1,2,3,4,5};
double[] array = {1.1,1.2,1.3};
  • 练习1:

定义数组存储5个学生的年龄。

int[] agesArr = new int[]{18,19,20,21,22};
int[] agesArr = {18,19,20,21,22};
  • 练习2:

定义数组存储3个学生的姓名。

String[] namesArr = new String[]{"zhangsan","lisi","wangwu"};
String[] namesArr = {"zhangsan","lisi","wangwu"};

4.地址值

int[] arr = {1,2,3,4,5};
System.out.println(arr);//[I@6d03e736double[] arr2 = {1.1,2.2,3.3};
System.out.println(arr2);//[D@568db2f2

以[I@6d03e736为例:

[ :表示现在打印的是一个数组。

I:表示现在打印的数组是int类型的。

@:仅仅是一个间隔符号而已。

6d03e736:就是数组在内存中真正的地址值。(十六进制)

  • 打印数组的时候,实际出现的是数组的地址值。

5.数组元素访问

数组名[索引];

一旦修改之后,原来的值就会被覆盖了。

6.索引

  • 索引一定是从0开始的。

  • 连续不间断。

  • 逐个+1增长。

7.数组的遍历

遍历:就是把数组里面所有的内容一个一个全部取出来。

数组的长度:数组名.length;

代码:

for(int i = 0; i < arr.length; i++){//在循环的过程中,i依次表示数组中的每一个索引sout(arr[i]);//就可以把数组里面的每一个元素都获取出来,并打印在控制台上了。
}

8.数组的动态初始化

  • 格式:

数据类型[] 数组名 = new 数据类型[数组的长度];

  • 数组的默认初始化值:

整数类型:0

小数类型:0.0

布尔类型:false

字符类型:'\u0000'

引用类型:null

9.数组两种初始化方式的区别

静态初始化:int[] arr = {1,2,3,4,5};

动态初始化:int[] arr = new int[3];

静态初始化:手动指定数组的元素,系统会根据元素的个数,计算出数组的长度。

动态初始化:手动指定数组长度,由系统给出默认初始化值。

10.数组常见问题

当访问了数组中不存在的索引,就会引发索引越界异常。

  • 避免:

​ 针对于任意一个数组,索引的范围:

最小索引:0

最大索引:数组的长度 - 1 数组名.length - 1

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用GOGS搭建GIT服务器

GOGS官网 Gogs: A painless self-hosted Git service 进入文件所在目录 cd /usr/local/develop 解压文件 tar -xvf gogs_0.13.0_linux_amd64.tar.gz 解压之后 进入gogs 目录 cd gogs 创建几个目录 userdata 存放用户数据 log文件存放进程日志 repositories 仓库根目…

2018年苏州大学837复试机试C/C++

2018年苏州大学复试机试 要求 要求用C/C编程&#xff1b;对程序中必要的地方进行注释。上机规则 请在电脑桌面上新建一个文件夹文件夹名为考试姓名&#xff08;中文&#xff09;&#xff1b;考试完毕后&#xff0c;将所编写的文件放在上述文件中。 第一题&#xff08;20分&…

Kubernetes集群搭建

一、概述 Kubernetes是一个Google开源的全新的分布式容器集群管理系统&#xff0c;由于从第一个字母到字母s中间有8个字母&#xff0c;所以简称K8s。 二、准备 ip角色内存192.168.187.130master4G192.168.187.131node2G192.168.187.132node2G 小提示&#xff1a; 设置静态i…

代码随想录刷题笔记 DAY 21 | 二叉搜索树的最小绝对值差值 No.530 | 二叉搜索树中的众数 No.501 | 二叉树的最近公共祖先 No.236

Day 21 01. 二叉搜索树的最小绝对值差值&#xff08;No. 530&#xff09; 题目链接 代码随想录题解 1.1 题目 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 示例 …

Caffeine史上最快的内存缓存

引言 在现代的Web应用程序中&#xff0c;缓存是提升性能&#xff0c;减少数据库负载&#xff0c;加快响应速度的关键技术之一。Spring Boot作为一个简化Spring应用开发的框架&#xff0c;提供了与多种缓存技术集成的支持。Caffeine是一个高性能&#xff0c;灵活的缓存库&#…

Transformer 自然语言处理(三)

原文&#xff1a;Natural Language Processing with Transformers 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第八章&#xff1a;使 transformers 在生产中更高效 在之前的章节中&#xff0c;您已经看到了 transformers 如何被微调以在各种任务上产生出色的结果。…

C++STL之容器

STL的概述 STL(Standard Template Library,标准模板库) STL的6大组件&#xff1a;容器、算法、迭代器、适配器、仿函数、空间配置 容器&#xff1a;存放数据 算法&#xff1a;操作数据 迭代器&#xff1a;算法 通过迭代器 操作 容器 适配器&#xff1a;为算法 提供更多的接口 …

SQL报错注入

SQL注入报错注入 报错注入原理:报错注入是通过特殊函数错误使用并使其输出错误结果来获取信息的在遇到有报错回显的时候&#xff0c;但是没有数据回显的情况下可以利用报错注入的函数: 1.floor():向下取整 2.extractvalue(): 对XML文档进行查询的函数&#xff0c;当参数的格式…

202416读书笔记|《总有人会拥抱满身带刺的你》——今天我请客,想请你快乐

202416读书笔记|《总有人会拥抱满身带刺的你》——今天我请客&#xff0c;想请你快乐 这是一篇暖萌轻松的绘本推荐记录书评&#xff0c;《总有人会拥抱满身带刺的你》纳米著&#xff0c;《今天我请客&#xff0c;想请你快乐》燕七著&#xff0c;都还不错&#xff0c;截取摘录了…

C++-模板基础

1. 泛型编程 大家在学习过程中一定写过swap函数吧&#xff0c;那么swap函数的可以写成很多种形式&#xff0c;因为形参的类型可以是任意类型&#xff0c;那么我们如果想用多种swap函数的话&#xff0c;就意味着我们必须写多个swap函数吗&#xff1f;不是的&#xff0c;C为了解…

Web项目利用OSS进行图像存储服务

一、OSS介绍 在Web项目中&#xff0c;一些常见的功能&#xff0c;比如展示图片&#xff0c;修改头像等&#xff0c;都需要进行图片的上传操作&#xff0c;但是如果是存储在Web服务器中&#xff0c;在读取图片的时候会占用比较多的资源&#xff0c;影响服务器的性能。 常…

Node需要了解的知识

Node能执行javascript的原因。 浏览器之所以能执行Javascript代码&#xff0c;因为内部含有v8引擎。Node.js基于v8引擎封装&#xff0c;因此可以执行javascript代码。Node.js环境没有DOM和BOM。DOM能访问HTML所有的节点对象&#xff0c;BOM是浏览器对象。但是node中提供了cons…