public class TestArray {/** * 数组的复制与扩容: * 本质:创建新数组,将原数组内容复制过来; * 变量赋值:不复制数组,是两个变量引用同一个数组对象; * 扩容:创建新数组,新数组容量大于原数组,将原数组内容复制到新数组,并且丢弃原数组,更换更大的数组对象; * Java API:StringBuilder,ArrayList,HashMap,ByteArrayOutputStream,字符串连接运算; * * 排序算法: * 1、for和数组操作 * 2、冒泡排序:比较相邻元素,大的向后交换 * Arrays数组工具类 * * 递归调用: * 方法中调用了方法本身; * 递归解决问题:简练,只需考虑一层逻辑即可,(一定要有结束条件!) * public static int f(){ * f(n) = n+f(n+1)且f(1) = 1; * //stackOverflowError 栈溢出 * return n+f(n+1); * } * //f(5)->5+f(4)->4+f(3)->3+f(2)->2+f(1)->1+f(0)->0+f(-1)->........ * @param args */ public static int f(int n){ if(n == 1) return 1; return n+f(n-1); }}//f(50000)造成溢出(栈容量不够)//递归:深度不能太深(递归层次),慎用递归