方法+数组

1. 方法

1. 什么是方法

方法定义:

// []表示可写可不写[public] [static] type name ( [type formal , type formal , ...]){方法体;[return value ;]
}[修饰符] 返回值类型 方法名称([参数类型 形参 , 参数类型 形参 ...]){方法体代码;[return 返回值 ;]
}
1. 修饰符:现阶段直接使用 public static 固定搭配
2. 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成 void
3. 方法名字:采用小驼峰命名
4. 参数列表:如果方法没有参数, () 中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开
5. 方法体:方法内部要执行的语句
6. java 当中,方法必须写在类当中
7. java 当中,方法不能嵌套定义
8. java 当中,没有方法声明一说,方法定义放在函数调用前后都可以
调用方法 --- > 传递参数 --- > 找到方法地址 --- > 执行被调方法的方法体 --- > 被调方法结束返回 --- > 回到主调方法继续往下 执行

2. 方法重载

什么是方法重载:
1. 方法名必须相同
2. 参数列表必须不同 ( 参数的个数不同、参数的类型不同、类型的次序必须不同 )
3. 与返回值类型是否相同无关

3. 方法签名

经过编译器编译修改过之后方法最终的名字。具体方式: 方法全路径名 + 参数列表 + 返回值类型,构成 方法完整的名字。
    public static int add(int x,int y){return x+y;}public static double add(double x,double y){return x+y;}public static void main(String[] args) {System.out.println(add(1,2));System.out.println(add(1.5,3.7));}
上述代码经过编译之后,然后使用 JDK 自带的 javap 反汇编工具查看,具体操作:
1. 先对工程进行编译生成 .class 字节码文件
2. 在控制台中进入到要查看的 .class 所在的目录
3. 输入: javap -v 字节码文件名字即可

javap 是 Java 提供的一个反编译工具,可以用来反编译生成字节码的 .class 文件,以查看该类的结构、方法、属性等信息。在使用 javap 命令时,可以加上不同的选项来输出不同的信息,其中包括 -c 和 -v 选项。

  • javap -c:使用 -c 选项会输出反编译的字节码指令。这个选项会列出每个方法的字节码指令,以及相应的操作数。这样可以更直观地查看编译后的 Java 代码实际运行时的指令流程,有利于分析代码运行时的具体逻辑。
  • javap -v:使用 -v 选项会输出反编译的类文件的详细信息,包括常量池、字段表、方法表等。这个选项会将更多的信息以详细方式列出,有助于更深入地了解类的结构和属性。

综上所述,区别主要在于 -c 选项输出的是字节码指令,而 -v 选项输出的是类文件的结构信息。根据具体的需求可以选择使用不同的选项来进行查看和分析。

特殊字符数据类型
Vvoid
Zboolean
Bbyte
Cchar
Sshort
Iint
Jlong
Ffloat
Ddouble
[
数组     以  开头,配合其他的特殊字符,表述对应数据类型的数组,几个  表述几维数组  )
L
引用类型,以 L 开头,以  结尾,中间是引用类型的全类名
    //按顺序打印一个数字的每一位public static void main(String[] args) {Scanner scan=new Scanner(System.in);int n= scan.nextInt();prin(n);//方法调用}//方法定义public static void prin(int n){//如果n<10if(n<10){System.out.println(n);}else { //如果n大于10prin(n/10);//递归调用prin函数System.out.println(n%10);}}

2.  数组

1. 数组的创建

type[] name = new type[num] ;// type     数组元素类型
// type[]   数组类型
// name     数组名
// num      数组元素个数

2. 数组的初始化

动态初始化在创建数组时,直接指定数组中元素的个数

type[] name = new type[num] ; //num不可为空
静态初始化:在创建数组时不直接指定数据元素个数,而直接将具体的数据内容进行指定
type[] name = new type[]{ data1,data2,data3... ,datanum } ;
1. 静态初始化虽然没有指定数组的长度,编译器在编译时会根据 {} 中元素个数来确定数组的长度。
2. 静态初始化时 , {} 中数据类型必须与 [] 前数据类型一致。
3. 静态初始化可以简写,省去后面的 new T[]
type[] name = { data1,data2,data3... ,datanum } ;
静态和动态初始化也可以分为两步去写,但动态初始化简写不可以
//动态初始化
type[] name ;
name = new type[num] ;//静态初始化
type[] name ;
name = new type[]{ data1,data2,data3... ,datanum } ;//name = { data1,data2,data3... ,datanum } ; //err 简写
注意:
虽然java中的数组也可以按照C语言的方法创建,但不推荐(type[] 可以表示数组类型)
如果没有对数组进行初始化,数组中元素有其默认值
   1. 如果数组中存储元素类型为基类类型,默认值为基类类型对应的默认值:
