JAVA不同类型数组重载_方法的重载;数组 (Java Day05)

一,方法的重载

概念:在一个类中,拥有多个方法名相同,参数列表不同的方法的现象叫做方法的重载

特征:

​            1、在同一个类中

​            2、方法名相同

​            3、参数列表不同

参数列表的不同:

​            1、参数的个数不同

​            2、参数的类型不同【参数的个数相同前提】

​            3、参数的顺序不同【参数的个数相同,参数拥有的类型不是同一个类型】

特点:和方法的返回值类型、方法体、修饰符没有关系

二,数组

概述:

​           1、他是引用数据类型的一种

​           2、数组是用来存储类型一致的多个值的容器(一块连续的空间)

​           3、数组一旦创建长度不可变。

数组的初始化【两种初始化方式】

初始化方式:

1,声明数组:数据类型[ ] 数组名;---------数组名是标识符,需要符合标识符取名的规范与规则。

2,分配空间:数组名 = new 数据类型 [数组长度];------new是关键字,含义是创建,开辟。代表在堆内存中开辟一个空间。

3,数组赋值:静态赋值和动态赋值

​                           静态赋值:创建数组出来的时候把我们想要放的数据放入到数组中

​                                          标准格式:数据类型[] 数组名 = new 数据类型[] {值1,值2.....}

​                                          简化格式:数据类型[] 数组名 = {值1,值2.....}【常用】

​                           动态赋值:创建数组的时候没有把想要的放的值放入到数组中,给定长度值

​                                           格式:数据类型[] 数组名 = new 数据类型[数组的长度];

​                                           解释:

​                                                1. 数据类型:可以是基本数据类型也可以是引用数据类型

​                                                2.  []:就是数组的标准符号。

​                                                3. new:关键字 在堆空间开辟一块新的空间出来

4,数组的使用

注意:数组分配空间后,每个元素都有默认值,

byte, short, int, long    类型的数组元素的默认值为0

float, double          类型的数组元素的默认值为0.0

boolean            类型的数组元素的默认值为:false

string             类型的数组元素的默认值为:null

char            类型的数组元素的默认值为:“\u.0000”

代码示例

public classDemo02 {public static voidmain(String[] args) {//静态初始化

int[] arr = new int[] {1,2,3,4,5};//5个长度的数组

System.out.println(arr);//[I@15db9742

int[] arr1 = {6,7,8};//3个长度的数组

System.out.println(arr1);//[I@6d06d69c//动态初始化

String[] arr2 = new String[4];//4个长度大小字符串数组

System.out.println(arr2);//[Ljava.lang.String;@7852e922

}

}

