java数组

数组

数组的概念

什么是数组:

数组:容器(大)

变量:容器(小)

 

为什么需要数组:存储的同一类型的数据个数比较多的时候

 

 

数组的特点:

  1. 数组是引用数据类型
  2. 数组存储的是同一种类型的数据
  3. 数组的长度在运行期间不能改变

数组的定义格式

数组的定义格式(动态初始化)

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

 

解释各个组成部分:

数组的定义格式(静态初始化)

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

 

注意事项:

静态初始化的数组也是有长度的

数组的定义格式(省略静态初始化)

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

 

注意事项:

静态省略初始化不能拆分为两个步骤

 

问题:

什么情况下用静态除初始化,什么情况下用动态初始化?

元素内容确定用静态,元素内容不确定用动态。+

 

访问数组元素

取值:

获取数据元素的格式:数据类型 变量名 = 数组名[索引值];

索引值的取值范围:0 —— 数组长度-1

 

赋值:

通过动态方式定义数组后,数组的默认值是:

整数                            0

浮点数                       0.0

char                             不可见字符

布尔值                       false

引用数据类型         null

 

赋值格式:数组名[索引值]=对应类型的值;

 

 

 

 

Java的内存划分

Java的内存分为哪几部分,以及各自的作用:

方法区:保存.class字节码相关信息

:方法运行在栈中。方法中变量的定义在栈中

:new出来的都在堆中

 

本地方法栈:和操作系统相关

程序计数器(寄存器):和CPU相关

 

  • 数组的长度在运行期间不能变

常见异常

数组索引值越界异常:ArrayIndexOutOfBoundsException;

 

//引用数据类型的值为null,你继续对变量(对象)进行操作,这时候就会报如下的异常

空指针异常:NullPointerException;

数组的遍历

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

遍历格式:

for(int i=0;i<数组名.length;i++){

数据类型 变量名 = 数组名[i];

}

数组练习

求数组中的最值

思路:

  1. 假设某个元素是最值,一般会假定第一个元素
  2. 其他元素一次和最值进行比较,用循环
  3. 如果比最值(大/小),用该元素的值替换最值

 

两个数交换值

思路:找第三个临时变量

 

 

 

数组元素反转

思路:对应位置的元素互换

  1. 定义两个变量进行初始化
  2. 在什么情况下停止交换(判断条件)
  3. 进行交换

数组作为方法的参数和返回值

  1. 数组作为方法的参数:
    1. 数组作为方法的参数传递的是地址值

public static void main(String[] args) {

                   int[] scores = {66,77,88,99,100};

                   //调用修改分数的方法

                   changeScores(scores);

                  

                   for (int i = 0; i < scores.length; i++) {

                            System.out.println(scores[i]);

                   }

         }

        

         //给数组+10方法,引用数据类型作为参数传递的是地址值

         public static void changeScores(int[] scores) {

                   for (int i = 0; i < scores.length; i++) {

                            scores[i]+=10;

                   }

         }

 

数组作为方法的返回值:数组作为方法的返回值返回的是地址值

 

基本数据类型作为参数传递的是 “数值”

public static void main(String[] args) {

                   int num = 10;

                  

                   changeNum(num);

                  

                   System.out.println("num="+num); //10

         }

        

         //基本数据类型作为参数传递的是  数值

         public static void changeNum(int num) {

                   num+=10;

                   System.out.println("number="+num);    //20

         }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值