标签:06 int sum static n1 n2 public
方法的定义
语句块
public class Test{
public void main(String[] args){
}
}
方法声明格式:
返回值类型 方法名(形式参数列数){
Java语句;
}
方法的重载(overload)
public class TestOverload{
public static void main(String[] args){
}
//求和的方法
public static int add(int n1,int n2){
int sum=n1+n2;
return sum;
}
//方法名相同,参数个数不同,构成重载
public static int add(int n1,int n2,int n3){
int sum=n1+n2+n3;
return sum;
}
//方法名相同,参数类型不同,构成重载
public static double add(double n1,double n2){
double sum=n1+n2;
return sum;
}
}
不构成重载的情况
public static int add(int n1,int n2){
int sum=n1+n2;
return sum;
}
//编译错误:只有返回值不同,不构成方法的重载
public static double add(int n1,int n2){
double sum=n1+n2;
return sum;
}
//编译错误:只有参数名称不同,不构成方法的重载
public static int add(int n2,int n1){
double sum=n1+n2;
return sum;
}
递归算法详解
递归的基本思想:自己调用自己
public class TestRecursion{
public static void main(String[] args){
a();
}
static void a(){
System.out.println("a");
a(); //不断调用自己,直到占满内存
}
static void b(){
System.out.println("b");
}
}
递归结构包括两部分:
1.定义递归头。什么时候不调用自身方法。如果没有头,将陷入死循环
2.递归体。什么时候需要调用自身方法
//求阶乘的方法
static long factorial(int n){
if(n==1){ //递归头
return 1;
}else{ //递归体。什么时候需要调用自身方法
return n*factorial(n-1);//n!=n*(n-1)!
}
}
迭代效率测试
public class TestRecursion{
public static void main(String[] args){
long d1=System.currentTimeMillis();
System.out.printf("%d阶乘的结果:%s%n",10,factorial(10));
long d2=System.currentTimeMillis();
System.out.printf("递归费时:%s%n",d2-d1); //耗时:32ms %n=\n
factorialLoop(10);
}
}
任何能用递归解决的问题也能使用迭代解决。
要求高性能的情况尽量避免使用递归,递归调用即花时间又耗内存。
标签:06,int,sum,static,n1,n2,public 来源: https://www.cnblogs.com/RealHernan886/p/15057638.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。