java 数组和方法

keil软件调试(Debug)仿真教程(软件调试和硬件调试的区别)及常用调试按键详解 单片机的调试分为两种,一种是使用软件模拟调试,第二种是硬件调试,两种调试方式各有不同,软件模拟调试有误差,而硬件调试,借用仿真器调试是嵌入式开发中常用方法。 阅读详情

04数组和方法

一、目标

1.1 掌握数组作用

1.2 掌握数组声明和特点

1.3 掌握数组常用操作

1.4 掌握Arrays类使用

1.5 了解二维数组

1.6 掌握方法

二、数组概述

2.1 定义

案例分析

现在需要统计某公司员工的工资情况,例如计算平均工资、找到最高工资等。假设该公司有50名员工,用前面所学的知识,程序首先需要声明50个变量来分别记住每位员工的工资,然后在进行操作,这样做会显得很麻烦,而且错误率也会很高。因此我们可以使用容器进行操作。将所有的数据全部存储到一个容器中,统一操作。

容器: 是将多个数据存储到一起,每个数据称为该容器的元素。

生活中的容器: 水杯,衣柜,教室

数组概念: 数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。

 

数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。

float[]  a={1.0f,2.0f,3.0f,4.0f,5.0f}

用来存放同一种数据类型的集合,存到数组中的每个数据称为元素,他们都有下标从0开始,我们可以通过下标操作对应的元素

数组常见的概念:数组名、下标(索引)、元素、数组的长度;

数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。

l 创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是

这块连续空间的首地址。

l 数组的长度一旦确定,就不能修改。

l 我们可以直接通过下标(或索引)的方式调用指定位置的元素,速度很快。

l 数组的分类:

Ø 按照维度:一维数组、二维数组、三维数组、…

Ø 按照元素的数据类型分:基本数据类型元素的数组、引用数据类型元素的数组(即对象和数组)

  1. 一维数组的声明方式:

int a[];

int[] a;

double b[];

String[] c ;   //引用类型变量数组

Java语言中声明数组时不能指定其长度(数组中元素的数),

 例如: int a[] = new int[]; //非法int a[] = new int[5];初始化值

是不能指定长度的,后面的= new int[5]是在进行初始化数组,非法的原因是没有指定初始化的长度,与定义时指定长度无关;

2.2 好处

可以存储多个数据而且有下标从0开始,方便操作这些元素,我们可以通过length属性获取数组长度

2.3 特点

1)可以存储任意类型的数据

2)数组大小一旦确定就无法改变

3)可以通过下标获取数据

 

2.4 声明

2.4.1 动态声明:数组声明且为数组元素分配空间与赋值的操作分开进行

格式:数据类型[] 数组名 = new 数据类型[元素个数或数组长度];

案例:int[] arr = new int[3];

arr[0] = 3;

arr[1] = 9;

arr[2] = 8;

说明:声明一个数组用来存放int类型的数据,可以存储5个

2.4.2 静态声明:在定义数组的同时就为数组元素分配空间并赋值。

格式:数据类型[] 数组名 = new 数据类型[]{元素,元素,……};

案例1:int[] arr = new int[]{3,5,1,7};

案例2:int[] arr = {3,5,1,7};

说明:以上两种写法都相同,下边的是简写方式

2.4.3 区别

当我们确定要存储哪些数据时可以使用静态声明因为比较方便,如果我们不确定要存储哪些具体的数据,需要使用动态声明后期赋值。当然静态声明方式也是可以修改值的

三、数组常见操作

3.1 创建

3.1.1 动态声明

 

3.1.2 静态声明

 

3.2 遍历

3.2.1 普通循环遍历

 

3.2.2 增强for循环遍历

 

3.2.3 两者区别

增强for循环操作起来比较方便,但是不能通过下标操作元素,所以仅当需要遍历时可以使用增强for循环,如果要操作元素还是需要使用普通的循环,通过下标操作元素。

