java基础——引出方法

来源:互联网 发布:开淘宝店运费怎么办 编辑:程序博客网 时间:2024/06/04 20:02

开发遵循的原则之一:
DRY原则, dont repeat yourself

方法(method),函数(function),其实就是指一个特定的功能操作:
程序中完成独立功能,并且能重复使用的一段代码的集合;
Main方法有JVM来负责调用,我们只管启动JVM

方法定义格式:
[修饰符]方法的返回值类型 方法的名称([形式参数1,形式参数2...])
{
方法体;
[return 值]
}
方法必须调用才能生效
方法使用了static修饰 :
此时我们使用方法所在类的方法.方法名(参数)
方法使用了没有static修饰 :
此时我们使用方法所在类的对象来调用

方法定义的位置:
  1. 在类中定义,在java中最小的程序单元是类
  2. 方法定义在其他方法之外,方法之间是兄弟关系
  3. 定义的先后顺序不影响
方法中的专业术语
修饰符:public(方法访问权限) static(方法属于类,直接使用类名调用即可)等
返回值类型:方法在完成一个功能,该功能完成后是否需要给调用者返回一个结果
如果不需要给调用者返回结果,此时就用关键字void声明,无返回意思.
方法名称:遵循标识符的规范,使用驼峰表示,首字母小写,若是多个单词表示,以后的每个单词首字母大写
形式参数:方法圆括号中的变量,仅仅是站位而已,参数的名称实际无所谓,形参可以有多个
参数列表:参数列表 == 参数的类型 + 参数的个数 + 参数的顺序
方法签名: 方法前面 == 方法名称 + 方法参数列表
在同一个类中,方法前面是唯一的
方法体:方法{}中的代码,表示具体完成该功能的代码
返回值:在方法内部,使用return关键字
功能1给调用者返回一个结果值,此时该方法不能用void修饰
功能2 结束当前方法
实际参数:调用方法适合,实际传输的参数值

方法重载设计
需求1:在同一个类中,分别定义求两个整数,小数的和的方法

需求2:在同一个类中,分别打印不同的类型
方法重载的设计
重载方法是定义在同一个类中,某方法允许存在一个以上的方法同名,只要他们的参数列表不同即可
方法重载的作用:屏蔽了同一个功能的方法由于参数不同造成的方法名称不同
方法重载判断的的原则: 两同一个不同
注意:方法重载和方法的返回值类型无关系,只是一般要求返回值一致
参数列表和参数的名称没有关系,方法的重载和形参没有关系





System.out.print()为什么可以打印多种类型
方法递归操作




JVM的内存模型
JVM内存划分,人为的根据不同的内存空间的存储特点以及存储的数据:

程序计数器 当前线程所执行的字节码的行号指示器
本地方法栈 为虚拟机使用的native方法服务

Java虚拟机栈(stack):描述java方法执行的,每个方法被执行的时候都会同时创建一个栈帧用于存储局部变量表,操作栈,动态链接,方法出口等信息
每个方法创建一个栈帧,栈帧存放了当前方法的数据信息,当方法调用完毕,该方法的栈帧就被销毁了

Java堆(heap):被所有线程共享的一块内存区域,在虚拟机启动时创建,所有对象实例以及数组都要在对上分配(使用new关键字,就表示在堆中开辟一块新的存储区域)

方法区:线程共享的内存区域,存储已被虚拟机加载的类信息,常量,静态变量即时编译器编译后的代码数据等
GC(garbage collection)简述
Java的自动垃圾回收机制:简单理解为
程序员不要手动的去控制内存的释放,当JVM发觉内存资源紧张的时候,就会自动地去清理无用对象(没有被引用的对象)所占用的内存空间.

数组:一组数据

所谓数组,是相同数据类型的元素按一定顺序排列的集合。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。[这些无序排列的同类数据元素的集合称为数组。

数组初始化
Java中数组必须先初始化才能使用,所谓初始化就是给元素分配内存,并未每个元素赋初始值
初始化数组有两种方式:
静态初始化
动态初始化
无论,以哪种方式初始化,一旦初始化成功,数组的长度固定了,不能改变,数组是定长得的
数组的长度固定了,不能改变,如果要更改,只能重新做初始化


静态初始化:
我们来为每一个数组元素设置初始化值,而数组的长度由系统决定
语法:
数组元素类型[] 数组名 = new 素组元素类型[] {元素1,元素2,元素3.......};
Int[] nums = new int[]{1,5,6,7};
简单写法: int[] nums = {1,2,3,4};
简单写法必须声明之后立刻初始化,不能先声明后初始化;

动态初始化:
我们来为每一个数组长度,而每一个数组元素由系统决定
语法
数组元素类型[] 数组名 = new 素组元素类型[length] ;



原创粉丝点击