Java动态数组和静态数组详解
前言必读
读者手册(必读)_云边的快乐猫的博客-CSDN博客
数组:
概念:数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致,不能出现混合类型
1.什么数据类型就只能储存什么数据元素,比如int只能储存整形数组
2.数组有定长特性,长度一旦指定,就只能存储固定长度
3.要输出数组中的全部值,要一个个for循环遍历,然后打印输出
4.使用场景:知道要存入的元素值,用静态初始化\未知要数组中放入什么元素值,用动态初始化
1.两种常见初始化方式:
动态初始化(指定长度):
使用场景:只指定数组长度,后期赋值,适合开始就知道数据的数量,但是不确定具体元素值的业务场景(先定义长度再赋值)
数组存储的数据类型[ ] 数组名字 = new 数组存储的数据类型[数组长度];----常用
数组存储的数据类型 数组名字[ ] = new 数组存储的数据类型[数组长度];
代码例子:
package one;
public class a {public static void main(String[] args) {//动态初始化数组,int[]a = new int[5];//1.先new一个数组长度,可以放5个int类型数据a[0] = 10;//2.给a数组一个个具体赋值a[1] = 20;a[2] = 30;a[3] = 40;a[4] = 50;//具体输出数组一个值System.out.println(a[2]);//3.高效率遍历输出全部数组值用for循环for (int i = 0; i < a.length; i++) {//快捷键:数组名.fori+回车System.out.println(a[i]);//输出i遍历到的所有数组a的值}}
}
运行结果:
30
10
20
30
40
50
静态初始化(指定内容):
使用场景:开始就存入元素值,适合一开始就能确定元素值的业务场景(第一步就直接赋值给数组)
语法:
数据类型[] 数组名 = {元素1,元素2,元素3…};----常用
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3…};
代码例子:
package one;
public class a {public static void main(String[] args) {//静态初始化数组,直接赋值int[]a = {1,2,3,4,5,6,7,8,9};//只能一个个去输出数组中的具体值System.out.println(a[0]);//数组索引从0开始.这里索引0,也就是索引到第一位数字1//高效率遍历输出数组值用for循环for (int i = 0; i < a.length; i++) {//i遍历数组a的全部值.快捷键:数组名.fori+回车System.out.println(a[i]);//输出数组中的所有值}}
}
运行结果:
1
1
2
3
4
5
6
7
8
9
数组越界报错:ArrayIndexOutOfBoundsException
解决方法:检测for循环遍历的位数,有没有超过数组本身的位数,注意:=号是有包含进去的
题外话:
定义的初始值都是在栈里面,后面new出来的东西都是在堆中
辨别数组:有new的数组就是动态数组,直接给值的就是静态数组
Java动态数组和静态数组详解相关推荐
- java动态代理(JDK和cglib)详解
JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息.过滤消息.把消息转发给委托类,以及事后处理消息等.代理类与委 ...
- Gzip的动态压缩和静态压缩详解
Gzip的压缩分为动态压缩和静态压缩.动态压缩简而言之就是nginx上的资源是以原始文件形式存在的,当返回给浏览器的时候再进行压缩,浏览器收到压缩文件再解压缩.静态压缩就是nginx上的资源不是原始文 ...
- 【Java二维数组】(超详解)
[Java二维数组](超详解) 什么是二维数组 二维数组的定义格式 访问二维数组 什么是二维数组 元素为一维数组的数组就称为二维数组 二维数组的定义格式 格式一:元素的数据类型[][] 数组的名字 = ...
- c语言 初始化数组,C 数组的初始化方法详解
C 数组的初始化方法详解,数据名内涵为数组这种数据结构,在arrayTest函数体内,str是数组名,那为什么sizeof的结果却是指针的长度?这是因为: (1)数组名作为函数形参时,在函数体内,其失 ...
- pythonbyte连接_Python3之字节串bytes与字节数组bytearray的使用详解
字节串bytes 字节串也叫字节序列,是不可变的序列,存储以字节为单位的数据 字节串表示方法: b"ABCD" b"\x41\x42" ... 字节串的构造函数 ...
- php 查找键名,array_key_exists()函数搜索数组键名步骤详解
这次给大家带来array_key_exists()函数搜索数组键名步骤详解,array_key_exists()函数搜索数组键名的注意事项有哪些,下面就是实战案例,一起来看一下. array_key_ ...
- 三位数组的轴python_关于numpy数组轴的使用详解
概述 按照图一中aixs=0,对aixs=0上下对应的数据进行相加在学习numpy的时候,最难理解的就是轴的概念,我们知道坐标系中有轴的概念,那么两个轴是否有关联呢?为了便于理解,特写此博客进行梳理. ...
- python 数列筛选_对numpy中的数组条件筛选功能详解
在程序设计中,时常会遇到数据的唯一化.相同.相异信息的提取等工作,在格式化的向量存储矩阵中南,numpy能够提供比较不错的快速处理功能. 1,唯一化的实现: In [63]: data = np.ar ...
- Python中数组切片的用法详解
Python中数组切片的用法详解 一.python中"::-1"代表什么? 二.python中":"的用法 三.python中数组切片 三.numpy中的整数数 ...
- Java static静态关键字详解(public、 private、 volatile)
文章目录 前言 static要解决什么问题? 格式 特点 static静态变量 静态变量和实例变量的区别 static静态方法 static应用场景 static 与volatile static如何 ...
最新文章
- 解决No module named 'sklearn.cross_validation'
- mysql 5.5.修改库名_安全快速修改Mysql数据库名的5种方法
- 010 自动技能的设计和实现
- Java类库及其组织结构(Java API)
- java2019 数据结构算法面试题_2019年JVM最新面试题,必须收藏它
- c++ assert() 使用方法
- Spring项目使用Junit4测试配置
- 怎么用Linux命令查看BIOS信息,LINUX下怎样获取主板的信息用到什么命令
- openlayers 点线面
- LINUX Cacti 安装SOP FOR CentOS6.5
- 2003服务器系统QQ安装不了,windows2003server
- rda分析怎么做_科学网—如何用R语言vegan包进行RDA/CCA分析 - 刘宏金的博文
- RF 操作页面滚动条上下滚动
- 用Form 表单认证实现单点登录(Single Sign On) 作者:寒羽枫(cityhunter172)
- 数学杂记(1)一些无处安放的数学推导
- 十二章 Python入门系列之字典
- 前端和后端到底有什么区别?待遇和前景如何?
- sicily 1209
- 收发EtherCAT帧——ecx_srconfirm函数
- Spring-Mybatis整合 第一个Spring-Mybatis程序