3.3 获取最大值

 

3.4 排序

3.4.1 选择排序

 

3.4.2 冒泡排序

 

3.5 查询

3.5.1 线性查询

 

3.5.2 二分查询

 

四、数组常见异常

4.1 角标越界异常

public static void main(String[] args) {

int[] x = { 1, 2, 3 };

System.out.println(x[3]);

//异常:java.lang.ArrayIndexOutOfBoundsException

}

说明:当操作了不存在的角标时会出现角标越界异常,

解决:我们可以通过数组的length属性控制循环时的角标,防止越界。

4.2 空指针异常

public static void main(String[] args) {

int[] x = { 1, 2, 3 };

x = null;

System.out.println(x[1]);

//空指针异常: java.lang.NullPointerException

}

说明:因为数组时引用数据类型所有有一个特殊的值是null,如果值为(引用)为null再去使用该变量时就会出现空指针异常。

解决:可以通过判断确定如果不是null再做操作,如果是null则给出提示

 

五、数组内存分析

 

六、Arrays类(参考API讲解)

6.1 概述

Java提供的专门用来操作数据的类,可以对数组进行排序,查询,拷贝等操作

6.2 常用方法

public class ArraysTest {

public static void main(String[] args) {

int[] arr = {22,12,45,66,98,54,33};

/*

 * 作用:对所有的元素进行升序排序

 * 参数:要排序的数组

 */

Arrays.sort(arr);

/*

 * 作用:对数组中指定区间的元素进行升序排序

 * 参数1:要排序的数组

 * 参数2:要排序的开始下标(索引)包含

 * 参数3:要排序的结束下标,不包含

 */

//Arrays.sort(arr, 2, 7);

/*

 * 作用:将数组变成字符串表现形式

 * 参数1:要转成字符串的数组

 * 返回值:String类型的字符串

 */

/*String str = Arrays.toString(arr);

System.out.println("toString:"+str);*/

/*

 * 作用:根据二分查询查找指定的元素所在的下标

 * 参数1:要查询的数组

 * 参数2:要查询的元素

 * 返回值:元素的下标

 *     没有该元素返回负数:返回的是要插入位置-(下标)-1

 */

int index = Arrays.binarySearch(arr, 100);

System.out.println("查询:"+index);

/*

 * 作用:将指定数组中的元素复制到另一个数组中

 * 参数1:要复制的数组

 * 参数2:新数组的长度

 * 返回值:返回一个新的数组,数组的类型与被复制的数组类型相同,没有的值使用默认值填充

 */

int[] copy_arr = Arrays.copyOf(arr, 7);

System.out.println("copy_arr:"+Arrays.toString(copy_arr));

/*

 * 作用:拷贝指定数组的指定下标的元素

 * 参数1:被拷贝的数组

 * 参数2:开始位置

 * 参数3:结束位置

 * 返回值:一个新数组

 */

int[] copy_arr2 = Arrays.copyOfRange(arr, 2, 6);

System.out.println("copy_arr2:"+Arrays.toString(copy_arr2));

/*

 * 作用:比较两个数组中的元素是否一致

 * 参数1:要比较的数组1

 * 参数2:要比较的数组2

 * 返回值:boolean类型,

 */

boolean b = Arrays.equals(arr, copy_arr);

System.out.println("equale:"+b);

/*

 * 作用:将数组使用指定的值填充

 * 参数1:要填充的数组

 * 参数2:要填充的元素数据

 */

Arrays.fill(copy_arr, 100);

System.out.println("fill:"+Arrays.toString(copy_arr));

 

}

}

 

七、二维数组

7.1 概述

所谓的二维数组就是数组中存储了一个数组,其实还有三维四维等

7.2 声明

数组类型[][] 数组名 =

new 数组类型[一维数组的个数][每一个一维数组中元素的个数];

7.3 声明和遍历

 

 

八、方法 

8.1 方法概述

定义在类中具备一定功能的代码块  main(){ }

