---恢复内容开始---

间歇性混吃等死,持续性踌躇满志系列-------------第17天

1、递归结构

递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是自己就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。利用递归可以用简单的程序来解决一些复杂的问题。比如:斐波那契数列的计算、汉诺塔、快排等问题。

递归结构包括两个部分

①定义递归头。解答:什么时候不调用自身方法。如果没有头,会陷入死循环,就是递归的条件

②递归体。解答:什么时候需要调用自身方法

 public class TestRecursion01 {
public static void main(String[] args) {
long d1 = System.currentTimeMillis();
System.out.printf("%d阶乘的结果:%s%n", 15, factorial(15));
long d2 = System.currentTimeMillis();
System.out.printf("递归费时:%s%n", d2 - d1);
} //求阶乘的方法
static long factorial(int n) {
if (n == 1) {//递归头
return 1;
} else {
//递归体
return n * factorial(n - 1); //n!=n*(n-1)
}
}
}

运行结果图

2、Java的垃圾回收机制

①发现无用对象

②回收无用对象占用的内存空间

相关算法:引用计数法、引用可达法

3、静态初始化块

 public class TestRecursion01 {
int id;
String name;
String pwd;
static String company; static {
System.out.println("执行类的初始化工作");
company = "后天科技";
printCompany();
} public static void printCompany() {
System.out.println(company);
} public static void main(String[] args) {
}
}

运行结果图

4、方法重写

 package cn.oob;

 public class TestOverride {
public static void main(String[] args) {
Hourse h = new Hourse();
h.run();
}
} class Vehicle{
public void run(){
System.out.println("跑》。。。");
}
public void stop(){
System.out.println("停。。。");
}
} class Hourse extends Vehicle{
public void run(){
//方法重写
System.out.println("慢慢跑。。。");
}
}

运行结果图

5、super父类对象的引用

 package cn.oob;

 public class TestOverride {
public static void main(String[] args) {
new ChildClass().f();
}
} class FatherClass {
public int value; public void f() {
value = 100;
System.out.println("FatherClass.value=" + value);
}
} class ChildClass extends FatherClass {
public int value; public void f() {
//调用父类对象的普通方法
super.f();
value = 200;
System.out.println("ChildClass.value=" + value);
System.out.println(value);
//调用父类对象的成员变量
System.out.println(super.value);
}
}

运行结果图

JAVA进阶17的更多相关文章

  1. JAVA进阶之旅(一)——增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法

    JAVA进阶之旅(一)--增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法 学完我们的java之旅,其实收获还是很多的,但是依然还有很 ...

  2. Java进阶(三十二) HttpClient使用详解

    Java进阶(三十二) HttpClient使用详解 Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们 ...

  3. Java进阶(五十三)屡试不爽之正则表达式

    Java进阶(五十三)屡试不爽之正则表达式 在线测试网址: http://tool.oschina.net/regex/# 上面的在线测试网址,含有正则表达式的生成,非常实用.大家共勉之! 匹配中文: ...

  4. java进阶视频分享

    更多资源和教程请关注公众号:非科班的科班. 如果觉得我写的还可以请给个赞,谢谢大家,你的鼓励是我创作的动力 课程目录介绍 01.开班仪式02.并发编程专题之多线程基础03.并发编程专题之Java内存模 ...

  5. Java 进阶 hello world! - 中级程序员之路

    Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...

  6. [.net 面向对象程序设计进阶] (17) 多线程(Multithreading)(二) 利用多线程提高程序性能(中)

    [.net 面向对象程序设计进阶] (17) 多线程(Multithreading)(二) 利用多线程提高程序性能(中) 本节要点: 上节介绍了多线程的基本使用方法和基本应用示例,本节深入介绍.NET ...

  7. Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式

    原创文章,同步发自作者个人博客,http://www.jasongj.com/java/nio_reactor/ Java I/O模型 同步 vs. 异步 同步I/O 每个请求必须逐个地被处理,一个请 ...

  8. Java线程间通信方式剖析——Java进阶(四)

    原创文章,同步发自作者个人博客,转载请在文章开头处以超链接注明出处 http://www.jasongj.com/java/thread_communication/ CountDownLatch C ...

  9. Java进阶(三)多线程开发关键技术

    原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这 ...

随机推荐

  1. Elastic Stack-Elasticsearch使用介绍(三)

    一.前言     上一篇说了这篇要讲解Search机制,但是在这个之前我们要明白下文件是怎么存储的,我们先来讲文件的存储然后再来探究机制: 二.文档存储 之前说过文档是存储在分片上的,这里要思考一个问 ...

  2. vue各种插件汇总

    https://blog.csdn.net/wh8_2011/article/details/80497620(copy) Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) 是一 ...

  3. React react-fastclick-alt 移动端点击

    1. Install npm install --save-dev react-fastclick-alt 2. 用法 将元素或者component放在  <FastClick>...&l ...

  4. python-itchat 统计微信群、好友数量的实例

    今天小编就为大家分享一篇python-itchat 统计微信群.好友数量,及原始消息数据的实例,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧   效果:   好友: # 获取自己的用 ...

  5. 新建promise

    callback(){ const promise =new Promise((resolve,rejest)=>{ console.log('2') 代码 resolve('true') }) ...

  6. codeforces131D

    Subway CodeForces - 131D A subway scheme, classic for all Berland cities is represented by a set of  ...

  7. novaclient的api调用流程与开发

    novaclient的api调用流程与开发 2015年07月05日 19:27:17 qiushanjushi 阅读数:3915   http://blog.csdn.net/tpiperatgod/ ...

  8. 洛谷P3380 二逼平衡树

    线段树+平衡树 我!又!被!卡!常!了! 以前的splay偷懒的删除找前驱后继的办法被卡了QAQ 放一个在洛谷开O2才能过的代码..我太菜了.. #include <bits/stdc++.h& ...

  9. 微信公众、QQ群、知识星球(附比特币链接)

    文章一般都会在公众号抢先预览,一个系列出差不多的时候一般博客园汇总一下(文章很长) 微信公众号:逸鹏说道(dotnetcrazy) 群友刚创建的Python中级群,有一定Python基础的可以共同探讨 ...

  10. 第四十六篇--解析和保存xml文件

    新建assets资源文件夹,右键app --> new --> Folder --> Assets Folder,将info.xml放入此文件夹下面. info.xml <?x ...