(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html)
四、Android学习第四天——JAVA基础回顾
这才学习Android的第四天,在程序中已经遇到了JAVA中以前不常用的一些知识点,赶紧回顾复习一下,打下基础
这里就做个简单的小结:
一、匿名内部类
- 匿名内部类说白了就是个没有被命名的JAVA类
在以下条件下使用匿名内部类比较适合:
①只用到该类的一个实例时
②类在定义后被马上用到
③类非常小(SUN推荐是在4行代码以下)
④给类命名并不会导致你的代码更容易被理解
在使用匿名内部类时,需要注意:
①匿名内部类不能有构造方法
②匿名内部类不能定义任何静态成员、方法和类
③匿名内部类不能是public、protected、private、static
④只能创建匿名内部类的一个实例
⑤一个匿名内部类一定是在new之后,用其隐含实现一个接口或实现一个类
⑥匿名内部类为局部内部类,所以局部内部类的限制对其都生效
具体的例子大家可以从网上看下,我这里只是大概的总结一下需要注意的东西。
二、线程
- 线程说白了就是一个程序中不同的执行路径。
线程跟进程的比较:
①每个进程都有独立的代码跟数据空间(进程的上下文),进程间得切换会有较大的开销
②线程可以看做是轻量级的进程,同一个线程共享代码跟数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小
③多进程:在操作系统中能同时运行多个任务(程序)
④多线程:在同一应用程序中有多个顺序流同时执行
new一个新线程类出来一般会使用下面两种方法的其中一个:
一:继承Thread类来创建一个新的线程,并重写run方法
二:实现Runnable方法
这里需要注意的是:
线程启动:Thread.start()
方法调用:run()
这两种方式的区别:其实真正要启动一个新的线程,需要执行start()方法;run()方法并没有启动一个新的线程,只是在当前线程下,暂停去执行run方法中的方法体,然后再继续执行接下来的程序。
这两种方式的区别在今后也会详加介绍