数据结构与算法分析 Java语言描述 学习笔记(一)


主要是贴自己的部分源码

引论

简要复习递归
概括本书的Java语言的某些重要特点

递归简论

/*
 * @Author: 橘足轻重 
 * @Date: 2021-01-11 15:13:06 
 * @Last Modified by: 橘足轻重
 * @Last Modified time: 2021-01-11 15:26:36
 */

public class chap1 {

    public static void main(String[] args) {
        printOut(123456789);

        int x = f(2);
        System.out.println("一个递归方法");
        System.out.println(x);
        
    }

    /**
     * 逐个字符打印
     * 
     * @param n 这里系统标准输出流每次都只打印一个字符
     */
    private static void printOut(int n) {
        if (n >= 10)
            printOut(n / 10);
        System.out.println(n % 10);
    }

    private static int f(int x) {
        if (x == 0)
            return 0;
        else
            return 2 * f(x - 1) + x * x;
    }    
}
if (x == 0)
	return 0; //这是一个基准情况

递归的4条基本法则:
1、基准情形。必须总要有某些基准情形,它无需递归就能解出。
2、不断推进。对于那些需要递归求解的情形,每一次递归调用都必须要使状况朝向一种基准情形推进。
3、设计法则。假设所有的递归调用都能运行。
4、合成效益法则。在求解一个问题的同一实例时,切勿在不同的递归调用中做重复性的工作。

实现泛型构件pre-Java 5

使用Object表示泛型

Java中的基本思想就是可以通过使用像Object这样适当的超类来实现泛型类。在下图中所示的 MemoryCell类就是这样一个例子。

/*
 * @Author: 橘足轻重 
 * @Date: 2021-01-11 20:40:02 
 * @Last Modified by:   橘足轻重 
 * @Last Modified time: 2021-01-11 20:40:02 
 */
public class MemoryCell {
    public Object read() {
        return storedValue;
    }

    public void write(Object x) {
        storedValue = x;
    }

    private Object storedValue;
}

当我们使用这种策略时,有两个细节必须要考虑。第一个细节在图1-6中阐释,它描述一个main方法,该方法把串"37"写到MemoryCell对象中,然后又从MemoryCell对象读出。为了访问这种对象的一个特定方法,必须要强制转换成正确的类型。(当然,在这个例子中,可以不必进行强制转换,因为在程序的第9行可以调用toString()方法,这种调用对任意对象都是能够做到的)。

public class TestMemoryCell {
    public static void main(String[] args) {
        MemoryCell m = new MemoryCell();

        m.write("37");
        String val = (String) m.read();
        System.out.println("Contents are: " + val);
    }
}

基本类型的包装

java基本类型有四类八种
整型:byte、short、int、long
浮点型:float、double
字符型:char
布尔型:Boolean

包装类(首字母大写,仅有两特殊)
Boolean,Byte,Character,Short,Integer,Long,Float,Double

String是引用类型

未完待续

如有错误,还请多多指教!
转载或者引用本文内容请注明来源及原作者:橘足轻重;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值