类型  默认值

byte 

0
short0
int0
long0
float0.0f
double0.0
char/u0000
boolean

false

   2. 如果数组中存储元素类型为引用类型,默认值为null

1. 数组是一段连续的内存空间,因此 支持随机访问,即通过下标访问快速访问数组中任意位置的元素
2. 下标从 0 开始,介于 [0, N )之间不包含 N N为元素个数,不能越界,否则会报出下标越界异常。( java.lang.ArrayIndexOutOfBoundsException )

3. 数组遍历

"遍历" 是指将数组中的所有元素都访问一遍, 访问是指对数组中的元素进行某种操作。

在数组中可以通过 数组对象 .length 来获取数组的长度
for-each for 循环的另外一种使用方式 . 能够更方便的完成对数组的遍历 . 可以避免循环条件和更新语句写错 . 但是我们 拿不到数组下标

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

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

相关文章

基于Android13源码分析Launcher启动

AMS被SystemServer启动之后&#xff0c;SystemServer会通过AMS调用startHomeActivity启动Launcher. Launcher其实就是个Activity&#xff0c;学习Launcher的启动后&#xff0c;再去看Activity启动&#xff0c;会容易很多。 Launcher的启动分2个阶段&#xff1a; 第一阶段是st…

机器学习-理论学习

系统学习机器学习理论知识需要你从基础的数学和统计原理开始&#xff0c;逐步深入了解各类算法和模型&#xff0c;最后掌握高级技术和应用领域。以下是机器学习全面的理论知识指南&#xff0c;内容较长&#xff0c;以满足你对知识深度的需求。 1. 数学和统计基础 机器学习的许…

螺旋式开发是不是就是敏捷开发?

螺旋式开发并不是敏捷开发。虽然它们都是软件开发过程中的一种模型或方法&#xff0c;但两者在核心理念、实施方式和适用场景上存在显著差异。 螺旋式开发是一种结合了瀑布式开发和迭代式开发的软件开发过程。它强调风险分析和质量保证&#xff0c;在每个螺旋周期中都包括需求…

大语言模型(LLM)入门级选手初学教程 II

模型架构 5.1 输入编码&#xff1a; i. 词元序列编码 Input Embedding Module ii. 位置编码&#xff08;Position Embedding, PE)&#xff0c;Transformer 的编码器结构本身无法识别序列中元素的顺序。 &#x1d499;&#x1d461; &#x1d497;&#x1d461; &#x1d491…

【深度学习】实验 — 动手实现 GPT【二】:注意力机制、注意力掩码、多头注意力机制

【深度学习】实验 — 动手实现 GPT【二】&#xff1a;注意力机制、多头注意力机制 注意力机制简单示例&#xff1a;单个元素的情况简单示例&#xff1a;计算所有输入词元的注意力权重推广到所有输入序列词元&#xff1a; 注意力掩码代码实现多头注意力测试 注意力机制 简单示例…

数据库(31)——事务

事务 数据库事务&#xff08;Database Transaction&#xff09;是数据库管理系统&#xff08;DBMS&#xff09;中执行的一组逻辑操作单元&#xff0c;这些操作要么全部成功执行&#xff0c;要么全部不执行&#xff0c;以保持数据的一致性和完整性。事务是确保数据可靠性的重要机…

Android 获取OAID

获取OAID 老规矩&#xff0c;直接上&#xff1a; implementation com.huawei.hms:opendevice:6.11.0.300 // 要获取华为vaid 和aaid&#xff0c;还需添加opendevice 依赖implementation(name: oaid_sdk_2.5.0, ext: aar) import android.content.Context; import android.util.…

每日互动基于 Apache DolphinScheduler 从容应对ClickHouse 大数据入库瓶颈

引言 大家好&#xff0c;我叫张琦&#xff0c;来自每日互动&#xff0c;担任大数据平台架构师。今天我将分享我们团队在基于Apache DolphinScheduler实现ClickHouse零压入库过程中的实践经验。 这个实践项目涉及到两个关键组件&#xff1a;Apache DolphinScheduler和ClickHous…

[vulnhub] Brainpan1

https://www.vulnhub.com/entry/brainpan-1,51/ 主机发现端口扫描 使用nmap扫描网段类存活主机 因为靶机是我最后添加的&#xff0c;所以靶机IP是166 nmap -sP 192.168.75.0/24 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-1…

