java的方法和数组

news/2024/9/20 9:39:06

什么是方法呢?

就类似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这个方法,把数组名和想要访问的数组区间编辑上去(区间表示是左开右闭的形式),便可实现

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/61078.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

mongo集群同步数据异常,手动同步节点副本数据

转载请注明出处: 数据同步方案当副本集节点的复制进程落后太多,以至于主节点覆盖了该节点尚未复制的 oplog 条目时,副本集节点就会变为“陈旧”。节点跟不上,就会变得“陈旧”。出现这种情况时,必须删除副本集节点的数据,然后执行初始同步,从而完全重新同步该节点。 Mon…

7、函数分文件编写

1、swap.h2、swap.cpp3、使用

三、redis之strings类型

strings是redis中使用最多的类型。 redis官网中是这么描述strings的: Redis strings store sequences of bytes, including text, serialized objects, and binary arrays. 可以看到Redis strings保存的是sequences of bytes,也就是字节序列。不仅可以保存字符串,而且还可以…

排队论——数学模型和绩效指标精解

排队论最早由丹麦工程师Agner Krarup Erlang于1910年提出,旨在解决自动电话系统的问题,成为话务理论的奠基石。Erlang通过研究电话呼叫的随机到达和服务时间,推导出著名的埃尔朗电话损失率公式,用于计算电话系统的呼叫阻塞率,揭示了排队现象的本质。Erlang之后,排队论得到…

本地文件包含漏洞详解与CTF实战

1. 本地文件包含简介 1.1 本地文件包含定义 本地文件包含是一种Web应用程序漏洞,攻击者通过操控文件路径参数,使得服务器端包含了非预期的文件,从而可能导致敏感信息泄露。 常见的攻击方式包括:包含配置文件、日志文件等敏感信息文件,导致信息泄露。 包含某些可执行文件或…

代码随想录算法 - 二叉树6

题目1235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖…

6、函数的声明

程序是一行行执行,我们可以在前面进行函数声明,然后将函数的定义放在程序末尾。 声明可以写多次,但是定义只能写一次。

如何基于Java解析国密数字证书

一、说明 随着信息安全的重要性日益凸显,数字证书在各种安全通信场景中扮演着至关重要的角色。国密算法,一、说明 随着信息安全的重要性日益凸显,数字证书在各种安全通信场景中扮演着至关重要的角色。国密算法,作为我国自主研发的加密算法标准,其应用也愈发广泛。然而,在…