当前位置: 首页 > news >正文

网站首页包含的内容seo超级外链

网站首页包含的内容,seo超级外链,建行输了三次密码卡锁怎么解,小米开放平台文章目录 1、方法的参数传递机制1.1、形参和实参1.2、 参数传递机制#xff1a;值传递1.3、 举例1.4 练习 2、 递归(recursion)方法 1、方法的参数传递机制 1.1、形参和实参 若方法含有参数#xff1a; 形参#xff08;formal parameter#xff09;#xff1a;在定义方… 文章目录 1、方法的参数传递机制1.1、形参和实参1.2、 参数传递机制值传递1.3、 举例1.4 练习 2、 递归(recursion)方法 1、方法的参数传递机制 1.1、形参和实参 若方法含有参数 形参formal parameter在定义方法时方法名后面括号中声明的变量称为形式参数简称形参即形参出现在方法定义时。实参actual parameter调用方法时方法名后面括号中的使用的值/变量/表达式称为实际参数简称实参即实参出现在方法调用时。 1.2、 参数传递机制值传递 Java里方法的参数传递方式只有一种值传递。 即将实际参数值的副本复制品传入方法内而参数本身不受影响。 形参是基本数据类型将实参基本数据类型变量的“数据值”传递给形参 形参是引用数据类型将实参引用数据类型变量的“地址值”传递给形参 1.3、 举例 1、形参是基本数据类型 案例编写方法交换两个整型变量的值 public class ValueTransferTest1 {public static void main(String[] args) {int m 10;int n 20;System.out.println(m m , n n);//交换m和n的值 // int temp m; // m n; // n temp;ValueTransferTest1 test new ValueTransferTest1();test.swap(m, n);System.out.println(m m , n n);}public void swap(int m,int n){int temp m;m n;n temp;}}内存解析 2、形参是引用数据类型 public class ValueTransferTest2 {public static void main(String[] args) {Data d1 new Data();d1.m 10;d1.n 20;System.out.println(m d1.m , n d1.n);//实现 换序ValueTransferTest2 test new ValueTransferTest2();test.swap(d1);System.out.println(m d1.m , n d1.n);}public void swap(Data data){int temp data.m;data.m data.n;data.n temp;} }class Data{int m;int n; }内存解析 1.4 练习 练习1判断如下程序输出的结果 public class AssignNewObject {public void swap(MyData my){my new MyData(); //考虑堆空间此新创建的对象和main中的data对象是否有关int temp my.x;my.x my.y;my.y temp;}public static void main(String[] args) {AssignNewObject tools new AssignNewObject();MyData data new MyData();data.x 1;data.y 2;System.out.println(交换之前x data.x ,y data.y);//tools.swap(data);//调用完之后x与y的值交换System.out.println(交换之后x data.x ,y data.y);//} }class MyData{int x ;int y; }练习2如下操作是否可以实现数组排序 public class ArrayTypeParam {//冒泡排序实现数组从小到大排序public void sort(int[] arr){for (int i 0; i arr.length - 1; i) {for (int j 0; j arr.length - 1 - i; j) {if(arr[j] arr[j1]){int temp arr[j];arr[j] arr[j1];arr[j1] temp;}}}}//打印数组的元素public void print(int[] arr){for (int i 0; i arr.length; i) {System.out.print(arr[i] );}System.out.println();}public static void main(String[] args) {ArrayTypeParam tools new ArrayTypeParam();int[] nums {4,3,1,6,7};System.out.println(排序之前);tools.print(nums);tools.sort(nums);//对nums数组进行排序System.out.println(排序之后);tools.print(nums);//输出nums数组的元素} }练习3通过内存结构图写出如下程序的输出结果 //栈每个方法在调用时都会有以栈帧的方法压入栈中。栈帧中保存了当前方法中声明的变量方法内声明的形参 //堆存放new出来的东西对象成员变量在对象中、数组实体数组元素。 //注意变量前如果声明有类型那么这就是一个新的刚要定义的变量。如果变量前没有声明类型那就说明此变量在之前已经声明过。 public class TransferTest3 {public static void main(String args[]) {TransferTest3 test new TransferTest3();test.first();}public void first() {int i 5;Value v new Value();v.i 25;second(v, i);System.out.println(v.i);}public void second(Value v, int i) {i 0;v.i 20;Value val new Value();v val;System.out.println(v.i i);} }class Value {int i 15; } 内存解析 练习4貌似是考查方法的参数传递 //法一public static void method(int a, int b) {// 在不改变原本题目的前提下如何写这个函数才能在main函数中输出a100b200 a a * 10;b b * 20;System.out.println(a);System.out.println(b);System.exit(0);}//法二public static void method(int a, int b) {PrintStream ps new PrintStream(System.out) {Overridepublic void println(String x) {if (a10.equals(x)) {x a100;} else if (b10.equals(x)) {x b200;}super.println(x);}};System.setOut(ps);}练习5将对象作为参数传递给方法 1定义一个Circle类包含一个double型的radius属性代表圆的半径一个findArea()方法返回圆的面积。 2定义一个类PassObject在类中定义一个方法printAreas()该方法的定义如下public void printAreas(Circle c, int time)在printAreas方法中打印输出1到time之间的每个整数半径值以及对应的面积。例如times为5则输出半径12345以及对应的圆面积。 3在main方法中调用printAreas()方法调用完毕后输出当前半径值。程序运行结果如图所示。 2、 递归(recursion)方法 举例1 举例2 从前有座山,山上有座庙,庙里有个老和尚,老和尚在给小和尚讲故事,讲的啥?从前有座山,山上有座庙,庙里有个老和尚,老和尚在给小和尚讲故事,讲的啥?从前有座山,山上有座庙,庙里有个老和尚,老和尚在给小和尚讲故事,讲的啥?从前有座山,山上有座庙,庙里有个老和尚,老和尚在给小和尚讲故事,讲的啥?...老和尚没了,庙塌了,小和尚还俗结婚了。递归方法调用方法自己调用自己的现象就称为递归。 **递归的分类:**直接递归、间接递归。 直接递归方法自身调用自己。 public void methodA(){methodA(); }间接递归可以理解为A()方法调用B()方法B()方法调用C()方法C()方法调用A()方法。 public static void A(){B(); }public static void B(){C(); }public static void C(){A(); }说明 递归方法包含了一种隐式的循环它会重复执行某段代码但这种重复执行无须循环控制。递归一定要向已知方向递归否则这种递归就变成了无穷递归停不下来类似于死循环。最终发生栈内存溢出。 举例 举例1计算1 ~ n的和 public class RecursionDemo {public static void main(String[] args) {RecursionDemo demo new RecursionDemo();//计算1~num的和使用递归完成int num 5;// 调用求和的方法int sum demo.getSum(num);// 输出结果System.out.println(sum);}/*通过递归算法实现.参数列表:int 返回值类型: int */public int getSum(int num) {/* num为1时,方法返回1,相当于是方法的出口,num总有是1的情况*/if(num 1){return 1;}/*num不为1时,方法返回 num (num-1)的累和递归调用getSum方法*/return num getSum(num-1);} }代码执行图解 举例2递归方法计算n! public int multiply(int num){if(num 1){return 1;}else{return num * multiply(num - 1);} }举例3已知有一个数列f(0) 1f(1) 4f(n2)2*f(n1) f(n)其中n是大于0的整数求f(10)的值。 public int f(int num){if(num 0){return 1;}else if(num 1){return 4;}else{return 2 * f(num - 1) f(num - 2);} }举例4已知一个数列f(20) 1,f(21) 4,f(n2) 2*f(n1)f(n)其中n是大于0的整数求f(10)的值。 public int func(int num){if(num 20){return 1;}else if(num 21){return 4;}else{return func(num 2) - 2 * func(num 1);} }举例5计算斐波那契数列Fibonacci的第n个值斐波那契数列满足如下规律 1,1,2,3,5,8,13,21,34,55,....即从第三个数开始一个数等于前两个数之和。假设f(n)代表斐波那契数列的第n个值那么f(n)满足 f(n) f(n-2) f(n-1); //使用递归的写法int f(int n) {//计算斐波那契数列第n个值是多少if (n 1) {//负数是返回特殊值1表示不计算负数情况return 1;}if (n 1 || n 2) {return 1;}return f(n - 2) f(n - 1);}//不用递归int fValue(int n) {//计算斐波那契数列第n个值是多少if (n 1) {//负数是返回特殊值1表示不计算负数情况return 1;}if (n 1 || n 2) {return 1;}//从第三个数开始 等于 前两个整数相加int beforeBefore 1; //相当于n1时的值int before 1;//相当于n2时的值int current beforeBefore before; //相当于n3的值//再完后for (int i 4; i n; i) {beforeBefore before;before current;current beforeBefore before;/*假设i4beforeBefore before; //相当于n2时的值before current; //相当于n3的值current beforeBefore before; //相当于n 4的值假设i5beforeBefore before; //相当于n3的值before current; //相当于n 4的值current beforeBefore before; //相当于n 5的值....*/}return current;}举例6面试题 面试遇到一个一个双重递归调用的问题我琢磨了一下完全不知道为什么。打断点了也还是没看懂为什么程序会那样走。您有空可以看一下求指教。 private int count 0;public int recursion(int k) {count;System.out.println(count1: count k: k);if (k 0) {return 0;}return recursion(k - 1) recursion(k - 2);//287//return recursion(k - 1);//11//return recursion(k - 1) recursion(k - 1);//2047}剖析 总结说两句 递归调用会占用大量的系统堆栈内存耗用多在递归调用层次多时速度要比循环慢的多所以在使用递归时要慎重。 在要求高性能的情况下尽量避免使用递归递归调用既花时间又耗内存。考虑使用循环迭代
http://www.pierceye.com/news/923259/

