-
方法
- 方法是以段代码片段,并且这段代码片段可以完成某个特殊的功能,并且可以被重复使用
- 方法定义在类体中,在一个类当中可以定义多个方法,方法编写的位置没有先后位置,可以随意
- 方法体当中不能再定义方法
- 方法体由java语句构成,方法体当中的代码遵循自上而下的顺序依次执行
- 方法的定义:
[修饰符列表] 返回值类型 方法名(形式参数列表){ 方法体; }
- 修饰符列表
- 可选项,不是必须的
- 一般统一写成:public static
- 方法中的修饰符列表当中有static关键字的话,调用方法
- 类名.方法名(实际参数列表);
- 返回值
- 只要带有return关键字的语句执行,return语句所在的方法结束【不是JVM结束,是return语句所在的方法结束】
- 在同一个作用域当中,return语句下面不能编写任何语句,因为这些语句永远不会执行
- 返回值类型是void的时候,在方法体当中不能再编写return 值;这样的语句。当时可以编写return ;这样的语句
- 返回值类型若不是void,表示这个方法结束之后必须返回一个具体的数值。return 值;
- 也可能这个方法执行结束之后不返回任何数据,java中规定,当一个方法执行结束之后不反回任何数据的话,返回值类型位置不行编写:void关键字
- 返回值类型可以是java任意类型
- 返回值类型:返回值是一个具体的数据,数据都是有类型的,此处需要指定的是返回值的类型
- 一个方法是可以完成某个特定功能的,这个功能结束之后大多数都是需要返回最终执行结果的,执行结果可能是一个具体的数据。而这个具体的数据就是返回值
- 方法名
- 只要合法的标识符就行
- 方法名最后见名知意
- 方法名最后是动词
- 方法名的首字母小写,后面每个单词首字母大写
- 方法体必须有大括号括起来,方法体当中的代码有顺序,遵循自上而下的顺序依次执行。并且方法体有java语句构成,每一个java语句以";“结尾
- 形式参数列表:简称形参
- 形参是局部变量
- 形参的个数可以是:0-N个
- 多个形参之间用逗号隔开
- 形参中起决定性作用的是形参的数据类型,形参的名字就是局部变量的名字
- 方法再调用的时候,实际给这个方法传递的参数被称为:实际参数,简称实参
- 实参和形参必须满足:
- 数量相同
- 类型对应相同
- 方法的调用
- 方法只定义不去调用时不会执行的。只有被调用才会执行
- 语法规则:《方法的修饰符列表当中有static》
- 类名.方法名(实参列表);《这是一条java语句,表示调用某个类的方法,传递这样的实参》
- 方法调用不一定在main方法当中,可以在其他方法当中,只要程序可以执行到的位置都可以调用方法
- 方法调用的时候实参和形参要求个数对应相同,数据类型对应相同类型不同的时候要求能进行相应的数据类型转换
- 对于方法修饰符列表有static关键字的,在当前类定义的方法进行调用:"类名."可以省略,在其他类进行调用的方法不可以省略
- 一般一个java源文件只定义一个class
- 方法在执行过程中,在JVM中的内存时如何分配的
- 方法只定义,不调用时不会执行的,JVM也不会为该方法分配运行所属的内存空间,只有在调用这个方法的时候,才会动态的给这个方法分配内存空间
- 在JVM内存划分中有这样三块主要的内存空间
- 方法区内存
- 堆内存
- 栈内存
- 关于栈这种数据结构
- 栈,stack,时一种数据结构
- 数据结构反应的数据的存储形态
- 数据结构是独立的学科,不属于任何编程语言的范畴,只不过在大多数编程语言种要使用数据结构
- 作为程序员,需要提前精通:数据结构+算法
- java程序员在不精通数据结构和算法的前提下,也可以进行java开发,因为java有一套强大的类库支持,别人写好了,直接用
- 常见的数据结构:
- 数组
- 队列
- 栈
- 链表
- 二叉树
- 哈希表/散列表
- 栈:
- 栈帧永远指向栈顶元素
- 栈顶元素处于活跃状态,其他元素静止
- 术语:
- 压栈/入栈/push
- 弹栈/出栈/pop
- 栈数据结构存储数据的特点
- 先进后出,后进先出
- 方法代码片段属于.class字节码文件的一部分,字节码文件在类加载的时候,将其存放在方法去当中。所以JVM中的三块主要内存空间中方法区最先有数据,存放了代码片段。
- 代码片段在方法区虽然在方法区内存中只有一份,但可以被重新调用,每一次调用这个方法的时候,需要给该方法分配独立的活动场所,在栈内存中分配【栈内存中分配方法运行的所属内存空间
- 方法在调用的瞬间,会给该方法分配内存空间,会在栈中发生压栈动作,方法执行结束之后,给该方法分配的内存空间全部释放,此时发生弹栈动作
- 压栈:给方法分配内存
- 弹栈:释放该方法的内存空间
- 局部变量在方法体中声明,局部变量运行阶段内存在栈中储存
java学习笔记
最新推荐文章于 2024-03-19 18:08:05 发布