1.Java 多线程的运行机制?
Java 采用两种途径实现多线程机制:一种是应用程序的并发运行对象直接继承Thread 类,另外一种是定义并发执行对象实现Runnable 接口。
a.用Thread 类创建线程
Java的线程是通过java.lang.Thread类来控制的,一个Thread类的对象代表一个线程。当编写Thread 类的子类时,在子类中重写父类的run()方法,该方法中包含了线程的操作,这样的程序需要建立自己的线程时,只需要创建一个已定义好的Thread 子类的实例就可以了,当创建的线程需要调用start() 方法开始运行时,run() 方法将被自动执行。
b.使用Runnable 接口创建多线程
通过实现Runnable 作为一个目标对象,用Runnable 目标对象初始化Thread 类,提供run() 方法,实现的同时还可以继承其他类,可以避免由单继承的局限。几乎所有的线程都可以用Runnable 接口。当线程被构造时, 需要的代码和数据通过一个对象作为构造函数实参传递进去, 这个对象就是实现了Runnable接口的类的实例。
c.两种方法的对比分析
直接继承Thread 类的方法不能再从其他类继承,编写简单,可以直接操作线程;实现Runnable 接口的方法适合多个相同程序代码的线程去处理同一资源的情况,可以避免由于Java单继承特性带来的局限。两者的重要区别在于启动多线程对象的设计方法不同。在具体应用中,采用哪种方法来构造线程要视情况而定。事实上,几乎所有多线程应用都可用第二种方式,即实现Runnable接口。
2.对HTTP的了解及运用?
一、超文本传输协议
Web服务器和浏览器通过HTTP协议在Internet上发送和接收消息。HTTP协议是一种请求-应答式的协议——客户端发送一个请求,服务器返回该请求的应答。HTTP协议使用可靠的TCP连接,默认端口是80。HTTP的第一个版本是HTTP/0.9,后来发展到了HTTP/1.0,现在最新的版本是HTTP/1.1。HTTP/1.1由 RFC 2616 定义(pdf格式)。
本文只简要介绍HTTP 1.1的相关知识,但应该足以让你理解Web服务器和浏览器发送的消息。如果你要了解更多的细节,请参考RFC 2616。
在HTTP中,客户端/服务器之间的会话总是由客户端通过建立连接和发送HTTP请求的方式初始化,服务器不会主动联系客户端或要求与客户端建立连接。浏览器和服务器都可以随时中断连接,例如,在浏览网页时你可以随时点击“停止”按钮中断当前的文件下载过程,关闭与Web服务器的HTTP连接。
1.1 HTTP请求
HTTP请求由三个部分构成,分别是:方法-URI-协议/版本,请求头,请求正文。下面是一个HTTP请求的例子:
3.对各个项目的了解?
a.蓝牙聊天是如何进行聊天的?(在不通过获得MAC地址的情况下)
Socket通信 ServerSocket通信;
Service与Client是如何进行通信的。
b.音乐播放器进度条的控制?
可以通过线程方式实现;主要是实现和service的绑定。
c.Google地图在没有网络的情况下如何使用地图?
可以通过缓存方式
4.线程的使用及原理?
Android通过一些便利的类来管理线程 — Looper用于在一个线程里运行一个信息循环,Handler用于进程通信,HandlerThread用于建立一个处理信息循环的线程。