Java教程

Java方法、详解

本文主要是介绍Java方法、详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

方法(method)的定义

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

修饰符:可选的,告诉编译器如何调用该方法,定义了该方法的访问类型

返回值类型:根据需要返回的数据类型进行定义,有的方法无返回值则用关键字void;

方法名:即方法的名字,名字和形参列表共同构成方法名;

方法体:定义该方法的功能。

方法的调用

调用方法:对象名.方法名(形参列表)(当方法在同一类中也可以直接使用方法名(形参列表))

JVM(Java虚拟机)内存结构

JVM主要的三个内存空间:栈(stack)、堆、方法区;

方法区(类加载器(class loader)):将硬盘的xxx.class字码文件装载到JVM的时候,会将字节码文件存放到方法区中,也就是说方法区中存储的是代码片段。因为类加载器,方法区中最先有数据。

:在方法被调用时,该方法的内存空间需要在栈中被分配。方法调用叫做压栈,分配空间;方法结束叫做弹栈,释放空间。

方法重载(MethodOverload)

Java中允许方法名相同,但需要参数列表不同,否则编译器会报错。

在Java语法中的区分方式:

  1. Java虚拟机通过方法名区分;

  2. 方法名相同时通过方法的参数类型进行区分

什么时候使用方法重载

在同一个类,如果"功能1"和“功能2”功能相似时,可以方法名一致。

方法重载的发生条件

  • 在同一个类中

  • 方法名相同

  • 参数列表不同(参数个数不同时算不同、参数类型不同时算不同、参数顺序不同时算不同)

方法重载和返回值类型无关、方法重载和修饰符类型无关。

方法递归

  1. 方法自己调用自己;

  2. 当递归时程序没有结束文件,一定会发生栈内存溢出错误(StackOverflowError),所以递归必须要有结束条件;

  3. 结束条件对的,但也有可能出现内存溢出错误,大多数情况还是循环好,但是极少数情况下不使用方法递归程序是无法运行的;

  4. 当遇到内存溢出错误时怎么办:首先查看递归的结束条件对不对,其次递归条件问题时,需要手动扩大JVM的栈内存大小,(java -x)可查看调整堆栈大小的参数。

 

 

 

 

 

 

 

这篇关于Java方法、详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!