[I@15db9742:数组的地址【在堆空间中开辟的数组存在的地址值】

[:  表示是一维数组

I:表示的是数组存放数据的数据类型

@:就是一个连接符

15db9742:哈希值【开辟空间的时候系统给这个空间生成的一个十六进制数】

数组的内存理解

​         数组是如何存放数据的?

​         把数组内部的空间划分成一个一个的小位置【小空间】,每一个位置存放一个数据,

​         数组有多长就会有多少个位置。

一个数组的内存图:

4fe381e18c6e8fbf1550e92eddf07147.png

​两个数组的内存图:

255441b58ce4a1d3ed95632263fddb3d.png

两个引用指向一个数组的内存图:

引用:数组变量中存放的是数组的地址值

1ad36b6eeddca3ec9774d4166cd7d390.png

数组的使用

概述:使用数组的时候操作的是数组的地址值。

使用步骤:

​                    1、使用数组变量名【数组的地址值】找到堆空间中对应的数组空间

​                    2、通过数组空间的位置的编号来找到对应的位置

​                    3、就可以操作该位置的数据

数组空间的位置编号官方起名叫做索引【下标、角标】,是从0开始的。

索引的最大值比数组的长度值小1

取出数据:格式:数组名[索引值] 比如:arr[3]

存放数据:格式:数组名称[索引值] = 值; 比如:arr[3] = 5;代码示例

public classDemo03 {public static voidmain(String[] args) {

String[] arr= {"金莲","百合","蓉蓉","小鹿","冬施"};//取值 蓉蓉 索引值 0 1 2 3 4

System.out.println(arr[2]);//蓉蓉//赋值 把冬施这个位置放上蔡徐坤

System.out.println(arr[4]);//冬施

arr[4] = "蔡徐坤";

System.out.println(arr[4]);//蔡徐坤

}

}

数组的操作说白了就是使用数组的索引值进行操作。操作的索引值必须要在数组索引范围内;

操作数组首先要找到对应的数组的地址值,要求数组操作的时候必须要有具体的地址值

数组的异常:

角标【索引】越界异常:【ArrayIndexOutOfBoundsException】

原因:操作数组是使用的索引值不在该数组的索引值范围内造成的

该异常编译不会报错,只有在代码运行的时候才会报错【运行异常】

空指针异常:【NullPointerException】

原因:操作的数组变量中存放的是null值,没有具体的地址引用,找不到要操作的数组

前提:操作地址值为null的数组变量去存取值才会发生

数组遍历

概述:一次性的从数组中获取多个数据。数组的数据获取通过索引值获取,一个一个的去获取。

获取多个数据是一个重复动作。使用循环来控制索引值的变化,通过索引值依次获取对应的数据这样的操作叫做遍历。

遍历的过程中利用索引的最大值比长度值小1 规律作为遍历的条件

数组的长度获取:数组名称.length;使用for循环进行取值就是数组的遍历

代码示例:

public classDemo04 {public static voidmain(String[] args) {//创建一个字符串数组

String[] arr = {"宝宝","乃亮","大朗","羽凡"};//循环数组时,循环变量就是数组下标

for (int i = 0; i < arr.length; i++) {//开始取值

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

}

}

}

练习1

获取一个int类型数组中数据的最大值

分析:求取多个int数据的最大值; 采用打擂台的思想来求取最大值

从这些数据中随便抽取一个作为第一个擂主

要让其他的所有元素一次的和擂主打擂

打输了不管下一个挑战

打赢了变成新的擂主,同下一个元素继续挑战

一直到所有的元素挑战完毕,最终的擂主就是最大值

代码示例

public classTest01 {public static voidmain(String[] args) {int[] arr = {123,34,67,23,234,573,2238};//假设一个擂主 arr[0]

int max = arr[0];//进行打擂 获取其他的每一个元素//遍历获取每一个元素

for (int i = 1; i < arr.length; i++) {//打擂 arr[i]是挑战者 max 就是擂主

if (max

max =arr[i];

}

}//循环完成之后就是打擂结束了 max里面就是最后的擂主也就最大值

System.out.println("数组arr中的最大值是:"+max);

}

}

练习2

将数组的元素进行首尾反转

分析:

代码示例:

public classDemo05 {public static voidmain (String[] args){int [] arr = {1,2,3,4,5};int [] is =reverse (arr);for (int i = 0; i

System.out.println(is[i]);//54321

}

System.out.println("==============");for (int i = 0; i< arr.length; i++) {

System.out.println(arr[i]);//12345

}

}public static int [] reverse (int[] arr){//进行反转 拿到首尾的元素

for (int i =0, j = arr.length-1; i <= j; i++, j--){//尾元素到首元素的位置上//把首元素先备份一份出去

int temp =arr [i];

arr [i]=arr [j];

arr [j]=temp;

}//循环完毕 数组反转完毕

returnarr;

}

}

练习3

数组元素索引的查找[一旦找到就返回索引后面就不找了]

给定一个数组,找到指定值的索引

思路:使用要查找的值取和数组的元素取对比,相同了找到了,把对应的元素的索引值返回。

代码示例

public classDemo03 {public static voidmain(String[] args) {int [] arr = {3,4,5,6,7};int index = getIndex(arr, 5);

System.out.println(index);//2,2是5的索引值

System.out.println(getIndex(arr, 10));//没有这个值返回-1

}public static int getIndex(int[] arr,intnum) {for(int i =0; i

if(num ==arr[i]) {returni;

}

}//循环完毕没有找到对应的数 就没有索引

return -1;

}

}

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

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

相关文章

佳博网络打印机改ip工具_换IP软件为什么是网络工作者首选工具?

科技的不断发展也在促使着网络技术的进步&#xff0c;而网络对于我们日常工作生活来说是不可或缺的&#xff0c;太多事情都需要在网络中完成&#xff0c;对于互联网从业者深知其重要性&#xff0c;常常会因为项目的不同需要切换不同的IP地址来进行工作&#xff0c;一般情况下我…

玩ts要注意什么_番禺三维创意拍摄要注意什么

番禺三维创意拍摄要注意什么 广州思卓传媒有限公司(简称思卓传媒)成立于互联网&#xff0c;视频迅速崛起的21世纪&#xff0c;前身为思卓影视工作室&#xff0c;近十年积累了丰富品牌策划制作&#xff0c;以专注&#xff0c;精益求精的匠人精神为追求&#xff0c;致力于产生专业…

java c 客户端_java基于C/S模式实现聊天程序(客户端)

经过这几天对java的学习&#xff0c;用java做了这个计算机网络的课程设计&#xff0c;基于C/S模式的简单聊天程序&#xff0c;此篇文章介绍一些客户端的一些东西。先讲一讲此聊天程序的基本原理&#xff0c;客户端发送消息至服务器&#xff0c;服务器收到消息之后将其转发给连接…

4接口引脚定义_浅谈USB Type-C接口

笔者前段时间做了一款STM32下载器&#xff0c;为了与新时代接轨&#xff0c;在设计电路板的时候首次使用了USBType-C接口&#xff0c;后来发现其确实很好用。就在今天又设计制作了一款USB-hub&#xff0c;在硬件上我又使用了Type-C接口&#xff0c;所以来了兴致&#xff0c;写一…

rocket mq 监听端口_浅谈业务流程中的mq使用方式

假设有个场景&#xff1a;下单成功需要给用户发送消息通知&#xff0c;发送消息通知通过mq实现事务提交前发送mq消息step1&#xff1a;start transactionstep2&#xff1a;生成订单step3&#xff1a;投递消息到mqstep4&#xff1a;commit transaction问题&#xff1a;step3发生…

jsp工程防止外部注入_XPATH注入详解|OWASP Top 10安全风险实践(五)

本文为一些列连载文章之一&#xff0c;不定期更新&#xff0c;计划目录如下&#xff1a;OWASP介绍SQL注入命令注入XML外部实体注入XPATH注入反射式、DOM及存储XSS失效的身份认证和会话管理不安全的直接对象引用安全配置错误敏感信息泄露功能级访问控制缺失跨站请求伪造服务端请…

小程序反编译 g is not defined_培生幼儿启蒙英语 Level B | 小牧羊女在哪?

本栏目为羽佳讲绘本独家专稿&#xff0c;文中图片及音频已获得海豚传媒授权&#xff0c;未经允许请勿转载。大家好&#xff01;我是毛毛。培生幼儿启蒙英语 Level B(升级版)的分享又来了&#xff01;想了解这套绘本及购买信息的小伙伴们&#xff0c;可以点击喜大普奔&#xff0…

snmp 获得硬件信息_信息系统项目管理师(三)

常规信息系统集成技术系统集成&#xff1a;将计算机软件、硬件、网络通信等技术产品即成为能够满足用户特定需求的信息系统。&#xff08;一&#xff09;网络标准与网络协议1、网络协议网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。网络协议三要素&…

20w7珠led驱动电源电路图_LED驱动电源:用TL431做的几个恒流电路分享!

引言随着LED照明现在越来越热&#xff0c;作为LED的生命支柱--LED驱动电源也越来越受到人们的关注。一直听到有很多人这么说&#xff1a;LED电源是个特殊的电源&#xff0c;跟普通电源有很大的不同&#xff0c;所以做LED电源要找专业的LED电源工程师。这种说法给LED电源蒙上了一…

huffman python_Python huffman包_程序模块 - PyPI - Python中文网

生成哈夫曼码本&#xff01;Huffman codes是将单个符号压缩成二进制序列的最佳方式&#xff0c;该二进制序列可以在不使用符号间分隔符的情况下被明确解码(它是“prefix-free”)。以(symbol, weight)格式提供一个2元组的iterable&#xff0c;生成一个huffman码本&#xff0c;作…

android 充电动画_iPhone 12充电测试:18/20W并无明显区别

原标题&#xff1a;iPhone 12充电测试&#xff1a;18/20W并无明显区别日前&#xff0c;充电头网使用苹果原装5W、12W、18W、20W以及65W充电器测试了iPhone 12的充电速度。从结果来看&#xff0c;苹果的五福一安的充电数据依旧“稳定”&#xff0c;半小时充入了18%的电量&#x…

跳出所有循环的语句_从零开始的Java之旅2.0 流程控制语句

前言昨天我们对Java的数据类型和运算符进行了充分讲解,今日我们学习流程控制语句. 今日内容:if else 判断语句switch 选择语句for 循环语句while 循环语句do while 循环语句break&#xff0c;continue 跳出语句概述:在一个程序执行的过程中&#xff0c;各条语句的执行顺序对…

el-table 树形表格 自定义展开图标_[shell脚本]表格数据在终端可视化输出

最终效果1. 自定义表格样式2. 自定义主题颜色支持三系普通颜色支持16色彩虹色支持单颜色回顾一下shell语法1. shell传递参数我们可以在执行shell脚本时实时传递参数从而指定某些具体的参数&#xff08;在本例中包括表格的样式、颜色等&#xff09;&#xff0c;脚本中获取参数的…

python如何强制结束主线程_强制结束线程

场景&#xff1a; 如果某个线程持续阻塞&#xff0c;无法退出&#xff0c;从而导致整个程序无法结束&#xff0c;此时就需要强制结束线程思路&#xff1a;由于程序阻塞&#xff0c;比如卡在代码中的某一行后&#xff0c;一直无法向下执行&#xff0c;此时&#xff0c;无法通过常…

kubectl apply -f_广州车展捷豹路虎参展阵容 全新F-PACE 路虎卫士90

近日&#xff0c;我们从相关渠道获得了捷豹路虎广州车展的阵容。将有两款新车亮相&#xff0c;新款捷豹F-PACE和路虎卫士90。新款捷豹F-PACE采用了最新的家族式设计风格&#xff0c;具有更时尚的造型设计&#xff0c;而路虎卫士90则拥有更短的轴距。外观方面&#xff1a;新款捷…

python 会议室预约系统解决方案_令令开门智能会议室预约系统解决方案

原标题&#xff1a;令令开门智能会议室预约系统解决方案在联合办公和中大型公司经常会发生会议室不够用的情况&#xff0c;这种不够用会给企业造成严重的影响&#xff1a;效率低下、部门间引发矛盾、重要会议受到打扰、增加人员成本等等。我们知道&#xff0c;一般邻近上下班是…

github gis 路径规划_Apollo问答丨车辆定位和轨迹规划用的是语义,还是3D Position?...

自Apollo开发者社区小程序上线以来&#xff0c;我们每一天都会在「社区问答」板块收到许多开发者的技术提问。每周&#xff0c;可爱的Apollo小姐姐都会精选出被采纳的社区问答进行整理汇总&#xff0c;并统一对大家进行答复。开发者在使用Apollo平台过程中&#xff0c;如果遇到…

python 安卓app开发环境搭建_基于react-native的APP开发环境配置

1. 首先要有jdk 版本1.8 环境变量必须要有 %JAVA_HOME%;%JAVA_HOME%\bin2.python 版本2 必须是python2(官方文档这么写的&#xff0c;具体不知道为啥) 环境变量两个 python根目录和scripts目录&#xff1b; 这边顺便提一嘴&#xff0c;win下python2与python3的共存…

astar插件下载 就行_暗黑破坏神2地图插件常用的设置,做自己的私人订制游戏!...

暗黑2是一款很老的游戏&#xff0c;虽然很经典&#xff0c;但游戏里有很多地方在今天看来有很多不方便的地方&#xff0c;比如无法查看怪物的一些属性&#xff0c;小地图上没有怪物显示&#xff0c;装备系统很复杂但一些数值不能直接查看比如物品等级。所以如今很多朋友玩这个游…

什么是驻点和拐点_拐点和驻点的区别有哪些

各位家长好&#xff0c;我是51学霸(51xueba.cn)专栏作者&#xff0c;甜老师全文共计758字&#xff0c;建议阅读2分钟拐点&#xff1a;二阶导数为零&#xff0c;且三阶导不以零&#xff1b;驻点&#xff1a;一阶导数为零或不会有。差别&#xff1a;可导涵数f(x)的极值点【必然】…