Java基础(day08)(数组+二维数组+方法)

目录

数组

一*自己编写扩容代码

二*Syatem.arraycopy方法

三*Arrays.copyof

二维数组

定义  : 

二维数组的基本操作  : 

方法

形参与实参

方法重载 :

方法调用栈

方法的递归


数组

数组的扩容

        数组的长度固定   

        扩容实际上底层通过新建空间来实现

一*自己编写扩容代码

        定义新数组   长度为扩容后数组长度

        将原数组的元素复制到新数组中

        将新数组地址赋值给原数组的变量

二*Syatem.arraycopy方法

        arraycope(Object src,  原数组的名称

                        int srcPos,  原数组的开始元素的下标

                        Object dest,  目标数组的名称

                        int destPos,  目标数组的开始元素

                        int length  复制元素的个数        

                        )

三*Arrays.copyof

Arrays.cope of(

        int[] original,  原数组的名称

        int newLength  扩容以后的长度

        )

二维数组

定义  : 

        格式一  : 

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

        例如

                int[][] ages  =  {{18,20},{21,33.54}};

                ages二维数组包含了2个元素

                第一个一维数组包含2个元素

                第二个一维数组包含3个元素        

        格式二  : 

                数据类型[][]  二维数组名  =  new 数据类型[一位数组的个数][每个一维数组中元素的个数];

                例如  :  

                        int[][] ages  =  new  int[2][2];

                        每一个一维数组的元素个数都是相同的

                 数据类型[][]  二维数组名  =  new 数据类型[一位数组的个数][];

                例如

                        int[][] ages  =  new  int[2][];

                        两个一维数组包含的元素个数是没有给定的

二维数组的基本操作  : 

下标

        一维数组的下标

        一维数组元素的下标

1*  获取第一个一维数组的第一个元素

        数组名[0][0]

        第一个0表示第一个一维数组的下标

        第二个0表示第一个一维数组的第一个元素的下标

方法

引出

        数组遍历的for循环的代码可以重复使用

        java提供方法可以使用代码的复用

概念

        可以完成指定功能的一段代码逻辑  可以重复使用

定义

        权限修饰符  静态修饰符  返回值类型  方法名( 参数列表){

                方法体  :  

                return 返回值;

        }

        权限修饰符  :  public

        静态修饰符  :  可有可无   目前写的方法需加static

        返回值数据类型  :  

                基本数据类型

                引用数据类型

                void--方法没有返回值

        方法名  :  

                标识符

                 第一个单词小写  从第二个单词开始大写

        参数列表

                格式

                        数据类型1  参数名1,数据类型2  参数名2,....

        方法体

                方法的代码块

        return返回值

                如果返回值类型为void,则无法通过return返回具体数据

                如果指定了返回值类型,则return后边的返回值类型必须和指定的类型匹配

                通常放在方法的最后   return语句执行  方法结束

位置

        类中方法外

注意

        方法定义不会执行,方法被调用才会执行

方法的调用

        方法名(参数)

案例

        定义方法,实现一维数组的遍历 --有参数列表  没有返回值

        定义方法   一维数组求和

形参与实参

        形参 : 形式参数

                方法定义时  给出的参数就是形参

        实参 : 实际参数

                方法调用时  实际传入的参数就是实参

        基本数据类型

                实参传递给形参的是具体的数据值

        引用数据类型

               实参传递给形参的是地址值

方法重载 :

        方法名相同  参数列表不同

                参数列表不同

                        数据类型不同

                        数据类型顺序不同

                        数据个数不同

        调用方法时如何确定调用哪一个方法 

                跟实参类型最像的重载方法(主要参考参数列表)

        例如 :

                Arrays.toString        

                Arrays.sort都是方法重载的体现

方法调用栈

        

        方法一旦执行,直到方法被执行完,才会回到调用方法位置,继续向后执行

        方法调用不能成环  ,运行会抛出异常--栈内存溢出错误

方法的递归

        方法自己调用自己

       注意

        一定要给出递归结束的条件,否则还会出现栈内存溢出错误

        优点

                简洁  思路顺

         缺点

                内存占用率高

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小乔同学Online

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值