java基础知识(五)--数组

4.01 数组概述和定义格式说明

数组是用来存储固定大小的同类型元素。是同一种类型数据的集合,本身为一个容器

好处:方便操作数据元素,数组中的数据元素

定义数组:

定义格式

数据类型 [] 变量名=new 数据类型[长度];
例: int [] array=new int [5];

分析数组:

左边:
int:数据类型(基本数据类型/引用数据类型)
[]:定义的数组类型
array:变量名
int [] array也可以定义成:int array[]
右边:
new int [5];
new:创建数组对象的关键字
int[5]:数组最多可以存放多少数据元素

** 数组相关数据类型默认值:

int 0
double 0.0
blooean flase

处理数组

数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,我们通常使用基本循环。

4.02 数组的初始化动态初始化

Java中的数组必须先初始化,然后才能使用。
所谓初始化,就是为数组中的数组元素分配内存空间,并为每个数组元素赋值

动态初始化:(由系统分配初始值)

数据类型 [] 变量名=new 数据类型[长度];
变量名[0]=值;
 ...

静态初始化:

(1)直接赋值
(2)遍历数组赋值
   for(初始值;判断条件;i++){
              //赋值
    }
(3)把已有的的数组的引用赋值给新创建的数组。

4.03 Java中内存分配以及栈和堆的区别

Java程序在运行时,需要在内存中分配空间。为了提高运算效率,有对空间进行了不同区域划分,因为每一片区域都有特定的处理数据方式和内存管理方式。


方法区
本地方法区
寄存器

例子:

class ArrayDemo1{
 public static void main(String[] args){
	int[] arr=new int[10];  //创建一个数组
	System.out.println(arr[0]);
	int[] arr2=arr;   //给新数组赋值
	arr2[0]=888;   //数组元素赋值
	System.out.println(arr[0]);  //888
	arr=null;   //值置空
	arr2=null;
	System.out.println(arr[0]);
    //报错 NullPointerException   引用变量找到不对象:要么压根没创建对象 要么本身是null
	//当一个对象没有被任何变量所引用的时候 则成为垃圾
	//垃圾有Java中垃圾回收机制处理 C/C++-free()函数
 }
}

执行流程:
在这里插入图片描述
在这里插入图片描述

4.04 数组操作的两个常见小问题越界和空指针

ArrayIndexOutofBoundsException 数组角标越界异常

是指数组中没有合格角标

NullPointerException 空指针异常

引用变量找到不对象:要么压根没创建对象 要么本身是null

4.05 数组的基本操作

  1. 遍历数组

    for循环遍历数组

    for(int i=0;i<数组.length;i++){  }
    
  2. 获取数组中最大和最小值

int[] arr=new int[]{1,2,3,4,5};
int max=arr[0];
		int min=arr[0];
		for(int i=0;i<arr.length;i++){
			if(arr[i]>max){
				max=arr[i];
			}
			if(arr[i]<min){
				min=arr[i];
			}
		}
  1. 将数组元素逆序输出
for(int i=arr.length-1;i>=0;i--){
			System.out.println(arr[i]);
		}
		arr=new int[]{1,2,3,4,5,6,7,8,9,10};
		for(int i=0;i<arr.length/2;i++){
			/*
			arr[i]=arr[i]^arr[arr.length-i-1];   //两数交换 方法一
			arr[arr.length-i-1]=arr[i]^arr[arr.length-i-1];
			arr[i]=arr[i]^arr[arr.length-i-1];
			*/
			
			/*
			int a=3;    两数交换 方法二
			int b=7;
			a=a+b;  //10
			b=a-b;  //10-7 3
			a=a-b;   //10-3 7
   			*/
		
			/*
			int temp=arr[i];   //两数交换 方法三
			arr[i]=arr[arr.length-1-i];	
			arr[arr.length-1-i]=temp;
			*/
		}
		for(int i=0;i<arr.length;i++){
			System.out.println(arr[i])
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值