一.方法
1.简介
方法是对一个段具有特定功能代码的封装,在需要的时候可以多次调用,实现代码的重复利用。
- 定义方法
- 调用方法
2.自定义方法
语法:
修饰符 返回值类型 方法名(参数){
//代码 (方法体)
}
public static void main(String[] args){
}
说明:
- 修饰符: 对方法的修饰, public static 暂且固定的写法
- 返回值类型: 方法执行后的返回值类型。如果没有返回值,就写 void, 如果有返回值,就写具体的返回类型(int,char ,double String …)
- 方法名:自定义的名称,采用驼峰命名法 ,一般使用动词 (addStudent saveMoeny)
- 参数:执行方法时需要的数据。参数由 参数类型 和参数名组成, 可以有多个参数,用逗号分隔 (int x, double y)
- 返回值类型 和参数不是必要的。
3.方法的调用
- 在同一个类中,直接使用 方法名();
- 不在同一个类中,需要用 类名.方法名();
- 不在同一个包, 类名.方法名(); 需要导包
4.方法的递归
在方法中自己调用自己
二.数据存储方式
1.内存分类
java中内存分为: 栈内存 , 堆内存
特点:
- 栈的存取速度比堆块
- 栈内存要下于堆内存
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x4jGp1EA-1610938716738)(img/内存分类.png)]
2.数据类型
根据存储方式的不同,主要分为两种
-
基本数据类型(8ge)
byte short int long float double boolean char
定义方式: 数据类型 变量名 = 值;
-
引用类型
除了基本类型以外的都是引用类型 如: String 数组 类 接口 枚举
定义方式:数据类型 变量名 = new 数据类型();
注意: String类型比较特殊,由于经常使用,所有JVM对String类型做了优化
3.数据在内存中的存储
基本类型:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eRjQTAtP-1610938716768)(img/基本类型的存储.png)]
引用类型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rXcz9ojK-1610938716780)(img/引用类型的存储.png)]
数组类型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pMoQwz7f-1610938716790)(img/数组类型的存储.png)]
4.数据的传递(值传递 和址传递)
对于基本类型 ,传递的是值
对于引用类型,传递的是内存地址
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3B3rXCXq-1610938716797)(img/数据传递.png)]
public static void main(String[] args) {
/**
* 基本类型
*/
int a = 5;
int b = a; // a 的值赋给了 b
b =0;
System.out.println("a="+a);// 5
System.out.println("b="+b);// 0 b重新赋值 后不影响a的值
/**
* 引用类型
*/
int[] c={1,2,3,4};
int[] d=c; // 将c的内存地址赋给了 d.
d[0] = 666;
System.out.println(d[0]);//666
System.out.println(c[0]);//666 d重新赋值后, 会影响了 c的值
/**
* 方法的传参 与变量的赋值是相同
*/
int i = 200;
int[] array={11,22,33};
change(i,array);
System.out.println("i="+i);//200 不影响原来的数据
System.out.println("array[2]="+array[2]);//999 影响了原来的数据
}
public static void change(int number,int[] nums){
number = 888;
nums[2]=999;
}