java的方法和数组

news/2024/9/19 7:19:18/文章来源:https://www.cnblogs.com/hzy7/p/18416104

什么是方法呢?

就类似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.hqwc.cn/news/798188.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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解析国密数字证书

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

Windows应急响应-个人整理

个人总览-仍待完善Windows应急响应整理(一)参考 1.NOPTeam的手册链接 2.fox-yu的博客(思路很清晰,对我这个小白来说很友好)1.整体思路 1.1常见事件类型(不完整、待补充)网络协议攻击:拒绝服务攻击:DDos、CC攻击、泛洪攻击等。链接 DNS劫持 ARP欺骗web入侵:webshell 网页挂马…

视野修炼-技术周刊第101期 | 垂直居中

① align-content - 垂直居中普通元素 ② up mode - 一键隐藏 Chrome 插件 ③ Chrome 性能面板新功能 ④ k-colors.js - 图片主色提取 ⑤ 英:优化JS性能的一些技巧 ⑥ 英:Web 的剪贴板,如何存储不同类型的数据 ⑦ 英:不简单的 js 入门教程 ⑧ Peter Cat - GitHub 仓库智能答…

06: 抽象工厂模式

提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类1. 案例 在Access和SQL server分别插入User表和Department表 2. 抽象工厂模式结构 - 抽象产品(AbstractProduct):所有产品的基类,提供产品类的公共方法struct User {std::string m_sName = "";…

南沙C++信奥老师解一本通题 1371:看病

​【题目描述】有个朋友在医院工作,想请BSNY帮忙做个登记系统。具体是这样的,最近来医院看病的人越来越多了,因此很多人要排队,只有当空闲时放一批病人看病。但医院的排队不同其他排队,因为多数情况下,需要病情严重的人优先看病,所以希望BSNY设计系统时,以病情的严重情…