8.2 方法的好处

1)提高代码的复用性

2)将程序进行封装,提高程序的安全性

8.3 方法语法

8.3.1 格式

访问修饰符 返回值类型 方法名([数据类型 变量1,数据类型 变量2,...]){

要执行的代码;

return 返回值;

}

 

 

8.3.2 详解

0.访问修饰符:控制方法的访问权限,现阶段都写成public static

1.返回值类型:

1.有返回值,返回值类型与返回值的类型一致

2.没有返回值,返回值类型使用void表示

2.方法名:自己定义的名字,符合规范并且有意义(顾名思义)

3.参数列表:

数据类型:该方法接收的参数的数据类型

变量1:自定义的变量名,有意义

4.要执行的代码:该方法所要完成的功能

5.return两个作用:

1.将方法的返回值返回给调用者

2.结束方法

6.返回值:方法运算完之后的结果,可以通过return关键字返回给调用者,交由调用者处理

8.4 方法分类

1.有参数有返回值

2.有参数没有返回值

3.没有参数有返回值

4.没有参数没有返回值

 

8.5 方法传递参数

 

内存图

 

8.5.1 总结

1)传递基本数据类型:相当与一个值拷贝的的过程,会在栈内存中开辟一块空间保存新的变量,操作的是新变量而原先的值并不发生变化。

2)传递引用数据类型:会将堆内存中的地址传递给新变量,操作时操作的是同一块内存中的数据,所以原数据会发生变化。

8.6 方法特点

0.方法只能定义在类中

1.方法中只能调用方法,不能定义方法

2.方法只有被调用才执行,不调用就不执行

3.方法的返回值返回给调用者,将结果交给调用者处理

8.7 如何定义好一个方法

1.如果有未知数参与运算就需要在定义方法时定义参数列表,明确参数类型就是数据类型,

  明确有几个未知数参与运算就是明确有几个形式参数

2.明确方法运算完之后如果调用者需要结果则明确返回值类型,否则返回值类型就是用void来写

  如果调用者需要返回值,返回值类型就根据返回值来写

8.8参数分类

形式参数:方法定义上声明的变量

实际参数:方法调用时传递的具体的数据

8.9 方法重载

概念:在同一个类中,方法名相同,但是参数列表不同,与返回值类型无关,与参数的顺序有关

案例:计算两个数的和,计算三个数的和

好处:有些方法它们的功能相同,但是实现的方式不同,为了让方法名更有意义,java提供了一个机制,叫做方法的重载

什么时候使用:

当一个类中有部分方法他们的功能是相同的但是实现方式不同就可以将这写方法的方法名定义成一样的

 

 

使用 Simulink + Simscape Electrical 实现一个变压器耦合式单相全波整流器的仿真模型 本文介绍了基于Simulink的变压器耦合式单相全波整流器建模与仿真方法。详细说明了从项目创建、模块添加、电路搭建到参数配置的完整建模过程,重点分析了整流器的效率与损耗特性,包括变压器损耗和二极管导通损耗。通过仿真展示了输入输出波形特征,并提出了选用高效元件、优化变压器设计等改进建议。该案例为电力电子系统建模提供了实用参考,有助于深入理解整流电路工作原理和性能优化方法。 阅读详情

相关推荐

S7-1200五轴伺服系统PLC控制方案与调试技巧

工业自动化领域中,多轴伺服控制是实现精密加工的核心技术。基于PROFINET实时通信协议和PLCopen运动控制标准,现代PLC(如西门子S7-1200)能够实现多轴高精度同步控制。其技术原理是通过等时同步模式确保各轴运动的时序一致性,结合PID调节和电子齿轮比实现位置闭环。这种方案在数控机床、3D打印等场景具有重要应用价值。本文以五轴联动系统为例,详细解析了S7-1200与V90伺服驱动器的硬件组态方案,包括PROFINET环网配置和IRT同步设置。在软件层面,重点介绍了基于TIA Portal的工艺对象

