Java方法都是使用值传递的
Java方法重载规则
- 方法名必须相同
- 参数列表一定不同(个数不同,参数顺序不同,参数类型不同)
- 返回值可相同,也可不相同
- 只有返回值类型不同,不能构成方法重载
Java可变参数
- 一个Java方法中只能有一个可变参数
- 可变参数必须放在参数列表的最后
- 可变参数的定义方法为数据类型+…+ 形参名称
递归
递归即自己调用自己,如方法funcA()调用方法funcA()
使用递归可以将一个较大的问题分解成一个个与原问题相似的、较小的、较简单的问题
递归结构
递归结构包括递归头和递归体
递归头:什么时候不调用自身方法,没有递归头将导致死循环。
递归体:什么时候需要调用自身方法。
递归例子
计算阶乘
int func(int n)
{
if(n==1)
return * 1;
else{
return n*f(n-1);
}
}
Java内存分析
堆
存放new的对象和数组
可以被所有线程共享,不存放别的对象引用
栈
存放基本的变量类型(包含具体数值)
引用对象的变量(会存放这个引用在堆中的具体地址)
方法区
可以被所有线程共享
包含了所有的class和static变量
数组工具类Arrays
Arrays类具有的功能
使用fill方法为数组赋值
使用sort方法,使数组按升序排序
通过equals方法判断数组中的元素是否相等
通过binarySearch方法对排好序的方法进行二分查找操作
面向对象
面向对象的本质是以类的形式组织代码,以对象的形式封装数据
类的三大特性:封装、继承、多态