相关文章:

  • 天河公司网站建设公司编程是什么课程内容
  • 南宁门户网站有哪些不利于优化网站的因素
  • 鄱阳做网站来个黑黑的网站
  • wordpress 4 漏洞深圳专门做seo的公司
  • wordpress网站防伪查询模板东坑网站建设公司
  • 做网站的应用高端网站建站公司
  • 遵义网站开发制作公司服装外贸是做什么的
  • 国外网站 服务器网络营销是什么专业的
  • 微官网与网站的区别网站建设及网络推广
  • 百度推广官方网站登录入口一个人制作网站
  • 重庆市建设公共资源交易中心网站首页当地人做导游的旅游网站
  • 北京网站建设收费龙溪网站制作
  • 佛山小企业网站建设郑州做网站销售怎么样
  • 招考网站开发如何创建一个自己的网页
  • 做网站一般链接什么数据库wordpress 504错误
  • 网站阵地建设江门网站建设工作
  • 汽车网站建设策划方案24小时永久有效在线观看
  • 潍坊做网页的公司潍坊网站排名优化
  • 中建铁路建设有限公司网站微信群营销工具
  • 单位网站建设意见建议百度关键词检测工具
  • 重庆网站建设方案书免费网上咨询医生是哪个网
  • 临沂市开发区可以做分销的网站网络域名综合查询
  • 建设银行企业网银网站过期银州手机网站建设
  • 导航网站 win8风格企业服务官网
  • 樟树有哪几个网站做爆药库在线制作图片视频生成器
  • 汕头网站定制青年汇网站开发公司
  • 厦门专业网站设计公司防控措施持续优化
  • wordpress子网站杭州化工网站建设
  • 怎样做网站 - 百度兰州家政公司
  • 网站上的字体大小福建省建设注册执业管理中心网站