java的方法和数组

什么是方法呢?

就类似c语言的函数

                                                       返回类型   方法名      形式参数列表

方法名最好使用小驼峰的形式,在java中方法不可以嵌套使用,

 

方法的调用:

就是在main方法里面写上调用的方法名加上需要传输的值,创建一个和方法同类型的变量来接收

形参和实参的关系:

形参只是拿到了实参的值,在java中无法实现自定义方法(函数)的交换两个数值,且在java中无法拿出栈里面存储的内存

方法的重载:

在java中方法名相同,参数列表类型不同(形参),返回类型不影响,就叫做重载,

相当于在一个程序中可以使用同一个方法名定义多个方法,只需要满足以上条件就ok

递归:

在函数内部调用本函数,使用递归时,一定要确认递归结束的条件,不然会进入死循环

数组:

相同类型的集合

 在java中这三种数组的写法都是一样的,第一种是语法的精简,是静态初始化,后面的两种是动态初始化

double类型的数组初始化是false,spring类型的数组初始化是null

 计算数组的长度是直接打印这个数组后面加上.length就可以了

 第一个for循环是便利数组,拿到数组的下标,访问数组里面的内容

第二个for each循环增强for,区别是第二个循环是拿不到下标,(类型:数组名)

数组是引用类型:

引用类型储存的是地址/内存,内存也是需要划分的,

 这个代码的解读是:arr这个引用指向了数组对象

在java中局部变量的生命周期和作用域是方法执行完毕后自动回收

当对象没有人引用的时候,也会被自动回收

引用可以指向引用?

正确来说是1这个引用指向了2这个引用所指向的对象

数组名是引用变量,指向的是数组的对象

int【】arr = null;

代表的是arr这个引用不指向任何对象(null是小写)

 arr1指向的是对象是1.2.3.4.5

把arr1传给arr,arr指向的是arr1所指向的对象

把new int 【10】赋值给arr后,arr所指向的对象不再是arr1所指向的对象,而是new int【10】这个对象,

最后for循环的输出的还是arr1所指向的对象

 而使用数组传参给另一个方法,从而改变某一个下标的值,是可以做的到的

因为两个引用变量所指向的对象并为改变,改变的是里面的值

 在java中数组可以作为方法的返回值,当ret调用fun,fun中的arr5这个局部变量指向的是在堆上的「1,2,3,4,5」这个对象,然后就可以把arr5中的值带回来,意味着ret也是指向【1,2,3,4,5】这个在堆上的对象,此时在栈上的局部变量arr5就会回收,但是在堆上的这个对象并不会回收

 如果不想使用for循环,输出数组,可以使用import导入Arrays这个类来实现,借助字符串将参数的数组转化为字符串输出

 模拟实现tostring方法

 

 数组的复制:

一般是使用for循环实现数组的循环,但是在java中可以使用Arrays.copyOf这个方法,把数组名和数组的长度传过去,就可以实现拷贝

在Arrays.copyOf中在数组的长度后面乘于一个数可以 实现扩容

如果想要实现复制数组的其中一段可以使用Arrays.copyOfRange这个方法,把数组名和想要访问的数组区间编辑上去(区间表示是左开右闭的形式),便可实现

 

equals

比较数组内容是否相同

 

fill填充

可以把数组填充为指定数字或者是指定区间(区间也是比区间)

 

posted @ 2024-09-16 20:06  油头男孩  阅读(5)  评论(0编辑  收藏  举报