2013年12月

1、Java接口详解
关键字interface,类中修饰符(public,private)省略后默认为private;在接口中只能定义为public(默认),接口对外公开,接口中的方法只能声明,不能实现。

public interface PCI {
    //定义方法,只有声明,没有实现!
    public void start();
    public void stop();    
}

接口不能实例化,接口中定义的方法在不同的地方被实现,实现完全不同的行为;接口可以作为一种数据类型来使用:

PCI pci=new SoundPCI();
pci.start();

利用接口实现多态:
1、接口
2、实现该口的实现类
3、定义接口类型,又该实现类为其赋值

- 阅读剩余部分 -

开始Andrew Ng的机器学习,这是一门非常有用的课程,可惜课上没好好听!

1、Machine Learning definition
在不直接针对问题进行编程的情况下,赋予计算机学习能力的一个研究领域。

2、Supervised Learning
(1)Regression Problem
监督学习:算法提供了具体问题“标准答案”,例如根据房屋面积估算房屋价格,我们希望通过算法去学习标准输入 和标准答案之间的联系,以尝试对于其他输入给我们更为标准的答案——回归问题(Regression Problem)

(2)Classification Problem
分类问题,例如肿瘤问题:处理一些数据,不是0就是1,给定一个新的病人,判别肿瘤类别(恶性良性)。

3、Learning Theory

- 阅读剩余部分 -

1、Java与OOP之继承

问题:代码存在重复,违背了“write once,only once”,后期维护带来麻烦!——继承。继承的优点:代码复用,有利于后期的维护,它也是多态的前提!
Java不支持多重继承(C++支持)——维护成本大。

2、Java与OOP之Super关键字

创建子类时,首先隐式调用父类的无参构造函数super();,子类不会继承父类的构造方法;所以父类如果已经创建有参构造方法,需要另外添加无参构造方法!

public JavaTeacher(String name,String school){
    /*this.setName(name);
    this.setSchool(school);*/
    super(name,school);
}

方法重写(Override):重写/覆盖父类方法;另外Overload(函数重载)。

- 阅读剩余部分 -

1、Java中的泛型集合运用

此前的ArrayList list=new ArrayList(); HashMap map=new HashMap();
list.add(1); 值类型->引用类型:装箱;
int i=(Integer)list.get(i); 引用类型->值类型:拆箱;
装箱、拆箱效率很低!
如何解决以上问题?——泛型,指定存放类型!

ArrayList<Integer> list=new ArrayList<Integer>();  //指定类型(必须是包装类型)
list.add(1);
int a=list.get(0);         //无需类型转换
System.out.println(a);

- 阅读剩余部分 -

1、JAVA中的常见数据类型转换

  • 1、字符串转为整形值

(1)int i=Integer.parseInt(String)

 i=Integer.parseInt(String,index) index代表进制

(2)int i=Integer.ValueOf(String).intValue();
注:字符串转为float double Long类型类似
double i=double.parseDouble(String)

  • 2、整形转为String

(1)String s=String.valueOf(i)
(2)String s=Intefer.toString(i)
(3)String s=""+i

- 阅读剩余部分 -