Java编程之数组

举报
魏铁锤 发表于 2022/09/20 22:56:58 2022/09/20
【摘要】 数组(容器) 数组是一组数据类型相同的数据的组合,将这些数据统一的管理起来 数组本身是一个引用数据类型,数组内存储的类型可以是基本类型 也可以是引用类型 数组的特点 1.数组本身是一个引用数据类型 2.数组是在堆内存中的一串连续的地址存在 3.数组在初始化时必须指定长度 4.堆内存的数组空间长度一旦确定 不能再次发生改变 5.栈内存的变量中存储的是数组的地址引用 6.数组内部存

数组(容器)

数组是一组数据类型相同的数据的组合,将这些数据统一的管理起来
数组本身是一个引用数据类型,数组内存储的类型可以是基本类型 也可以是引用类型
数组的特点
1.数组本身是一个引用数据类型
2.数组是在堆内存中的一串连续的地址存在
3.数组在初始化时必须指定长度
4.堆内存的数组空间长度一旦确定  不能再次发生改变
5.栈内存的变量中存储的是数组的地址引用
6.数组内部存储的类型可以是基本的 也可以是引用

1.数组的定义(声明)

	数据类型[]  数组名字;
	int[] x;
	char[] y;
	boolean[] z;
	String[] m;

2.数组的赋值(初始化)

	静态初始化     有长度  有元素
		int[] array = {10,20,30,40,50};
		int[] array = new int[]{10,20,30};
	动态初始化     有长度  没有元素(不是真的没有 默认值)
		int[] array = new int[5];
		整数默认值---0
		浮点数默认值---0.0
		字符型默认值---  0---char   97-a  65-A  48-'0'
		布尔型默认值---  false
		引用数据默认值--- null	String[]

3.数组元素的访问

	通过元素在数组中的位置来访问
	存值/取值
	位置---->index索引
	索引是有取值范围    [0开始-----数组长度-1]
	如果数组的索引超出了上述范围
	会出现一个运行时异常   ArrayIndexOutOfBoundsException

4.数组元素的遍历(轮询)

	通过循环的方式访问数组的每一个元素
	for( ; ; ){
	}
	JDK1.5版本之后   新的特性   增强for循环  加强for   forEach
	for(自己定义的变量(接收数组内每一个元素) : 遍历的数组array){
	}
	正常的for循环以及加强的for循环都需要非常熟练
	1.正常的for   有三个必要条件  index索引  找到某一个元素的位置
		    可以通过index直接访问数组的某一个位置   存值  取值都可以
		    不好在于写法相对来说比较麻烦
	2.增强的for   有两个条件    用来取值的变量  用来遍历的数组  没有index索引
		    好处写法相对比较容易
		    不好只能取值  不能存值
		    没有index索引  找不到元素到底是哪一个

5.基本数据类型和引用数据类型在内存结构上的区别

所有的变量空间都存储在栈内存
变量空间可以存储基本数据类型  也可以存储引用数据类型
如果变量空间存储的是基本数据类型  存储的是值 
    一个变量的值改变  另一个不会跟着改变
如果变量空间存储的是引用数据类型  存储的是引用(地址)
    一个变量地址对应的值改变 另一个跟着改变

image.png

练习

  • 新建一个数组,把数组里的数取出来,再按照倒序的排列方式放进去

- 解析代码如下

public class We{
    public static void main (String[] agrs){
        int[] array = {1,2,3,4};
        for(int i=0;i<array.length/2;i++){//控制交换的次数 数组长度的一半
            int x = array[i];
            array[i] = array[(array.length-1)-i];
            array[(array.length-1)-i] = x;
        }
        for(int v:array){
            System.out.println(v);
        }
    }
}

运行一下看看

image.png

  • 各位读者可以自己试着自己编写一些小程序
  • 用程序实现一些功能
  • 我们下期再见
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。