javaSE-方法-重载-内存划分

一.方法

1.1概述和作用

一堆代码的集合,可以重复使用

1.使程序变得简洁更清晰

2.有利于程序维护

3.提高开发效率

4.提高代码重复性/复用性

1.2方法声明

[修饰符列表] 返回值类型 方法名(参数列表){方法体}

[]:0-n个

1.方法修饰符列表,是可选的:

权限控制:public private protected,默认(不写)

static(声明静态),abstract,synchronized,finall

2.返回值类型:11中数据类型的任意一种,或者是void

3.方法名:合法的标识符即可(大小写字母,下划线,美元符号,数字,数字不能打头,不能使用关键字和保留字)

4.参数列表,可以有,可以没有,可以有多个,过个之间使用逗号隔开

​ 形参:形容参数,在方法声明的时候,规定传入什么类型的数据

​ 实参:调用方法的时候,时间传入的数据

5.方法体:要做的事情,代码的集合

​ 如果有返回值类型,那么方法体中,最后一条语句必须写return 数据;

​ 如果没有返回值类型,那么方法体中可以没有语句,如果要加return语句,那么return之后不能有数据

只能写return;.此时return只有终止方法运行的作用.

1.3方法的分类

静态方法:使用static关键字修饰的方法.类相关

成员方法没有使用static关键字修饰的方法.对象相关

构造方法用于创建对象

静态方法

public static void test(){}

成员方法

public int test(){}

构造方法(没有返回值,方法名和类名一样)

public Test(){}

1.4方法的调用

方法不调用不执行,调用才执行,并把结果返回到调用处

1.静态方法:类名.静态方法名(参数值);

2.成员方法:对象.成员方法(参数值)

3构造方法:使用new关键字调用

1.5返回值

1如果方法有返回值,必须有return

2 如果方法没有返回值,可以没有return

注意:return语句的后面不可以有语句

1.6方法的重载

方法重载:overload

​ 方法名相同,参数列表不同(个数或者类型不同)

在同一个类中,方法名是允许相同的,可以根据方法名和参数列表来确定一个方法

例子:

public static void sum(int a,int b){
    System.out.println(a+b);
}
public static void sum(double a,double b){
    System.out.println(a+b);
}
public static void sum(byte a,byte b){
    System.out.println(a+b);
}

注意:只考虑方法名和参数列表

作用:记忆方便,代码简洁

二.内存划分

程序:一堆命令的集合,是可执行文件,并且是个静态概念,一般保存在硬盘中

进程:就是正在执行的程序,是个动态概念,会按照程序设计,一步步在内存中执行

java中的内存划分:

​ java Runtime Data Area: java运行时数据区,也可以叫jvm内存

​ 内存被划分为5个区域:程序计数器,方法区/静态区,栈内存,堆内存,本地方法栈

2.1程序计数器:

是一块比较小的内存区域,可以看做是当前执行的字节码位置,分支,循环,跳转,异常等都需要依赖程序计数器,可以理解为保存执行的代码行号,每个方法都会有一个计数器,否则不知道返回值要返回到哪里

2.2.方法区/静态区

保存我们的程序文件(class),载入内存后的那个文件,java中就是calss文件

包括方法,还有代码段,内部的运行常量池

2.3栈内存

虚拟机栈/VM栈/栈内存

方法是在栈内存中执行的,包括局部变量也是在栈内存

栈内存:就是一个以栈为数据结构模型的一段内存空间

栈:先进先出,比如弹夹

栈的构成:

​ 栈空间:就是指以栈数据结构为模型的于丹内存空间

​ 栈帧:栈内存中的每一个元素

​ 栈底元素:最先入栈的元素

​ 栈顶元素:最后入栈的元素

栈操作:

​ 压栈:元素入栈的操作

​ 弹栈:元素出栈的操作

2.4堆内存

​ 用来存放对象

​ 每个对象的空间分为3块:

​ 1.数据部分:成员变量

​ 2.头部:hashCode值

​ 3.类型:保存类文件在静态区的地址

2.5本地栈

为虚拟机执行使用到的Native方法服务,本地方法栈 和 VM栈 结构一样

2.6java内存模型图解

image-20210516215551217

比较详细的地址点击这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Antgeek

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值