2020514 方法 数组 Java内存划分

2020/5/14 方法 数组 Java内存划分

方法定义三要素

返回值类型

方法名称

参数列表(变量)

注意事项

方法不能嵌套

方法顺序无所谓

方法定义后不会执行,需调用

方法有返回值,必须写return 返回值

return返回值数据类型得和方法返回值类型对应

void方法的return;可以不写

一个方法可以有多个return语句,但必须保证同时只有一个return被执行

重载(overload)

多个方法的名称一样,但参数列表不同

1.参数个数不同

2.参数类型不同

3.参数的多类型顺序不同

注意事项

与参数名称无关

与参数返回值类型无关

数组

是一种容器,可以同时存放多个数据

特点:

1.一种引用数据类型

2.数组中的多个数据类型必须统一

3.数组长度在程序运行期间不能改变

初始化方式

1.动态初始化 (指定长度)

格式:

数据类型 [] 数组名称 = new 数据类型 [数组长度(int数字)];

例:创建一个可以存放300个int类型数据的数组

int [] array = new int [300];

2.静态初始化 (指定内容)

格式:

数据类型 [] 数组名称 = new 数据类型 []{元素1,元素2,…};

例:创建一个数组,里面装的都是int数字,具体为:5,15,25

int [] array = new int[]{5,15,25};

省略格式:

数据类型 [] 数组名称 = {元素1,元素2,…};

注意事项

静态初始化标准格式可以拆分成两个步骤

1.int[] array

2.array = new int[] {…,…,…}

动态初始化标准格式也可以拆成两个步骤

1.int [] array

2.array = new int[5]

静态初始化的省略格式不能拆分成两个步骤

不确定具体内容推荐用动态,已知道内容的用静态

直接打印数组,得到的是数组对应的内存地址哈希值

访问数组元素格式

数组名称[索引值] 索引值从0开始,一直到 n-1为止

**使用动态初始化时,其中元素会自动拥有默认值 **

数据类型默认值
整型0
浮点型0.0
字符型\u0000
布尔型false
引用类型false
Java内存划分

划分为5个部分:

栈(stack):存放方法中的局部变量(方法参数),方法运行一定在栈中运行,一旦超出作用域,立刻从栈内存中消失。栈中只保存基础数据类型本身和自定义对象的引用

堆(Heap):凡是new出来的东西都在堆中唯一目的就是存放对象实例,堆中不存放基本类型和对象引用,只存放对象本身和数组本身

方法区(Method Area):存储class相关信息,包括方法的信息;包含整个程序永远唯一的元素,如class、static变量

本地方法栈:与操作系统有关

寄存区:与CPU相关

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gi00YiLo-1589468652190)(C:\Users\10145\AppData\Roaming\Typora\typora-user-images\image-20200514225939237.png)]

Area):存储class相关信息,包括方法的信息;包含整个程序永远唯一的元素,如class、static变量

本地方法栈:与操作系统有关

寄存区:与CPU相关

[外链图片转存中…(img-gi00YiLo-1589468652190)]

个人理解方法区存储的是方法信息,调用时前往栈区开辟空间运行方法,而栈区中的方法信息只有方法参数以及对应地址,数据存储在堆区中,要想调用或修改数据,需要寻址至堆区地址对应区域赋值或调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值