JAVA的设计模式都有那些

Java设计模式是为了解决软件开发中常见的问题而创建的一系列最佳实践。它们提供了一种在特定情境下解决问题的方法论&#xff0c;并且已经被广泛验证和应用。这些模式不是具体的代码&#xff0c;而是关于如何组织代码以达到某种目的的高层次描述。设计模式通常分为三大类&#…

一致校验矩阵计算

目录 T1T2T3 T1 设二元(7,4)码的生成矩阵为&#xff1a; G [ 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 1 1 0 ] G\begin{bmatrix}1&0&0&0&1&1&1\\0&1&0&0&1&0&1\\0&0&1&0&0&1&1\\0&…

数学建模与优化算法:从基础理论到实际应用

数学建模和优化算法&#xff0c;它们不仅帮助我们理解和描述复杂系统的行为&#xff0c;还能找到系统性能最优化的解决方案。本文将从基础的数学理论出发&#xff0c;逐步深入到各种优化算法&#xff0c;并探讨它们在实际问题中的应用。 思维导图文件可获取&#xff1a;https:…

关于使用K8s实现容器化作业的总时效最优调度

一、Kubernetes对总时效最优调度实现的情况 Kubernetes 可以帮助实现一定程度的时效性优化&#xff0c;但要达到“总时效性最优”还需要一些额外的配置和调度策略。以下是一些可以提升整体时效性的策略&#xff1a; 1. 资源请求和限制设置 为每个容器设置合适的资源请求和限制…

判断对象、数组的方法

判断对象的方法 Object.prototype.toString.call(obj) ‘[object Object]’ 推荐指数 &#xff1a;五颗星obj instanceof Object 推荐指数 &#xff1a;四颗星typeof obj Object 推荐指数 &#xff1a;三颗星 注意&#xff1a;null也是一个对象 typeof(null) Object obj…

基于Intel Gaudi AI加速器的大语言模型微调与推理优化赛题等你挑战 | CCF BDCI进行时

一年一度的行业盛事2024 CCF大数据与计算智能大赛&#xff08;简称2024 CCF BDCI&#xff09;又在激烈进行中啦&#xff01; 多个赛题等你挑战还没有报名的伙伴们抓紧时间咯&#xff0c;叫上你伙伴练起来吧&#xff01; 2024 CCF大数据与计算智能大赛 CCF大数据与计算智能大…

使用 FastGPT 工作流搭建 GitHub Issues 自动总结机器人

如今任何项目开发节奏都很快&#xff0c;及时掌握项目动态是很重要滴&#xff0c;GitHub Issues 一般都是开发者和用户反馈问题的主要渠道。 然而&#xff0c;随着 Issue 数量的增加&#xff0c;及时跟进每一个问题会变得越来越困难。 为了解决这个痛点&#xff0c;我们开发了…

GEE 高阶应用:下载全球任何国家的森林损失保存到assets中

目录 简介 数据 函数 filterMetadata(name, operator, value) Arguments: Returns: Collection aggregate_array(property) Arguments: Returns: List ee.Number.parse(input, radix) Arguments: Returns: Number clipToCollection(collection) Arguments: Retu…

C++ 在项目中使用vim

一&#xff1a;概述 除了掌握 Vim 的基本操作&#xff0c;利用 Vim 阅读项目源码的方法同样重要&#xff0c;这对实际项目开发大有裨益。虽然现在有许多人选择使用 VSCode&#xff0c;但在某些环境中&#xff0c;可能无法安装 VSCode 或联网下载插件&#xff0c;这时使用 Vim 就…

Unreal Engine 5 C++(C#)开发:使用蓝图库实现插件(一)认识和了解Build.cs

目录 引言 一、创建一个C插件TextureReader插件 二、Build.cs文件 三、ModuleRules 四、TextureReader插件的构造 4.1ReadOnlyTargetRules的作用 4.2TextureReaderd的构造调用 4.3设置当前类的预编译头文件的使用模式 4.4PublicIncludePaths.AddRange与PrivateInclude…

探索C嘎嘎:初步接触STL

#1024程序员节&#xff5c;征文# 前言&#xff1a; 在前文小编讲述了模版初阶&#xff0c;其实讲述模版就是为了给讲STL提前铺垫&#xff0c;STL是C中很重要的一部分&#xff0c;各位读者朋友要知道它的份量&#xff0c;下面废话不多说&#xff0c;开始走进STL的世界。 目录&am…