weixin_34332905的博客 415

Java语言基础——方法、数组

文章目录1. 方法1.1 方法的定义1.2 定义方法的两个明确1. 3 调用方法的三种形式2. 数组2.1 数组的定义2.2 数组的访问2.3 数组原理内存图2.4 数组的常见操作2.4.1 数组越界异常2.4.2 数组空指针异常2.4.3 数组的遍历2.4.4 数组获取最大值元素2.4.5 数组作为方法参数和返回值2.5 数组的排序2.5.1 冒泡排序2.5.2 选择排序 1. 方法 我们在学习运算符的时候,都为每个运算符单独的创建一个新的类和main方法,我们会发现这样编写代码非常的繁琐,而且重复的代码

菜鸟小梦的博客 642

Vivado ChipScope Debugging: Overcoming Common DRC Errors in FPGA Design

本文深入解析Vivado ChipScope调试中常见的DRC错误,特别是AVAL-244和AVAL-245等时钟相关问题,提供实用的Tcl命令解决方案和最佳实践。通过将DRC错误降级为警告的技巧,帮助FPGA设计者高效完成调试流程,同时强调何时应保留DRC检查以确保设计可靠性。

weixin_30335575的博客 416

Arrays常用API

本文主要总结了JAVA的Arrays工具类的常见使用方法,该工具类在机试刷题、面试过程中经常被问到,建议自己阅读完实践实践。

记录心得,常学常新。赠人玫瑰,手留余香。 760

wsl + vscode 离线配置 ERROR: Faild to download https://update.code.visualstudio.com

很多情况下是没有现成的VS Code Server程序的,需要手动下载。记住上面的Commit ID,可以通过下面的链接下载 vscode-server-linux-x64.tar.gz。然后将vscode-server-linux-x64.tar.gz上传在服务器上的$HOME/.vscode-server/bin文件夹中,解压。在wsl中下载不了 vscode 的核心。运行下面两行命令,建立空的$HOME/.vscode-server/bin文件夹。重新运行 wsl与vs的链接即可。

点云算法工程师 3790

华为HCIP-001:PPPOE配置模拟实验

华为HCIP01:PPPOE配置模拟实验 实验环境 pppoe-client上面的接口信息 [AR1]dis ip interface brief *down: administratively down ^down: standby (l): loopback (s): spoofing The number of interface that is UP in Physical is 2 The number of interface that is DOWN in Physical is 1 Th

兔子乖乖 1798

Arrays类及其API

Arrays是用来操作数组的一个工具类。

weixin_55843921的博客 361

百度API实现人流量数量检测(动态)

百度的这个API还挺好用的,对与不追求高精度的人来说非常适用,结合他官方给的文档,极易上手。 需要做的就是通过API Key和Secret Key获取的access_token。 然后稍微修改下代码就行,但是他给的代码并没有直接从摄像头获取视频,而是读取一个文件夹,那么就需要自己先对摄像头的输出视频进行处理。 识别结果如下,"person_num"是当前画面的人数,in是累计进入的人数,out是累计走出去的人数。 他这个有个缺点就是返回值里边并没有实时返回in和out的值,而是都是0,但是这个图片上有,图片

qq_42479987的博客 3380

Arrays类的常用API

