JAVA进阶17
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JAVA进阶17,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2767字,纯文字阅读大概需要4分钟。
内容图文
![JAVA进阶17](/upload/InfoBanner/zyjiaocheng/834/15c3d2eec2eb4fcebaf518dbf49956cf.jpg)
---恢复内容开始---
间歇性混吃等死,持续性踌躇满志系列-------------第17天
1、递归结构
递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是自己就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。利用递归可以用简单的程序来解决一些复杂的问题。比如:斐波那契数列的计算、汉诺塔、快排等问题。
递归结构包括两个部分
①定义递归头。解答:什么时候不调用自身方法。如果没有头,会陷入死循环,就是递归的条件
②递归体。解答:什么时候需要调用自身方法
![JAVA进阶17 - 文章图片](/upload/getfiles/0001/2021/5/6/20210506032421338.jpg)
![JAVA进阶17 - 文章图片](/upload/getfiles/0001/2021/5/6/20210506032421348.jpg)
1 public class TestRecursion01 { 2 public static void main(String[] args) { 3 long d1 = System.currentTimeMillis(); 4 System.out.printf("%d阶乘的结果:%s%n", 15, factorial(15)); 5 long d2 = System.currentTimeMillis(); 6 System.out.printf("递归费时:%s%n", d2 - d1); 7 } 8 9 //求阶乘的方法 10 static long factorial(int n) { 11 if (n == 1) {//递归头 12 return 1; 13 } else { 14 //递归体 15 return n * factorial(n - 1); //n!=n*(n-1) 16 } 17 } 18 }View Code
运行结果图
2、Java的垃圾回收机制
①发现无用对象
②回收无用对象占用的内存空间
相关算法:引用计数法、引用可达法
3、静态初始化块
![JAVA进阶17 - 文章图片](/upload/getfiles/0001/2021/5/6/20210506032421338.jpg)
![JAVA进阶17 - 文章图片](/upload/getfiles/0001/2021/5/6/20210506032421348.jpg)
1 public class TestRecursion01 { 2 int id; 3 String name; 4 String pwd; 5 static String company; 6 7 static { 8 System.out.println("执行类的初始化工作"); 9 company = "后天科技"; 10 printCompany(); 11 } 12 13 public static void printCompany() { 14 System.out.println(company); 15 } 16 17 public static void main(String[] args) { 18 } 19 }View Code
运行结果图
4、方法重写
![JAVA进阶17 - 文章图片](/upload/getfiles/0001/2021/5/6/20210506032421338.jpg)
![JAVA进阶17 - 文章图片](/upload/getfiles/0001/2021/5/6/20210506032421348.jpg)
1 package cn.oob; 2 3 public class TestOverride { 4 public static void main(String[] args) { 5 Hourse h = new Hourse(); 6 h.run(); 7 } 8 } 9 10 class Vehicle{ 11 public void run(){ 12 System.out.println("跑》。。。"); 13 } 14 public void stop(){ 15 System.out.println("停。。。"); 16 } 17 } 18 19 class Hourse extends Vehicle{ 20 public void run(){ 21 //方法重写 22 System.out.println("慢慢跑。。。"); 23 } 24 }View Code
运行结果图
5、super父类对象的引用
![JAVA进阶17 - 文章图片](/upload/getfiles/0001/2021/5/6/20210506032421338.jpg)
![JAVA进阶17 - 文章图片](/upload/getfiles/0001/2021/5/6/20210506032421348.jpg)
1 package cn.oob; 2 3 public class TestOverride { 4 public static void main(String[] args) { 5 new ChildClass().f(); 6 } 7 } 8 9 class FatherClass { 10 public int value; 11 12 public void f() { 13 value = 100; 14 System.out.println("FatherClass.value=" + value); 15 } 16 } 17 18 class ChildClass extends FatherClass { 19 public int value; 20 21 public void f() { 22 //调用父类对象的普通方法 23 super.f(); 24 value = 200; 25 System.out.println("ChildClass.value=" + value); 26 System.out.println(value); 27 //调用父类对象的成员变量 28 System.out.println(super.value); 29 } 30 }View Code
运行结果图
内容总结
以上是互联网集市为您收集整理的JAVA进阶17全部内容,希望文章能够帮你解决JAVA进阶17所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。