小新学Java2
一、方法
1.方法有返回值和无返回值的区别
2.使用方法时的注意事项
①方法应该定义在类中,但是不能在方法中再定义方法。不能嵌套。
②方法定义的前后顺序无无所谓。
③方法定义之后不会自动执行,如果希望执行,一定要调用;单独调用、打印调用、赋值调用。
④如果方法有返回值,那么必须写上“return 返回值;”,不能没有。
⑤return后面的返回值数据,必须和方法的返回值类型保持一致。
⑥对于一个void没有返回值的方法,不能写return后面的返回值,只能写return自己。
⑦对于void方法当中的最后一行return可以省略不写。
⑧一个方法中可以有多个return语句,但是必须保证同时只有一个会被执行到,两个return不能连写。
3.方法重载
方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。
参数列表:个数不同,数据类型不同,顺序不同。
重载方法调用:JVM通过方法的参数列表,调用不同的方法。
方法重载与下列因素相关:
1)参数个数不同
2)参数类型不同
3)参数的多类型顺序不同
方法重载与下列因素无关:
1)与参数的名称无关
2)与方法的返回值类型无关
二、数组
两种常见的初始化
动态初始化(指定长度):在创建数组的时候直接指定数组中存放元素的个数。
静态初始化(指定内容):在创建数组的时候不直接指定数组长度,而是将具体的数据内容进行指定。
1.数组的定义
方式(一)
动态初始化
格式:
数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];
数组定义格式详解:
数组存储的数据类型: 创建的数组容器可以存储什么数据类型。
[] : 表示数组。
数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。
new:关键字,创建数组使用的关键字。
数组存储的数据类型: 创建的数组容器可以存储什么数据类型。
[长度]:数组的长度,表示数组容器中可以存储多少个元素。
注意:数组有定长特性,长度一旦指定,不可更改。
举例:定义可以存储3个整数的数组容器,代码如下:
int[] arr = new int [3];
静态初始化
方式(二)
格式:
数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[] {元素1, 元素2,...};另外,此格式也可以分为两部分:数组存储的数据类型[] 数组名字;数组名字 = new 数组存储的数据类型 {};
举例:定义存储1,2,3,4,5整数的数组容器。
int[] arr = new int [] {1,2,3,4,5};
方式(三)
格式(省略格式):
数组存储的数据类型[] 数组名字 = {元素1, 元素2,...};
举例:
定义存储1,2,3,4,5整数的数组容器
int[] arr = {1,2,3,4,5}
Java虚拟机的内存划分:
1.栈(stack):存放的都是方法中的局部变量。方法的运行一定要在栈当中运行。
局部变量:方法的参数,或者是方法{}内部的变量。
作用域:一旦超出作用域,立刻从栈内存当中消失。
2.堆(Heap):凡是new处理的东西,都在堆当中。
堆内存里面的东西都有一个地址值:16进制。
堆内存里面的数据,都有默认值。规则:
如果是整数 默认为0
如果是浮点数 默认为0.0
如果是字符 默认为'\u0000'
如果是布尔 默认为false
如果是引用类型 默认为null
3.方法区(Method Area):存储.class相关信息,包含方法的信息。
4.本地方法栈(Native Method Stack):与操作系统相关。
5.寄存器(pc Register):与CPU相关。
一个数组的内存图

两个数组的内存图
两个引用指向同一个内存数组
2.数组索引越界异常
3.空指针异常
4.获取数组的长度
数组一旦创建,程序运行期间,数组长度不可改变

5.数组作为方法参数和返回值
数组作为方法参数传递,传递的参数是数组内存的地址。
数组作为方法的返回值,返回的是数组的内存地址。
一个方法可以有0、1、多个参数;但是只能有0或者1个返回值,不能有多个返回值。
如果希望一个方法中返回多个结果数据,怎么办?答:使用一个数组作为返回值类型即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)