一、简述Arrays 的用法(初级) (1)返回数组内容的toString(数组) (2)排序的API(默认自动对数组元素进行升序排序)----------------------sort方法 (3)二分搜索技术(前提是数组必须排好序才支持,否则会出现bug (4)返回不存在元素的规律 ---------------------返回应存在的位置的负数 注意:数组如果没有排好序,可能会找不到存在的元素,从而出现bug package Arrays; import java...

wujianrenn的博客 1000

从原理到落地:Java+TensorRT打造YOLO模型GPU极致推理方案

Java+TensorRT的YOLO模型GPU加速方案,核心是通过JNI桥接实现Java与TensorRT的高效交互,结合TensorRT的底层优化能力,最大化GPU算力。该方案既保留了Java后端的工程化优势(如易维护、生态完善),又解决了AI模型推理的性能瓶颈,可落地于实时视频分析、智能监控、工业质检等场景。基于TensorRT Dynamic Shape实现多尺寸输入的自适应优化;结合Java的协程(Virtual Thread)提升异步推理的并发效率;

2601_94871597的博客 766

【网络基础2】路由器的 “两扇门”:二层接口和三层接口到底有啥不一样?

家里的路由器背后总有几个网线接口,有的标着 “LAN”,有的标着 “WAN”;公司机房的路由器上,接口更是五花八门,有的插着网线,有的连着光纤,旁边还贴着 “GE0/0/1”“Eth-Trunk1” 这样的标签。你可能会想:不就是插网线的地方吗?有啥区别?其实,这些接口分 “二层接口” 和 “三层接口”,它们的作用差得远了 —— 就像你家的门,有的是 “小区内的单元门”(只通小区内部),有的是 “小区的大门”(能通往外面的世界)。接下来,咱们用大白话 + 生活例子,一点点把这两种接口讲透。

jundao1997的专栏 565

Java 中Arrays类常用API

实现代码: package apilambda.d7_arrays; import java.lang.reflect.Array; import java.util.Arrays; public class ArraysDemo1 { public static void main(String[] args) { //目标:学会Arrays常用API,并理解其原理 int[] arr={10,2,55,4,88,60}; Syste...

qq_47387991的博客 1005

YOLOv9改进策略 | Conv篇 | 2024最新ECCV最新大感受野的小波卷积WTConv助力YOLOv9有效涨点

本文给大家带来的改进机制是一种新的卷积层,称为WTConv(小波卷积层),它利用小波变换(WT)来解决卷积神经网络(CNN)在实现大感受野时遇到的过度参数化问题。WTConv的主要目的是通过对输入数据的不同频率带进行处理,使CNN能够更有效地捕捉局部和全局特征,WTConv成功解决了CNN在感受野扩展中的参数膨胀问题,提供了一种更为高效、鲁棒且易于集成的卷积层解决方案,我将其用于二次创新YOLOv9中的RepNCSPELAN4机制可以减少一定的参数量和计算量,达到一个可观的轻量化作用。

Snu77的博客 1544

[Java] 方法和数组

Java中的方法就类似于C语言当中的函数,是实现一种特定的,使用频率高的功能,专门解决一种问题的办法。例如:求一个数的开平方,判断一个数是不是素数。方法也分为两种,一种是Java语言规定的方法,还有一种是程序员根据自己的需要自定义的一些方法。当在解决重复问题时,设置一个方法解决重复问题,可以多次调用方法去解决重复问题,不用每次使用就需要写代码,减少代码冗余度。修饰符 返回值类型 方法名(参数类型){方法体代码;(return 返回值;i++) {

2402_83046353的博客 3049

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java之方法和数组

方法(methods)就是一段用于完成特定功能的代码片段,类似于其它语言的函数(function)方法用于定义该类或该类实例的行为特征和功能实现,方法是类和对象行为特征的抽象。方法类似于面向过程当中的函数。面向过程中,函数是最基本的单位。整个程序由一个个函数调用组成。面向对象中,整个程序的最基本单位是类,方法是从属于类和对象的[修饰符1修饰符2]返回值类型方法名(参数列表){方法体;}数组是相同类型数据的有序集合因为变量没有办法储存多个值,所以才将数组的地址值传给变量以示数组相同类型。.........

m0_60027772的博客 489

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java中方法和数组

方法,即我们经常说的函数 格式是,修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) { 方法体语句; return 返回值; } 举例: public class Main { public static void main(String[] args) { int...

1465

Java之方法和数组

全网最细致的方法与数组内容,快来瞧瞧吧

2301_79404878的博客 983

java 方法 和 数组

本文介绍了java中的方法和数组的相关知识

weixin_54342360的博客 790

Java数组和方法

本文为JavaSE系列:主要包括数组和方法

m0_70587611的博客 1321

【JavaSE】Java方法和数组

Java中方法和数组的简单介绍与使用

yj20040627的博客 2205

JAVA——方法和数组

本文介绍了Java中方法和数组的基础知识。方法部分阐述了方法的概念、定义格式、参数传递机制、方法重载和递归;数组部分讲解了数组的创建初始化、基本操作、内存模型、作为方法参数和返回值的用法,以及常见算法实现(如二分查找和冒泡排序)。文章还对比了基本类型和引用类型的区别,并说明了二维数组的使用方式。通过代码示例详细演示了各个知识点的具体应用,为Java编程提供了基础指导。

2301_82337855的博客 1034

java中方法和数组

 方法 概念:方法就是就是你要实现某个功能具体的步骤的封装,提高代码的复用性 格式:权限修饰符 状态修饰符 返回值类型 方法名(参数列表){ 方法体; Return 返回值; } 调用:方法名(); 分为2类 A:有明确返回值的方法调用    。单独调用没有意义    。常用赋值调用 B:没有明确返回值的函数调用    。只能单独使用,也就是所谓的void

zm13319249591的博客 285

java中数组的和_Java中的数组和方法

3.1数组的定义和使用数组(Array)是用来存储一组相同数据类型数据的集合。数组中的每个数据称为一个元素(element),数组可以分为一维数组,二维数组和多维数组。我们主要讲解一维数组和二维数组。3.1.1一维数组的声明数组变量Java中的数组必须先声明然后再使用,Java中声明数组的方式如下:datatype[]arrayRefVar;或者datatypearrayRefVar[];...

weixin_35476698的博客 1158

Java_方法和数组

方法和数组 方法概念 简单的说:方法就是完成特定功能的代码块 在很多语言里面都有函数的定义 函数在Java中被称为方法 格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) { 函数体; return 返回值; } 方法格式解释 修饰符 比较多,后面会详细介绍。目前public static 返回值类型 用于限定返回值的数据类型 方法名 一个名...

KevinJee_ 211

初识Java的方法和数组

文章目录方法和数组初识1. 方法总结1.1 方法的三要素1.2 方法名1.3 形式参数列表1.4 返回值类型2. 封装方法的过程建议3. 数组【重点】3.1 为什么使用数组3.2 生活中的数组案例3.3 Java中定义数组的格式[重点]3.4 数组的使用方式3.5 数组内存分析图3.6 数组和for循环不得不说的秘密3.7 数组作为方法参数的形式 方法和数组初识 1. 方法总结 1.1 方法的三要...

猪猪 254

java 数组的方法_Java—数组和方法

数组声明数组  数组类型[] 数组名;or 数据类型 数组名[]; 如:int[] scores;分配空间  数组名 = new 数据类型[数组长度];如:scores = new int[5];以上两步合并:int[] scores = new int[5];3. 赋值  scores[0] = 76;以上三步合并:int[] scores = {76, 80, 81, 82, 99};等价于i...

weixin_31209173的博客 292

【Java数组和方法】

方法是一种语法结构,它可以把一段代码封装成一个功能以便重复调用修饰符 返回值类型 方法名(形参列表){方法体代码(需要执行的功能代码)return 返回值;方法修饰符 返回值类型 方法名(形参列表)return c;修饰符暂时先这样写,后续会将形参:指的是在方法中运行的参数,是实参的拷贝形参可以为空当返回值类型不为空的时候,方法中一定要有return语句函数名(实参列表);在函数的调用时,我们直接传入了参数,并且函数的返回值可以赋值或者直接输出。

2302_80203877的博客 748
上一篇: java变量
下一篇: java掌握面与对象
RedSnipers
博客等级 码龄7年 8粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值